Skip to content

Commit aac8bd0

Browse files
committed
pr suggestions
1 parent fd01f84 commit aac8bd0

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

src/components/field/field-name-content.tsx

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,25 @@ export const FieldNameContent = ({ name, isEditable, onChange }: FieldNameProps)
3737
onChange?.(value);
3838
}, [value, onChange]);
3939

40+
const handleKeyboardEvent = useCallback(
41+
(e: React.KeyboardEvent<HTMLInputElement>) => {
42+
if (e.key === 'Enter') handleSubmit();
43+
if (e.key === 'Escape') {
44+
setValue(name);
45+
setIsEditing(false);
46+
}
47+
},
48+
[handleSubmit, name],
49+
);
50+
51+
const handleNameDoubleClick = useCallback(() => {
52+
setIsEditing(true);
53+
}, []);
54+
55+
const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
56+
setValue(e.target.value);
57+
}, []);
58+
4059
useEffect(() => {
4160
if (isEditing) {
4261
setTimeout(() => {
@@ -51,27 +70,12 @@ export const FieldNameContent = ({ name, isEditable, onChange }: FieldNameProps)
5170
type="text"
5271
ref={textInputRef}
5372
value={value}
54-
onChange={e => {
55-
setValue(e.target.value);
56-
}}
73+
onChange={handleChange}
5774
onBlur={handleSubmit}
58-
onKeyDown={e => {
59-
if (e.key === 'Enter') handleSubmit();
60-
if (e.key === 'Escape') setIsEditing(false);
61-
}}
75+
onKeyDown={handleKeyboardEvent}
6276
title="Edit field name"
6377
/>
6478
) : (
65-
<InnerFieldName
66-
onDoubleClick={
67-
onChange && isEditable
68-
? () => {
69-
setIsEditing(true);
70-
}
71-
: undefined
72-
}
73-
>
74-
{value}
75-
</InnerFieldName>
79+
<InnerFieldName onDoubleClick={onChange && isEditable ? handleNameDoubleClick : undefined}>{value}</InnerFieldName>
7680
);
7781
};

0 commit comments

Comments
 (0)