Skip to content

Commit

Permalink
refactor: extract material-related code to useMaterial from useResour…
Browse files Browse the repository at this point in the history
…ce (opentiny#591)

* refactor(material): 将物料(组件,区块)从resource剥离出来

* refactor(useMaterial): useResource拆分

* refactor(useMaterial): 机器人review意见修改

* refactor(useMaterial): review意见修改

* refactor(useMaterials): 更新冲突后的调整,以及增加注释

* refactor(useMaterials): review bot

* refactor(useMaterials): review bot

* fix: sync update

* refactor(useMaterials): review bot

---------

Co-authored-by: chilingling <michaelchiling1024@gmail.com>
  • Loading branch information
wenmine and chilingling authored Jul 1, 2024
1 parent 03d35b2 commit 7f08ae2
Show file tree
Hide file tree
Showing 30 changed files with 444 additions and 377 deletions.
6 changes: 3 additions & 3 deletions packages/canvas/DesignCanvas/src/DesignCanvas.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
useProperties,
useCanvas,
useLayout,
useResource,
useMaterial,
useHistory,
useModal
} from '@opentiny/tiny-engine-meta-register'
Expand Down Expand Up @@ -170,9 +170,9 @@ export default {
showMask,
controller: {
// 需要在canvas/render或内置组件里使用的方法
getMaterial: useResource().getMaterial,
getMaterial: useMaterial().getMaterial,
addHistory: useHistory().addHistory,
registerBlock: useResource().registerBlock,
registerBlock: useMaterial().registerBlock,
request: useHttp(),
ast
},
Expand Down
5 changes: 2 additions & 3 deletions packages/canvas/container/src/CanvasContainer.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<script>
import { onMounted, ref, computed, onUnmounted } from 'vue'
import { iframeMonitoring } from '@opentiny/tiny-engine-common/js/monitor'
import { useTranslate, useCanvas, useResource } from '@opentiny/tiny-engine-meta-register'
import { useTranslate, useCanvas, useMaterial } from '@opentiny/tiny-engine-meta-register'
import { NODE_UID, NODE_LOOP } from '../../common'
import { registerHostkeyEvent, removeHostkeyEvent } from './keyboard'
import CanvasMenu, { closeMenu, openMenu } from './components/CanvasMenu.vue'
Expand Down Expand Up @@ -110,8 +110,7 @@ export default {
const beforeCanvasReady = () => {
if (iframe.value) {
const win = iframe.value.contentWindow
win.thirdPartyDeps = useResource().resState.thirdPartyDeps
win.thirdPartyDeps = useMaterial().materialState.thirdPartyDeps
}
}
Expand Down
4 changes: 2 additions & 2 deletions packages/canvas/container/src/components/CanvasAction.vue
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ import {
dragStart,
getCurrentElement
} from '../container'
import { useLayout, useResource } from '@opentiny/tiny-engine-meta-register'
import { useLayout, useMaterial } from '@opentiny/tiny-engine-meta-register'
import { Popover } from '@opentiny/vue'
import shortCutPopover from './shortCutPopover.vue'
Expand Down Expand Up @@ -236,7 +236,7 @@ export default {
const showToParent = computed(() => getCurrent().parent !== getSchema())
const isModal = computed(() => {
const config = useResource().getMaterial(props.selectState.componentName)
const config = useMaterial().getMaterial(props.selectState.componentName)
return config?.configure?.isModal
})
Expand Down
4 changes: 2 additions & 2 deletions packages/canvas/container/src/components/shortCutPopover.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

<script>
import { computed, ref } from 'vue'
import { useResource, useProperties, useCanvas, useProperty } from '@opentiny/tiny-engine-meta-register'
import { useMaterial, useProperties, useCanvas, useProperty } from '@opentiny/tiny-engine-meta-register'
import { iconSetting, iconClose } from '@opentiny/vue-icon'
export default {
Expand All @@ -39,7 +39,7 @@ export default {
IconClose: iconClose()
},
setup(props, { emit }) {
const { getMaterial } = useResource()
const { getMaterial } = useMaterial()
const { pageState } = useCanvas()
const { properties } = useProperty().getProperty({ pageState })
const active = ref('props')
Expand Down
6 changes: 3 additions & 3 deletions packages/canvas/container/src/container.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
NODE_TAG,
NODE_LOOP
} from '../../common'
import { useCanvas, useLayout, useResource, useTranslate } from '@opentiny/tiny-engine-meta-register'
import { useCanvas, useLayout, useResource, useTranslate, useMaterial } from '@opentiny/tiny-engine-meta-register'
import { isVsCodeEnv } from '@opentiny/tiny-engine-common/js/environments'
import Builtin from '../../render/src/builtin/builtin.json' //TODO 画布内外应该分开

Expand Down Expand Up @@ -916,7 +916,7 @@ export const initCanvas = ({ renderer, iframe, emit, controller }) => {
// 设置画布全局的utils工具类上下文环境
setUtils(useResource().resState.utils)
setSchema(schema)
setConfigure(useResource().getConfigureMap())
canvasDispatch('updateDependencies', { detail: useResource().resState.thirdPartyDeps })
setConfigure(useMaterial().getConfigureMap())
canvasDispatch('updateDependencies', { detail: useMaterial().materialState.thirdPartyDeps })
canvasState.loading = false
}
4 changes: 2 additions & 2 deletions packages/common/component/ConfigItem.vue
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ import { typeOf } from '@opentiny/vue-renderless/common/type'
import {
useHistory,
useProperties,
useResource,
useMaterial,
useLayout,
useCanvas,
getConfigurator
Expand Down Expand Up @@ -261,7 +261,7 @@ export default {
const currentComponent = useProperties().getSchema().componentName
const {
schema: { events = {} }
} = useResource().getMaterial(currentComponent)
} = useMaterial().getMaterial(currentComponent)
if (Object.keys(events).includes(`onUpdate:${property}`)) {
// 默认情况下,v-model 在组件上都是使用 modelValue 作为 prop,并以 update:modelValue 作为对应的事件。
Expand Down
11 changes: 7 additions & 4 deletions packages/common/js/preview.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

import { constants } from '@opentiny/tiny-engine-utils'
import { isDevelopEnv } from './environments'
import { useResource } from '@opentiny/tiny-engine-meta-register'
import { useMaterial } from '@opentiny/tiny-engine-meta-register'
// prefer old unicode hacks for backward compatibility

const { COMPONENT_NAME } = constants
Expand All @@ -25,10 +25,13 @@ const open = (params = {}) => {
const paramsMap = new URLSearchParams(location.search)
params.app = paramsMap.get('id')
params.tenant = paramsMap.get('tenant')
const { scripts, styles } = useResource().resState.thirdPartyDeps
params.scripts = scripts
const { scripts, styles } = useMaterial().resState.thirdPartyDeps
params.scripts = {}
scripts
.filter((item) => item.script)
.reduce((pre, cur) => ({ ...pre, [cur.package]: cur.script }), {})
.forEach((item) => {
params.scripts[item.package] = item.script
})
params.styles = [...styles]

const href = window.location.href.split('?')[0] || './'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<script>
import { ref } from 'vue'
import { MetaListItems } from '@opentiny/tiny-engine-common'
import { useProperties, useResource, useHistory } from '@opentiny/tiny-engine-meta-register'
import { useProperties, useMaterial, useHistory } from '@opentiny/tiny-engine-meta-register'
import { utils } from '@opentiny/tiny-engine-utils'
import { iconDel } from '@opentiny/vue-icon'
Expand All @@ -33,7 +33,7 @@ export default {
},
setup() {
const { children: schemaChildren, componentName } = useProperties().getSchema()
const configureMap = useResource().getConfigureMap()
const configureMap = useMaterial().getConfigureMap()
const childComponentName =
configureMap[componentName]?.nestingRule?.childWhitelist?.[0] || schemaChildren?.[0]?.componentName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
</template>
<script>
import { reactive, ref, watchEffect } from 'vue'
import { useProperties, useResource } from '@opentiny/tiny-engine-meta-register'
import { useProperties, useMaterial } from '@opentiny/tiny-engine-meta-register'
import { IconDel, IconEdit, IconClose, IconPlus } from '@opentiny/vue-icon'
import { Form, FormItem, Input, Button, Popover, Tooltip } from '@opentiny/vue'
import { utils } from '@opentiny/tiny-engine-utils'
Expand Down Expand Up @@ -89,7 +89,7 @@ export default {
return
}
const { schema } = useResource().getMaterial(useProperties().getSchema().componentName)
const { schema } = useMaterial().getMaterial(useProperties().getSchema().componentName)
schema?.properties?.forEach(({ content }) => {
content.forEach(({ property }) => properties.push(property))
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<script>
import { ref, watchEffect, nextTick } from 'vue'
import { Popover } from '@opentiny/vue'
import { useProperties, useResource, useModal, useCanvas } from '@opentiny/tiny-engine-meta-register'
import { useProperties, useModal, useCanvas, useMaterial } from '@opentiny/tiny-engine-meta-register'
import { iconHelpCircle } from '@opentiny/vue-icon'
export default {
Expand Down Expand Up @@ -108,7 +108,7 @@ export default {
cancel: () => {}
})
}
const config = useResource().getMaterial(schema.componentName)
const config = useMaterial().getMaterial(schema.componentName)
const isPopper = config?.configure?.isPopper
if (isPopper) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

<script setup>
import { nextTick } from 'vue'
import { useProperties, useResource, useCanvas } from '@opentiny/tiny-engine-meta-register'
import { useProperties, useMaterial, useCanvas } from '@opentiny/tiny-engine-meta-register'
import ArrayItemConfigurator from '../array-item-configurator/ArrayItemConfigurator.vue'
const { children: schemaChildren, componentName, props } = useProperties().getSchema()
const configureMap = useResource().getConfigureMap()
const configureMap = useMaterial().getConfigureMap()
const childComponentName =
configureMap[componentName]?.nestingRule?.childWhitelist?.[0] || schemaChildren?.[0]?.componentName
Expand Down
2 changes: 1 addition & 1 deletion packages/design-core/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export { default as GenerateVue, SaveLocalService } from '@opentiny/tiny-engine-
export { default as Refresh } from '@opentiny/tiny-engine-toolbar-refresh'
export { default as Collaboration } from '@opentiny/tiny-engine-toolbar-collaboration'
export { default as Setting } from '@opentiny/tiny-engine-toolbar-setting'
export { default as Materials, ResourceService } from '@opentiny/tiny-engine-plugin-materials'
export { default as Materials, ResourceService, MaterialService } from '@opentiny/tiny-engine-plugin-materials'
export { default as Data } from '@opentiny/tiny-engine-plugin-data'
export { default as Script } from '@opentiny/tiny-engine-plugin-script'
export { default as Tree } from '@opentiny/tiny-engine-plugin-tree'
Expand Down
4 changes: 2 additions & 2 deletions packages/plugins/block/src/js/blockSetting.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
useLayout,
useNotify,
useHistory,
useResource
useMaterial
} from '@opentiny/tiny-engine-meta-register'
import { isVsCodeEnv } from '@opentiny/tiny-engine-common/js/environments'
import { getCanvasStatus } from '@opentiny/tiny-engine-common/js/canvas'
Expand Down Expand Up @@ -51,7 +51,7 @@ const { getBlockList, setBlockList, setCategoryList, getCurrentBlock, addBlockEv
const { batchCreateI18n } = useTranslate()
const { message, confirm } = useModal()
const { setSaved } = useCanvas()
const { getMaterial } = useResource()
const { getMaterial } = useMaterial()

const STRING_SLOT = ['Slot', 'slot']

Expand Down
8 changes: 4 additions & 4 deletions packages/plugins/materials/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,26 @@

import entry from './src/Main.vue'
import metaData from './meta.js'
import { ResourceService, MaterialService } from './src/composable'
import MaterialLayout from './src/meta/layout'
import MaterialBlock from './src/meta/block'
import MaterialComponent from './src/meta/component'
import MaterialHeader from './src/components/header/Main.vue'
import { ResourceService } from './src/composable'

export default {
...metaData,
entry,
layout: MaterialLayout,
options: {
defaultTabId: 'engine.plugins.materials.component',
tabComponentIds: ['engine.plugins.materials.component', 'engine.plugins.materials.block']
displayComponentIds: ['engine.plugins.materials.component', 'engine.plugins.materials.block']
},
components: {
header: MaterialHeader
},
apis: { ...MaterialBlock.apis },
api: { ...MaterialBlock.apis },
metas: [MaterialBlock, MaterialComponent, ResourceService]
metas: [MaterialBlock, MaterialComponent, ResourceService, MaterialService]
}

export { entry, ResourceService }
export { entry, ResourceService, MaterialService }
10 changes: 10 additions & 0 deletions packages/plugins/materials/src/composable/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { HOOK_NAME } from '@opentiny/tiny-engine-meta-register'
import useResource from './useResource'
import useMaterial from './useMaterial'

export const ResourceService = {
id: 'engine.service.resource',
Expand All @@ -9,3 +10,12 @@ export const ResourceService = {
name: HOOK_NAME.useResource
}
}

export const MaterialService = {
id: 'engine.service.material',
type: 'MetaService',
apis: useMaterial(),
composable: {
name: HOOK_NAME.useMaterial
}
}
Loading

0 comments on commit 7f08ae2

Please sign in to comment.