Refactor KeyboardShortcut component to simplify state management
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Removed unused state for tracking pressed keys, streamlining the key handling logic. - Eliminated the sync function for pressed keys, enhancing performance and reducing complexity. - Maintained existing functionality while improving the overall structure of the component.
This commit is contained in:
parent
2d32c55456
commit
dc4a38f391
@ -1,4 +1,4 @@
|
||||
import { useEffect, useRef, cloneElement, useMemo, useState } from 'react'
|
||||
import { useEffect, useRef, cloneElement, useMemo } from 'react'
|
||||
import PropTypes from 'prop-types'
|
||||
import { Popover, Typography } from 'antd'
|
||||
|
||||
@ -50,18 +50,12 @@ const KeyboardShortcut = ({
|
||||
const childRef = useRef()
|
||||
const pressedKeysRef = useRef(new Set())
|
||||
const shortcutKeys = useMemo(() => parseShortcut(shortcut), [shortcut])
|
||||
const [pressedKeys, setPressedKeys] = useState([])
|
||||
|
||||
useEffect(() => {
|
||||
const syncPressedKeys = () => {
|
||||
setPressedKeys([...pressedKeysRef.current])
|
||||
}
|
||||
|
||||
const handleKeyDown = (event) => {
|
||||
const key = getPressedKey(event)
|
||||
if (key) {
|
||||
pressedKeysRef.current.add(key)
|
||||
syncPressedKeys()
|
||||
}
|
||||
|
||||
if (log) {
|
||||
@ -83,7 +77,6 @@ const KeyboardShortcut = ({
|
||||
const key = getPressedKey(event)
|
||||
if (key) {
|
||||
pressedKeysRef.current.delete(key)
|
||||
syncPressedKeys()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user