diff --git a/packages/designer/src/builtin-simulator/live-editing/live-editing.ts b/packages/designer/src/builtin-simulator/live-editing/live-editing.ts index 828790e57..0fac16534 100644 --- a/packages/designer/src/builtin-simulator/live-editing/live-editing.ts +++ b/packages/designer/src/builtin-simulator/live-editing/live-editing.ts @@ -98,6 +98,7 @@ export class LiveEditing { const onSaveContent = matched?.onSaveContent || saveHandlers.find(item => item.condition(prop))?.onSaveContent || defaultSaveContent; setterPropElement.setAttribute('contenteditable', matched?.mode && matched.mode !== 'plaintext' ? 'true' : 'plaintext-only'); + setterPropElement.removeAttribute('for'); setterPropElement.classList.add('engine-live-editing'); // be sure setterPropElement.focus(); @@ -107,14 +108,24 @@ export class LiveEditing { onSaveContent(setterPropElement!.innerText, prop); }; - this._dispose = () => { - setterPropElement!.removeAttribute('contenteditable'); - setterPropElement!.classList.remove('engine-live-editing'); + const keydown = (e: KeyboardEvent) { + console.info(e.code); + // esc + // enter + // tab }; - - setterPropElement.addEventListener('focusout', (e) => { + const focusout = (e: FocusEvent) => { this.saveAndDispose(); - }); + }; + setterPropElement.addEventListener('focusout', focusout); + setterPropElement.addEventListener('keydown', keydown, true); + + this._dispose = () => { + setterPropElement!.classList.remove('engine-live-editing'); + setterPropElement!.removeAttribute('contenteditable'); + setterPropElement!.removeEventListener('focusout', focusout); + setterPropElement!.removeEventListener('keydown', keydown, true); + }; this._editing = prop; } diff --git a/packages/designer/src/designer/setting/utils.js b/packages/designer/src/designer/setting/utils.js index 2aa3b6eaf..ab09545e6 100644 --- a/packages/designer/src/designer/setting/utils.js +++ b/packages/designer/src/designer/setting/utils.js @@ -46,7 +46,10 @@ export class Transducer { setter = setter.componentName; } if (typeof setter === 'string') { - setter = getSetter(setter).component; + setter = getSetter(setter)?.component; + if (!setter) { + debugger; + } } this.setterTransducer = combineTransducer(