diff --git a/ivette/src/dome/renderer/controls/buttons.tsx b/ivette/src/dome/renderer/controls/buttons.tsx index e15fd0dbf4ef2131ed0f3103942862b8b1fae1c7..461524e30851a5c20e8b4812f4602e8bc3558f90 100644 --- a/ivette/src/dome/renderer/controls/buttons.tsx +++ b/ivette/src/dome/renderer/controls/buttons.tsx @@ -555,10 +555,9 @@ export interface FieldProps { Text Field. */ export const Field = (props: FieldProps): JSX.Element => { - const [current, setCurrent] = React.useState<string>(); const { className = '', onChange, onEdited, value = '' } = props; + const [current, setCurrent] = React.useState<string>(value); const disabled = onChange ? DISABLED(props) : true; - const theValue = current ?? value; const ONCHANGE = (evt: React.ChangeEvent<HTMLInputElement>): void => { const text = evt.target.value || ''; setCurrent(text); @@ -567,11 +566,11 @@ export const Field = (props: FieldProps): JSX.Element => { const ONKEYPRESS = (evt: React.KeyboardEvent): void => { switch (evt.key) { case 'Enter': - setCurrent(undefined); - if (onChange && current) onChange(current); + if (onChange) onChange(current); break; case 'Escape': - setCurrent(undefined); + setCurrent(value); + if (onChange) onChange(value); break; default: break; @@ -582,12 +581,12 @@ export const Field = (props: FieldProps): JSX.Element => { id={props.id} type="text" autoFocus={!disabled && props.autoFocus} - value={theValue} + value={current} className={`dome - xField ${className} `} style={props.style} disabled={disabled} placeholder={props.placeholder} - onKeyPress={ONKEYPRESS} + onKeyDown={ONKEYPRESS} onChange={ONCHANGE} /> ); diff --git a/ivette/src/renderer/Laboratory.tsx b/ivette/src/renderer/Laboratory.tsx index 238b5030ae608ab7cb22d4c0798faf07e9edb8a5..6818c58b6308bdadde0428fd1157752f4c0521c7 100644 --- a/ivette/src/renderer/Laboratory.tsx +++ b/ivette/src/renderer/Laboratory.tsx @@ -358,8 +358,10 @@ function CustomViews(props: CustomViewsProps): JSX.Element { builtin: false, }; setCustoms(customs); - if (current) shapes[current] = shape; + const newShape = isCurrent ? shape : shapes[id]; + shapes[newId] = newShape; setLocal({ current: newId, shapes }); + setShape(newShape); setEdited(newId); };