diff --git a/app/src/interfaces/types.ts b/app/src/interfaces/types.ts index c9b579874d..668ac806ca 100644 --- a/app/src/interfaces/types.ts +++ b/app/src/interfaces/types.ts @@ -1,5 +1,5 @@ import VueI18n from 'vue-i18n'; -import { Component } from 'vue'; +import { Component, AsyncComponent } from 'vue'; import { Field, types, localTypes } from '@/types'; export type InterfaceConfig = { @@ -7,8 +7,8 @@ export type InterfaceConfig = { icon: string; name: string | VueI18n.TranslateResult; description?: string | VueI18n.TranslateResult; - component: Component; - options: DeepPartial[] | Component; + component: Component | AsyncComponent; + options: DeepPartial[] | Component | AsyncComponent; types: typeof types[number][]; groups?: readonly typeof localTypes[number][]; relational?: boolean; diff --git a/app/src/interfaces/wysiwyg/index.ts b/app/src/interfaces/wysiwyg/index.ts index 982549efdf..f63d0a249b 100644 --- a/app/src/interfaces/wysiwyg/index.ts +++ b/app/src/interfaces/wysiwyg/index.ts @@ -1,12 +1,15 @@ -import InterfaceWYSIWYG from './wysiwyg.vue'; +import { AsyncComponent } from 'vue'; import { defineInterface } from '@/interfaces/define'; +const InterfaceWYSIWYG = () => + import(/* webpackChunkName: 'interface-wysiwyg', webpackPrefetch: true */ './wysiwyg.vue'); + export default defineInterface(({ i18n }) => ({ id: 'wysiwyg', name: i18n.t('interfaces.wysiwyg.wysiwyg'), description: i18n.t('interfaces.wysiwyg.description'), icon: 'format_quote', - component: InterfaceWYSIWYG, + component: InterfaceWYSIWYG as AsyncComponent, types: ['text'], options: [ { diff --git a/app/src/modules/docs/routes/static.vue b/app/src/modules/docs/routes/static.vue index 7e8f5f563e..8e5e93fb25 100644 --- a/app/src/modules/docs/routes/static.vue +++ b/app/src/modules/docs/routes/static.vue @@ -27,11 +27,13 @@