diff --git a/lerna.json b/lerna.json index a74ab4dc0..e42b682ba 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "2.11.0", - "version": "independent", + "version": "1.0.9", "npmClient": "tyarn", "registry": "http://registry.npm.alibaba-inc.com", "useWorkspaces": true, diff --git a/package.json b/package.json index 47fbec7f8..cfd030df6 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "lint": "eslint --ext .ts,.tsx,.js,.jsx ./ --quiet", "lint:fix": "eslint --ext .ts,.tsx,.js,.jsx ./ --quiet --fix", "pub": "lerna publish --force-publish --cd-version prepatch", + "pubbeta": "lerna publish --force-publish --cd-version prerelease --npm-tag beta", "setup": "./scripts/setup.sh", "start": "./scripts/start.sh", "start:server": "./scripts/start-server.sh", diff --git a/packages/designer/src/builtin-simulator/bem-tools/drag-resize-engine.ts b/packages/designer/src/builtin-simulator/bem-tools/drag-resize-engine.ts index 7586bd17f..c2b1c0fb0 100644 --- a/packages/designer/src/builtin-simulator/bem-tools/drag-resize-engine.ts +++ b/packages/designer/src/builtin-simulator/bem-tools/drag-resize-engine.ts @@ -38,6 +38,8 @@ export default class DragResizeEngine { private dragResizing = false; + private designer: Designer; + constructor(designer: Designer) { this.designer = designer; this.emitter = new EventEmitter(); diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts index 89c18861a..bfa9e0509 100644 --- a/packages/designer/src/document/document-model.ts +++ b/packages/designer/src/document/document-model.ts @@ -160,11 +160,11 @@ export class DocumentModel { /** * 生成唯一id */ - nextId() { - let id; - do { - id = `node_${ (this.id.slice(-10) + (++this.seqId).toString(36)).toLocaleLowerCase()}`; - } while (this.nodesMap.get(id)); + nextId(possibleId: string | undefined) { + let id = possibleId; + while (!id || this.nodesMap.get(id)) { + id = `node_${(this.id.slice(-10) + (++this.seqId).toString(36)).toLocaleLowerCase()}`; + } return id; } diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts index 9790f8cef..e394807a7 100644 --- a/packages/designer/src/document/node/node.ts +++ b/packages/designer/src/document/node/node.ts @@ -156,7 +156,7 @@ export class Node { constructor(readonly document: DocumentModel, nodeSchema: Schema) { const { componentName, id, children, props, ...extras } = nodeSchema; - this.id = id || document.nextId(); + this.id = document.nextId(id); this.componentName = componentName; if (this.componentName === 'Leaf') { this.props = new Props(this, { diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index 4f9c27d18..6fa9d6cce 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -123,7 +123,7 @@ class Layout extends Component<{ rendererContainer: SimulatorRendererContainer } } @observer -class Renderer extends Component<{ +class Renderer extends Component<{ rendererContainer: SimulatorRendererContainer; documentInstance: DocumentInstance } > { @@ -132,10 +132,9 @@ class Renderer extends Component<{ } render() { - const { documentInstance } = this.props; + const { documentInstance, rendererContainer: renderer } = this.props; const { container } = documentInstance; const { designMode, device } = container; - const { rendererContainer: renderer } = this.props; return ( {