fix: Migrate useKeyboardPress

This commit is contained in:
Myzel394 2023-05-06 22:55:43 +02:00
parent 5fbe0b09a0
commit 0f528291d0
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B
2 changed files with 29 additions and 10 deletions

View File

@ -1,9 +1,11 @@
import {ReactElement} from "react"
import {APIKey} from "~/server-types"
import {Alert, IconButton, ListItem, ListItemSecondaryAction, ListItemText} from "@mui/material"
import {useTranslation} from "react-i18next"
import {MdContentCopy, MdDelete} from "react-icons/md"
import {useCopyToClipboard} from "react-use"
import {Alert, IconButton, ListItem, ListItemSecondaryAction, ListItemText} from "@mui/material"
import {APIKey} from "~/server-types"
import {DeleteButton, ErrorSnack, SuccessSnack} from "~/components"
import {deleteAPIKey} from "~/apis"
import {queryClient} from "~/constants/react-query"

View File

@ -2,9 +2,9 @@ import {ReactElement, useCallback, useState, useTransition} from "react"
import {AxiosError} from "axios"
import {MdSearch} from "react-icons/md"
import {useTranslation} from "react-i18next"
import {useMountEffect, useUpdateEffect} from "@react-hookz/web"
import {useCopyToClipboard, useKeyPress} from "react-use"
import {useCopyToClipboard} from "react-use"
import {useKeyboardEvent, useMountEffect, useUpdateEffect} from "@react-hookz/web"
import {useQuery} from "@tanstack/react-query"
import {Alert, Chip, Grid, InputAdornment, List, Snackbar, TextField} from "@mui/material"
@ -47,10 +47,10 @@ export default function AliasesRoute(): ReactElement {
const [typeFilter, setTypeFilter] = useState<TypeFilter>(TypeFilter.All)
const [{value, error}, copyToClipboard] = useCopyToClipboard()
const [isPressingControl] = useKeyPress("Shift")
const [isPressingShift, setIsPressingShift] = useState<boolean>(false)
const isAnyInputFocused = useIsAnyInputFocused()
const [lockDisabledCopyMode, setLockDisabledCopyMode] = useState<boolean>(false)
const isInCopyAddressMode = !isAnyInputFocused && !lockDisabledCopyMode && isPressingControl
const isInCopyAddressMode = !isAnyInputFocused && !lockDisabledCopyMode && isPressingShift
const [latestAliasId, setLatestAliasId] = useState<string | null>()
const query = useQuery<PaginationResult<AliasList>, AxiosError>(
@ -101,11 +101,28 @@ export default function AliasesRoute(): ReactElement {
onRefetchAliases: query.refetch,
})
useUpdateEffect(() => {
if (!isPressingControl) {
useKeyboardEvent(
"Shift",
() => {
setIsPressingShift(true)
},
[],
{
event: "keydown",
},
)
useKeyboardEvent(
"Shift",
() => {
setIsPressingShift(false)
setLockDisabledCopyMode(false)
}
}, [isPressingControl])
},
[],
{
event: "keyup",
},
)
useUpdateEffect(() => {
if (!query.data) {