mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-26 12:18:21 +00:00
fix live-editing
This commit is contained in:
parent
293b7603a5
commit
1fc9894959
@ -98,6 +98,7 @@ export class LiveEditing {
|
|||||||
const onSaveContent = matched?.onSaveContent || saveHandlers.find(item => item.condition(prop))?.onSaveContent || defaultSaveContent;
|
const onSaveContent = matched?.onSaveContent || saveHandlers.find(item => item.condition(prop))?.onSaveContent || defaultSaveContent;
|
||||||
|
|
||||||
setterPropElement.setAttribute('contenteditable', matched?.mode && matched.mode !== 'plaintext' ? 'true' : 'plaintext-only');
|
setterPropElement.setAttribute('contenteditable', matched?.mode && matched.mode !== 'plaintext' ? 'true' : 'plaintext-only');
|
||||||
|
setterPropElement.removeAttribute('for');
|
||||||
setterPropElement.classList.add('engine-live-editing');
|
setterPropElement.classList.add('engine-live-editing');
|
||||||
// be sure
|
// be sure
|
||||||
setterPropElement.focus();
|
setterPropElement.focus();
|
||||||
@ -107,14 +108,24 @@ export class LiveEditing {
|
|||||||
onSaveContent(setterPropElement!.innerText, prop);
|
onSaveContent(setterPropElement!.innerText, prop);
|
||||||
};
|
};
|
||||||
|
|
||||||
this._dispose = () => {
|
const keydown = (e: KeyboardEvent) {
|
||||||
setterPropElement!.removeAttribute('contenteditable');
|
console.info(e.code);
|
||||||
setterPropElement!.classList.remove('engine-live-editing');
|
// esc
|
||||||
|
// enter
|
||||||
|
// tab
|
||||||
};
|
};
|
||||||
|
const focusout = (e: FocusEvent) => {
|
||||||
setterPropElement.addEventListener('focusout', (e) => {
|
|
||||||
this.saveAndDispose();
|
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;
|
this._editing = prop;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,7 +46,10 @@ export class Transducer {
|
|||||||
setter = setter.componentName;
|
setter = setter.componentName;
|
||||||
}
|
}
|
||||||
if (typeof setter === 'string') {
|
if (typeof setter === 'string') {
|
||||||
setter = getSetter(setter).component;
|
setter = getSetter(setter)?.component;
|
||||||
|
if (!setter) {
|
||||||
|
debugger;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setterTransducer = combineTransducer(
|
this.setterTransducer = combineTransducer(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user