From 723b9e887118b0225c33221b63e7a345c1e55a92 Mon Sep 17 00:00:00 2001 From: hexqi Date: Tue, 11 Jun 2024 15:00:31 +0800 Subject: [PATCH 1/6] feat: move hooks --- packages/canvas/breadcrumb/index.js | 3 +++ .../src/hooks => canvas/breadcrumb/src}/useBreadcrumb.js | 0 packages/settings/props/index.js | 3 +++ .../{controller => settings/props}/src/hooks/useProperties.js | 0 .../{controller => settings/props}/src/hooks/useProperty.js | 0 packages/toolbars/save/index.js | 1 + .../{controller => toolbars/save}/src/hooks/useSaveLocal.js | 4 ++-- 7 files changed, 9 insertions(+), 2 deletions(-) rename packages/{controller/src/hooks => canvas/breadcrumb/src}/useBreadcrumb.js (100%) rename packages/{controller => settings/props}/src/hooks/useProperties.js (100%) rename packages/{controller => settings/props}/src/hooks/useProperty.js (100%) rename packages/{controller => toolbars/save}/src/hooks/useSaveLocal.js (95%) diff --git a/packages/canvas/breadcrumb/index.js b/packages/canvas/breadcrumb/index.js index 062f0f28c..143fe9c3e 100644 --- a/packages/canvas/breadcrumb/index.js +++ b/packages/canvas/breadcrumb/index.js @@ -1,6 +1,9 @@ import CanvasBreadcrumb from './src/CanvasFooter.vue' import metaData from './meta' +import useBreadcrumb from './src/useBreadcrumb' + export default { ...metaData, + apis: useBreadcrumb(), entry: CanvasBreadcrumb } diff --git a/packages/controller/src/hooks/useBreadcrumb.js b/packages/canvas/breadcrumb/src/useBreadcrumb.js similarity index 100% rename from packages/controller/src/hooks/useBreadcrumb.js rename to packages/canvas/breadcrumb/src/useBreadcrumb.js diff --git a/packages/settings/props/index.js b/packages/settings/props/index.js index f7c6373af..f6a0ece21 100644 --- a/packages/settings/props/index.js +++ b/packages/settings/props/index.js @@ -15,6 +15,9 @@ import entry from './src/Main.vue' import Components from './src/components' import metaData from './meta' +import './src/hooks/useProperties' +import './src/hooks/useProperty' + export { Components } export default { diff --git a/packages/controller/src/hooks/useProperties.js b/packages/settings/props/src/hooks/useProperties.js similarity index 100% rename from packages/controller/src/hooks/useProperties.js rename to packages/settings/props/src/hooks/useProperties.js diff --git a/packages/controller/src/hooks/useProperty.js b/packages/settings/props/src/hooks/useProperty.js similarity index 100% rename from packages/controller/src/hooks/useProperty.js rename to packages/settings/props/src/hooks/useProperty.js diff --git a/packages/toolbars/save/index.js b/packages/toolbars/save/index.js index 23f16fd54..16bc5dada 100644 --- a/packages/toolbars/save/index.js +++ b/packages/toolbars/save/index.js @@ -12,6 +12,7 @@ import entry, { api } from './src/Main.vue' import metaData from './meta' +import './src/hooks/useSaveLocal' export default { ...metaData, diff --git a/packages/controller/src/hooks/useSaveLocal.js b/packages/toolbars/save/src/hooks/useSaveLocal.js similarity index 95% rename from packages/controller/src/hooks/useSaveLocal.js rename to packages/toolbars/save/src/hooks/useSaveLocal.js index 40457e92a..63876d45b 100644 --- a/packages/controller/src/hooks/useSaveLocal.js +++ b/packages/toolbars/save/src/hooks/useSaveLocal.js @@ -11,8 +11,7 @@ */ import { Modal } from '@opentiny/vue' -import { useCanvas, getMergeMeta } from '@opentiny/tiny-engine-entry' -import { VITE_ORIGIN } from '../../js/environments' +import { useCanvas, getMergeMeta, useEnv } from '@opentiny/tiny-engine-entry' // 获取当前页面的全量信息 @@ -23,6 +22,7 @@ const confirmSaveLocal = async () => { const currentPageId = pageState.currentPageId || pageState.currentPage.id const currentPageName = pageState.currentPageName || pageState.currentPage.name + const { VITE_ORIGIN } = useEnv() const savePage = await bridge.callHandler('save-page', { api: `${VITE_ORIGIN}/app-service/api/pages/code/${currentPageId}`, pageName: currentPageName, From c4ea42c8816615c87d0ab25ead7dda4ebdf00702 Mon Sep 17 00:00:00 2001 From: hexqi Date: Fri, 14 Jun 2024 11:35:01 +0800 Subject: [PATCH 2/6] feat: move modal/notify --- designer-demo/src/main.js | 7 +----- .../component/Modal.jsx} | 22 +++++++------------ .../component/Notify.jsx} | 0 packages/common/index.js | 3 +++ packages/controller/js/http.js | 3 +-- .../controller/src/hooks/useDataSource.js | 2 +- .../controller/src/hooks/useEditorInfo.js | 2 +- packages/controller/src/hooks/useResource.js | 4 ++-- packages/controller/src/index.js | 8 +++---- packages/design-core/src/init.js | 8 +++++-- packages/entry/src/hooks.js | 6 +++++ 11 files changed, 32 insertions(+), 33 deletions(-) rename packages/{controller/src/components/useModal.jsx => common/component/Modal.jsx} (76%) rename packages/{controller/src/components/useNotify.jsx => common/component/Notify.jsx} (100%) diff --git a/designer-demo/src/main.js b/designer-demo/src/main.js index b141f1b8e..19d563cb0 100644 --- a/designer-demo/src/main.js +++ b/designer-demo/src/main.js @@ -13,13 +13,8 @@ // 导入@opentiny/tiny-engine时,内部的依赖包也会逐个导入,可能会执行useComplie,此时需要templateHashMap。所以需要先执行一次defineEntry import { registry } from './defineEntry.js' import { init } from '@opentiny/tiny-engine' -import { initHook, HOOK_NAME } from '@opentiny/tiny-engine' import { configurators } from './configurators/' import 'virtual:svg-icons-register' import '@opentiny/tiny-engine-theme' -const beforeAppCreate = () => { - initHook(HOOK_NAME.useEnv, import.meta.env) -} - -init({ registry, configurators, lifeCycles: { beforeAppCreate } }) +init({ registry, configurators }) diff --git a/packages/controller/src/components/useModal.jsx b/packages/common/component/Modal.jsx similarity index 76% rename from packages/controller/src/components/useModal.jsx rename to packages/common/component/Modal.jsx index 3c0b0bf8c..8e350e416 100644 --- a/packages/controller/src/components/useModal.jsx +++ b/packages/common/component/Modal.jsx @@ -9,9 +9,7 @@ const confirm = ({ title, status, message, exec, cancel, showFooter = true }) => message: () => { return ( ) } @@ -32,11 +30,9 @@ const message = ({ title, status, message, exec, width = '400' }) => { width: width, message() { return ( - + ) } }).then(() => { @@ -67,10 +63,8 @@ const topbox = (options) => { window.topbox = topbox window.message = message -export default () => { - return { - confirm, - message, - topbox - } +export default { + confirm, + message, + topbox } diff --git a/packages/controller/src/components/useNotify.jsx b/packages/common/component/Notify.jsx similarity index 100% rename from packages/controller/src/components/useNotify.jsx rename to packages/common/component/Notify.jsx diff --git a/packages/common/index.js b/packages/common/index.js index 945fc83b3..f03fd37f7 100644 --- a/packages/common/index.js +++ b/packages/common/index.js @@ -213,3 +213,6 @@ export { MetaTableColumns, SearchEmpty } + +export { default as Modal } from './component/Modal' +export { default as Notify } from './component/Notify' diff --git a/packages/controller/js/http.js b/packages/controller/js/http.js index 16cf2d162..b24c88652 100644 --- a/packages/controller/js/http.js +++ b/packages/controller/js/http.js @@ -11,10 +11,9 @@ */ import { useHttp } from '@opentiny/tiny-engine-http' -import useNotify from '../src/components/useNotify' import { isVsCodeEnv } from './environments' import { generateRouter, generatePage } from './vscodeGenerateFile' -import { usePage, useCanvas } from '@opentiny/tiny-engine-entry' +import { usePage, useCanvas, useNotify } from '@opentiny/tiny-engine-entry' const http = useHttp() diff --git a/packages/controller/src/hooks/useDataSource.js b/packages/controller/src/hooks/useDataSource.js index b5c2a59f7..12ae035bb 100644 --- a/packages/controller/src/hooks/useDataSource.js +++ b/packages/controller/src/hooks/useDataSource.js @@ -14,7 +14,7 @@ import { reactive } from 'vue' import { utils } from '@opentiny/tiny-engine-utils' import { isEqual } from '@opentiny/vue-renderless/common/object' import { isEmptyObject } from '@opentiny/vue-renderless/common/type' -import useModal from '../components/useModal' +import { useModal } from '@opentiny/tiny-engine-entry' const dataSourceState = reactive({ dataSource: {}, diff --git a/packages/controller/src/hooks/useEditorInfo.js b/packages/controller/src/hooks/useEditorInfo.js index e439db57e..e10ca1c22 100644 --- a/packages/controller/src/hooks/useEditorInfo.js +++ b/packages/controller/src/hooks/useEditorInfo.js @@ -12,7 +12,7 @@ import { ref } from 'vue' import { useHttp } from '@opentiny/tiny-engine-http' -import useModal from '../components/useModal' +import { useModal } from '@opentiny/tiny-engine-entry' // web版获取配置信息: 从url中获取 const _getWebData = () => { diff --git a/packages/controller/src/hooks/useResource.js b/packages/controller/src/hooks/useResource.js index 991b89980..f9da6c660 100644 --- a/packages/controller/src/hooks/useResource.js +++ b/packages/controller/src/hooks/useResource.js @@ -14,10 +14,10 @@ import { reactive } from 'vue' import { useHttp } from '@opentiny/tiny-engine-http' import { utils, constants } from '@opentiny/tiny-engine-utils' import { meta as BuiltinComponentMaterials } from '@opentiny/tiny-engine-builtin-component' -import { getMergeMeta } from '@opentiny/tiny-engine-entry' import { getCanvasStatus } from '../../js/canvas' -import useNotify from '../components/useNotify' import { + getMergeMeta, + useNotify, useApp, useCanvas, useTranslate, diff --git a/packages/controller/src/index.js b/packages/controller/src/index.js index 6f6f93c13..eb21d6ad8 100644 --- a/packages/controller/src/index.js +++ b/packages/controller/src/index.js @@ -16,10 +16,6 @@ import useData from './useData' export { default as metaData } from '../meta' import example from './example' -// 后续移入common包components -import useNotify from './components/useNotify' -import useModal from './components/useModal' - export const getExample = example export { @@ -38,7 +34,9 @@ export { useBreadcrumb, useProperty, useHelp, + useModal, + useNotify, useCustom } from '@opentiny/tiny-engine-entry' -export { useNotify, useData, useMessage, useModal } +export { useData, useMessage } diff --git a/packages/design-core/src/init.js b/packages/design-core/src/init.js index c11672d03..99406d686 100644 --- a/packages/design-core/src/init.js +++ b/packages/design-core/src/init.js @@ -14,11 +14,11 @@ import { createApp } from 'vue' import initSvgs from '@opentiny/tiny-engine-svgs' import i18n from '@opentiny/tiny-engine-controller/js/i18n' import { initMonitor } from '@opentiny/tiny-engine-controller/js/monitor' -import { injectGlobalComponents } from '@opentiny/tiny-engine-common' +import { injectGlobalComponents, Modal, Notify } from '@opentiny/tiny-engine-common' import { initHttp } from '@opentiny/tiny-engine-http' import TinyThemeTool from '@opentiny/vue-theme/theme-tool' import { tinySmbTheme } from '@opentiny/vue-theme/theme' // SMB 主题 -import { defineEntry, mergeRegistry } from '@opentiny/tiny-engine-entry' +import { defineEntry, mergeRegistry, initHook, HOOK_NAME } from '@opentiny/tiny-engine-entry' import App from './App.vue' import defaultRegistry from '../registry.js' import { registerConfigurators } from './registerConfigurators' @@ -35,6 +35,10 @@ const defaultLifeCycles = { // 在common层注入合并后的注册表 defineEntry(newRegistry) + initHook(HOOK_NAME.useEnv, import.meta.env) + initHook(HOOK_NAME.useNotify, () => Notify) + initHook(HOOK_NAME.useModal, () => Modal) + // 加载主题样式,尽早加载 // import(`./theme/${newRegistry.config.theme}.js`) diff --git a/packages/entry/src/hooks.js b/packages/entry/src/hooks.js index d163a4fdd..560ffc328 100644 --- a/packages/entry/src/hooks.js +++ b/packages/entry/src/hooks.js @@ -16,6 +16,8 @@ export const HOOK_NAME = { useHelp: 'help', useHttp: 'http', useEnv: 'env', + useModal: 'modal', + useNotify: 'notify', useCustom: 'custom' } @@ -37,6 +39,8 @@ const hooksState = { [HOOK_NAME.useHelp]: {}, [HOOK_NAME.useHttp]: {}, [HOOK_NAME.useEnv]: {}, + [HOOK_NAME.useNotify]: {}, + [HOOK_NAME.useModal]: {}, [HOOK_NAME.useCustom]: {} // 自定义 } @@ -57,6 +61,8 @@ export const useProperty = () => hooksState[HOOK_NAME.useProperty] export const useHelp = () => hooksState[HOOK_NAME.useHelp] export const useHttp = () => hooksState[HOOK_NAME.useHttp] export const useEnv = () => hooksState[HOOK_NAME.useEnv] +export const useModal = () => hooksState[HOOK_NAME.useModal] +export const useNotify = () => hooksState[HOOK_NAME.useNotify] export const useCustom = () => hooksState[HOOK_NAME.useCustom] export function initHook(hookName, hookContent, { useDefaultExport } = {}) { From 4b061775f83b2b40aa04b541864ae4f2ecedacb5 Mon Sep 17 00:00:00 2001 From: hexqi Date: Wed, 19 Jun 2024 12:08:36 +0800 Subject: [PATCH 3/6] feat: move hooks --- designer-demo/registry.js | 24 +-- packages/canvas/breadcrumb/index.js | 6 +- .../VariableConfigurator.vue | 4 +- packages/controller/adapter.js | 37 ----- packages/controller/js/comment.js | 16 ++ packages/controller/{src => js}/example.js | 3 +- packages/controller/meta.js | 3 - packages/controller/src/composable/index.js | 23 +++ .../src/{hooks => composable}/useApp.js | 6 +- .../{hooks => composable}/useEditorInfo.js | 0 packages/controller/src/hooks/index.js | 132 ----------------- packages/controller/src/index.js | 13 +- packages/controller/src/useData.js | 20 --- packages/controller/src/useMessage.js | 138 ------------------ packages/controller/utils.js | 58 ++++++-- packages/design-core/index.js | 34 ++--- .../engine-cli/template/designer/registry.js | 24 +-- packages/layout/index.js | 10 +- packages/layout/src/composable/index.js | 11 ++ .../src/{hooks => composable}/useLayout.js | 0 packages/plugins/block/index.js | 6 +- .../plugins/block/src/composable/index.js | 11 ++ .../block/src/composable}/useBlock.js | 6 +- packages/plugins/data/src/Main.vue | 3 +- packages/plugins/datasource/index.js | 8 +- .../datasource/src/DataSourceRemotePanel.vue | 2 +- .../datasource/src/composable/index.js | 11 ++ .../src/composable}/useDataSource.js | 0 packages/plugins/help/index.js | 6 +- packages/plugins/help/src/composable/index.js | 11 ++ .../help/src/composable}/useHelp.js | 0 packages/plugins/i18n/index.js | 6 +- packages/plugins/i18n/src/composable/index.js | 11 ++ .../i18n/src/composable}/useTranslate.js | 6 +- packages/plugins/materials/index.js | 6 +- .../plugins/materials/src/composable/index.js | 11 ++ .../materials/src/composable}/useResource.js | 2 +- packages/plugins/page/index.js | 6 +- packages/plugins/page/src/composable/index.js | 11 ++ .../page/src/composable}/usePage.js | 0 packages/plugins/schema/src/Main.vue | 3 +- .../events/src/components/AdvanceConfig.vue | 3 +- packages/settings/props/index.js | 10 +- .../src/components/inputs/CodeEditor.vue | 3 +- .../settings/props/src/composable/index.js | 21 +++ .../{hooks => composable}/useProperties.js | 0 .../src/{hooks => composable}/useProperty.js | 0 packages/toolbars/generate-vue/index.js | 6 +- .../generate-vue/src/composable/index.js | 11 ++ .../src/composable}/useSaveLocal.js | 0 packages/toolbars/redoundo/index.js | 6 +- .../toolbars/redoundo/src/composable/index.js | 11 ++ .../redoundo/src/composable}/useHistory.js | 0 packages/toolbars/save/index.js | 1 - 54 files changed, 294 insertions(+), 466 deletions(-) create mode 100644 packages/controller/js/comment.js rename packages/controller/{src => js}/example.js (98%) delete mode 100644 packages/controller/meta.js create mode 100644 packages/controller/src/composable/index.js rename packages/controller/src/{hooks => composable}/useApp.js (89%) rename packages/controller/src/{hooks => composable}/useEditorInfo.js (100%) delete mode 100644 packages/controller/src/hooks/index.js delete mode 100644 packages/controller/src/useData.js delete mode 100644 packages/controller/src/useMessage.js create mode 100644 packages/layout/src/composable/index.js rename packages/layout/src/{hooks => composable}/useLayout.js (100%) create mode 100644 packages/plugins/block/src/composable/index.js rename packages/{controller/src/hooks => plugins/block/src/composable}/useBlock.js (98%) create mode 100644 packages/plugins/datasource/src/composable/index.js rename packages/{controller/src/hooks => plugins/datasource/src/composable}/useDataSource.js (100%) create mode 100644 packages/plugins/help/src/composable/index.js rename packages/{controller/src/hooks => plugins/help/src/composable}/useHelp.js (100%) create mode 100644 packages/plugins/i18n/src/composable/index.js rename packages/{controller/src/hooks => plugins/i18n/src/composable}/useTranslate.js (96%) create mode 100644 packages/plugins/materials/src/composable/index.js rename packages/{controller/src/hooks => plugins/materials/src/composable}/useResource.js (99%) create mode 100644 packages/plugins/page/src/composable/index.js rename packages/{controller/src/hooks => plugins/page/src/composable}/usePage.js (100%) create mode 100644 packages/settings/props/src/composable/index.js rename packages/settings/props/src/{hooks => composable}/useProperties.js (100%) rename packages/settings/props/src/{hooks => composable}/useProperty.js (100%) create mode 100644 packages/toolbars/generate-vue/src/composable/index.js rename packages/toolbars/{save/src/hooks => generate-vue/src/composable}/useSaveLocal.js (100%) create mode 100644 packages/toolbars/redoundo/src/composable/index.js rename packages/{controller/src/hooks => toolbars/redoundo/src/composable}/useHistory.js (100%) diff --git a/designer-demo/registry.js b/designer-demo/registry.js index dc2ef6b0b..d4554db72 100644 --- a/designer-demo/registry.js +++ b/designer-demo/registry.js @@ -43,18 +43,7 @@ import { Layout, Canvas, EditorInfoService, - HelpService, AppService, - BlockService, - BreadcrumbService, - DataSourceService, - PageService, - ResourceService, - PropertiesService, - PropertyService, - SaveLocalService, - TranslateService, - HistoryService, } from '@opentiny/tiny-engine' export default { @@ -62,18 +51,7 @@ export default { id: 'engine.root', metas: [ EditorInfoService, - HelpService, - AppService, - BreadcrumbService, - BlockService, - DataSourceService, - PageService, - ResourceService, - PropertiesService, - PropertyService, - SaveLocalService, - TranslateService, - HistoryService, + AppService ] }, config: { diff --git a/packages/canvas/breadcrumb/index.js b/packages/canvas/breadcrumb/index.js index 143fe9c3e..4d330c414 100644 --- a/packages/canvas/breadcrumb/index.js +++ b/packages/canvas/breadcrumb/index.js @@ -1,3 +1,4 @@ +import { HOOK_NAME } from '@opentiny/tiny-engine-entry' import CanvasBreadcrumb from './src/CanvasFooter.vue' import metaData from './meta' import useBreadcrumb from './src/useBreadcrumb' @@ -5,5 +6,8 @@ import useBreadcrumb from './src/useBreadcrumb' export default { ...metaData, apis: useBreadcrumb(), - entry: CanvasBreadcrumb + entry: CanvasBreadcrumb, + composable: { + name: HOOK_NAME.useBreadcrumb + } } diff --git a/packages/configurator/src/variable-configurator/VariableConfigurator.vue b/packages/configurator/src/variable-configurator/VariableConfigurator.vue index a0d6b6070..76bd92d16 100644 --- a/packages/configurator/src/variable-configurator/VariableConfigurator.vue +++ b/packages/configurator/src/variable-configurator/VariableConfigurator.vue @@ -121,7 +121,8 @@