From 70a81d2a7792247868441266c479a37e2d8edb97 Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Wed, 29 Dec 2021 20:04:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20globalLocale=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...{ali-global-locale.ts => global-locale.ts} | 19 ++++---- packages/editor-core/src/intl/index.ts | 2 +- packages/editor-core/src/utils/obx.ts | 2 +- packages/editor-core/tsconfig.json | 2 +- packages/engine/src/engine-core.ts | 43 ++++++++++--------- packages/engine/src/modules/editor-cabin.ts | 1 + 6 files changed, 37 insertions(+), 32 deletions(-) rename packages/editor-core/src/intl/{ali-global-locale.ts => global-locale.ts} (88%) diff --git a/packages/editor-core/src/intl/ali-global-locale.ts b/packages/editor-core/src/intl/global-locale.ts similarity index 88% rename from packages/editor-core/src/intl/ali-global-locale.ts rename to packages/editor-core/src/intl/global-locale.ts index a8ec7911a..874278802 100644 --- a/packages/editor-core/src/intl/ali-global-locale.ts +++ b/packages/editor-core/src/intl/global-locale.ts @@ -29,7 +29,7 @@ const languageMap: { [key: string]: string } = { const LowcodeConfigKey = 'ali-lowcode-config'; -class AliGlobalLocale { +class GlobalLocale { private emitter = new EventEmitter(); @obx.ref private _locale?: string; @@ -114,7 +114,7 @@ class AliGlobalLocale { return this.locale; } - onLocaleChange(fn: (locale: string) => void): () => void { + onChangeLocale(fn: (locale: string) => void): () => void { this.emitter.on('localechange', fn); return () => { this.emitter.removeListener('localechange', fn); @@ -135,12 +135,13 @@ function hasLocalStorage(obj: any): obj is WindowLocalStorage { return obj.localStorage; } -let globalLocale: AliGlobalLocale; -if ((window as any).__aliGlobalLocale) { - globalLocale = (window as any).__aliGlobalLocale as any; -} else { - globalLocale = new AliGlobalLocale(); - (window as any).__aliGlobalLocale = globalLocale; -} +let globalLocale = new GlobalLocale(); +// let globalLocale: GlobalLocale; +// if ((window as any).__GlobalLocale) { +// globalLocale = (window as any).__GlobalLocale as any; +// } else { +// globalLocale = new GlobalLocale(); +// (window as any).__GlobalLocale = globalLocale; +// } export { globalLocale }; diff --git a/packages/editor-core/src/intl/index.ts b/packages/editor-core/src/intl/index.ts index 91fa28073..9eaa4b102 100644 --- a/packages/editor-core/src/intl/index.ts +++ b/packages/editor-core/src/intl/index.ts @@ -1,6 +1,6 @@ import { ReactNode, Component, createElement } from 'react'; import { IntlMessageFormat } from 'intl-messageformat'; -import { globalLocale } from './ali-global-locale'; +import { globalLocale } from './global-locale'; import { isI18nData } from '@ali/lowcode-types'; import { observer, computed } from '../utils'; diff --git a/packages/editor-core/src/utils/obx.ts b/packages/editor-core/src/utils/obx.ts index f10b67756..7a4cfa57c 100644 --- a/packages/editor-core/src/utils/obx.ts +++ b/packages/editor-core/src/utils/obx.ts @@ -21,4 +21,4 @@ export { IReactionOptions, } from 'mobx'; export * as mobx from 'mobx'; -export { observer }; +export { observer }; \ No newline at end of file diff --git a/packages/editor-core/tsconfig.json b/packages/editor-core/tsconfig.json index 91c180bdd..8edf132a3 100644 --- a/packages/editor-core/tsconfig.json +++ b/packages/editor-core/tsconfig.json @@ -3,5 +3,5 @@ "compilerOptions": { "outDir": "lib" }, - "include": ["./src/"], + "include": ["./src/"] } diff --git a/packages/engine/src/engine-core.ts b/packages/engine/src/engine-core.ts index bf7c8f9e6..d30af7d84 100644 --- a/packages/engine/src/engine-core.ts +++ b/packages/engine/src/engine-core.ts @@ -37,9 +37,9 @@ const editor = new Editor(); globalContext.register(editor, Editor); globalContext.register(editor, 'editor'); -const skeleton = new InnerSkeleton(editor); -editor.set(Skeleton, skeleton); -editor.set('skeleton' as any, skeleton); +const innerSkeleton = new InnerSkeleton(editor); +editor.set(Skeleton, innerSkeleton); +editor.set('skeleton' as any, innerSkeleton); const designer = new Designer({ editor }); editor.set(Designer, designer); @@ -48,7 +48,7 @@ editor.set('designer' as any, designer); const plugins = new LowCodePluginManager(editor).toProxy(); editor.set('plugins' as any, plugins); -const { project, currentSelection: selection } = designer; +const { project: innerProject, currentSelection: selection } = designer; const { Workbench } = skeletonCabin; // const setters: Setters = { // getSetter, @@ -57,9 +57,9 @@ const { Workbench } = skeletonCabin; // }; const hotkey = new Hotkey(); -const project2 = new Project(project); -const skeleton2 = new Skeleton(skeleton); -const setters2 = new Setters(); +const project = new Project(innerProject); +const skeleton = new Skeleton(innerSkeleton); +const setters = new Setters(); const material = new Material(editor); const config = engineConfig; const event = new Event(editor, { prefix: 'common' }); @@ -67,13 +67,13 @@ const logger = getLogger({ level: 'warn', bizName: 'common' }); export { // editor, - // editorCabin, + editorCabin, // skeleton, - // skeletonCabin, + skeletonCabin, // designer, - // designerCabin, + designerCabin, plugins, - // setters, + setters, project, // selection, /** @@ -84,8 +84,11 @@ export { * 全局的一些数据存储 */ // store, - // hotkey, + hotkey, utils, + config, + event, + logger, // engineConfig, }; @@ -95,18 +98,18 @@ const getSelection = () => designer.currentDocument?.selection; /** * 待删除 start,不要用 */ - editor, - editorCabin, - skeletonCabin, + editor: event, designer, - designerCabin, /** * 待删除 end */ + editorCabin, + skeletonCabin, + designerCabin, plugins, - skeleton: skeleton2, - project: project2, - setters: setters2, + skeleton, + project, + setters, material, // get selection() { // return getSelection(); @@ -235,7 +238,7 @@ export async function init(container?: HTMLElement, options?: EngineOptions) { await plugins.init(); render( createElement(Workbench, { - skeleton, + skeleton: innerSkeleton, className: 'engine-main', topAreaItemClassName: 'engine-actionitem', }), diff --git a/packages/engine/src/modules/editor-cabin.ts b/packages/engine/src/modules/editor-cabin.ts index 162ae5537..ac88f832e 100644 --- a/packages/engine/src/modules/editor-cabin.ts +++ b/packages/engine/src/modules/editor-cabin.ts @@ -9,4 +9,5 @@ export { observer, getSetter, getSettersMap, + globalLocale, } from '@ali/lowcode-editor-core'; \ No newline at end of file