diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts index c07668f49..f3990e98d 100644 --- a/packages/designer/src/document/node/node.ts +++ b/packages/designer/src/document/node/node.ts @@ -488,6 +488,9 @@ export class Node { insertBefore(node: Node, ref?: Node) { this.children?.insert(node, ref ? ref.index : null); } + insertAfter(node: Node, ref?: Node) { + this.children?.insert(node, ref ? (ref.index + 1) : null); + } getParent() { return this.parent; } diff --git a/packages/globals/src/types/tip.ts b/packages/globals/src/types/tip.ts index 5c7174159..6206aef6b 100644 --- a/packages/globals/src/types/tip.ts +++ b/packages/globals/src/types/tip.ts @@ -1,5 +1,5 @@ import { I18nData } from './i18n'; -import { ReactNode, ReactElement } from 'react'; +import { ReactNode } from 'react'; export interface TipConfig { className?: string; @@ -8,4 +8,4 @@ export interface TipConfig { direction?: 'top' | 'bottom' | 'left' | 'right'; } -export type TipContent = string | I18nData | ReactElement | TipConfig; +export type TipContent = string | I18nData | ReactNode | TipConfig; diff --git a/packages/setters/src/index.tsx b/packages/setters/src/index.tsx index 3d1bde12d..65cba8c98 100644 --- a/packages/setters/src/index.tsx +++ b/packages/setters/src/index.tsx @@ -58,7 +58,7 @@ const builtinSetters = { DateRangeSetter, EventsSetter, // StyleSetter, - ColorSetter, + // ColorSetter, JsonSetter, }; diff --git a/packages/vision-polyfill/src/skeleton/left-float-pane.tsx b/packages/vision-polyfill/src/skeleton/left-float-pane.tsx index 03294d45c..993c68908 100644 --- a/packages/vision-polyfill/src/skeleton/left-float-pane.tsx +++ b/packages/vision-polyfill/src/skeleton/left-float-pane.tsx @@ -10,10 +10,27 @@ export default class LeftFloatPane extends Component<{ area: Area }> shouldComponentUpdate() { return false; } + + private dispose?: () => void; + componentDidMount() { + const { area } = this.props; + const triggerClose = () => area.setVisible(false); + area.skeleton.editor.on('designer.dragstart', triggerClose); + this.dispose = () => { + area.skeleton.editor.removeListener('designer.dragstart', triggerClose); + } + } + + componentWillUnmount() { + this.dispose?.(); + } + render() { const { area } = this.props; // TODO: add focusingManager - // TODO: dragstart close + // focusin set focus (push|replace) + // focusout remove focus + // onEsc return (
void; }