Fix: hotkey scope not correctly set (#2094)

* technical input fix

* use previous hotkey instead for onblur
This commit is contained in:
Arijit
2023-10-18 19:46:21 +02:00
committed by GitHub
parent c590300bf1
commit e90301098a
3 changed files with 67 additions and 29 deletions

View File

@ -2,9 +2,12 @@ import { useEffect, useState } from 'react';
import styled from '@emotion/styled';
import { FieldRecoilScopeContext } from '@/ui/data/inline-cell/states/recoil-scope-contexts/FieldRecoilScopeContext';
import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope';
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
import { Company, useUpdateOneCompanyMutation } from '~/generated/graphql';
import { EditableFieldHotkeyScope } from '../types/EditableFieldHotkeyScope';
type CompanyNameEditableFieldProps = {
company: Pick<Company, 'id' | 'name'>;
};
@ -40,6 +43,11 @@ export const CompanyNameEditableField = ({
const [updateCompany] = useUpdateOneCompanyMutation();
const {
goBackToPreviousHotkeyScope,
setHotkeyScopeAndMemorizePreviousScope,
} = usePreviousHotkeyScope();
useEffect(() => {
setInternalValue(company.name);
}, [company.name]);
@ -49,6 +57,7 @@ export const CompanyNameEditableField = ({
};
const handleSubmit = async () => {
goBackToPreviousHotkeyScope();
await updateCompany({
variables: {
where: {
@ -61,12 +70,19 @@ export const CompanyNameEditableField = ({
});
};
const handleFocus = async () => {
setHotkeyScopeAndMemorizePreviousScope(
EditableFieldHotkeyScope.EditableField,
);
};
return (
<RecoilScope CustomRecoilScopeContext={FieldRecoilScopeContext}>
<StyledEditableTitleInput
autoComplete="off"
onChange={(event) => handleChange(event.target.value)}
onBlur={handleSubmit}
onFocus={handleFocus}
value={internalValue}
/>
</RecoilScope>

View File

@ -0,0 +1,3 @@
export enum EditableFieldHotkeyScope {
EditableField = 'editable-field',
}