Feat/company card fields (#686)
* wip * Ok * asd * Fixed cancel submit * Renamed * Fixed
This commit is contained in:
@ -0,0 +1,41 @@
|
||||
import { useScopedHotkeys } from '@/lib/hotkeys/hooks/useScopedHotkeys';
|
||||
import { useListenClickOutsideArrayOfRef } from '@/ui/hooks/useListenClickOutsideArrayOfRef';
|
||||
|
||||
import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope';
|
||||
|
||||
import { useEditableField } from './useEditableField';
|
||||
|
||||
export function useRegisterCloseFieldHandlers(
|
||||
wrapperRef: React.RefObject<HTMLDivElement>,
|
||||
onSubmit?: () => void,
|
||||
onCancel?: () => void,
|
||||
) {
|
||||
const { closeEditableField, isFieldInEditMode } = useEditableField();
|
||||
|
||||
useListenClickOutsideArrayOfRef([wrapperRef], () => {
|
||||
if (isFieldInEditMode) {
|
||||
onSubmit?.();
|
||||
closeEditableField();
|
||||
}
|
||||
});
|
||||
|
||||
useScopedHotkeys(
|
||||
'enter',
|
||||
() => {
|
||||
onSubmit?.();
|
||||
closeEditableField();
|
||||
},
|
||||
EditableFieldHotkeyScope.EditableField,
|
||||
[closeEditableField, onSubmit],
|
||||
);
|
||||
|
||||
useScopedHotkeys(
|
||||
'esc',
|
||||
() => {
|
||||
closeEditableField();
|
||||
onCancel?.();
|
||||
},
|
||||
EditableFieldHotkeyScope.EditableField,
|
||||
[closeEditableField, onCancel],
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user