From 5c8f63e7fabdc3b3d34dc73398479dfd87162032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Tue, 6 Feb 2024 14:53:34 +0100 Subject: [PATCH] perf: Optimize lazy imports for reference widgets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/reference.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/reference.js b/src/reference.js index 76848f01e..a1256912f 100644 --- a/src/reference.js +++ b/src/reference.js @@ -1,14 +1,11 @@ -import { registerCustomPickerElement, registerWidget, NcCustomPickerRenderResult } from '@nextcloud/vue/dist/Components/NcRichText.js' -import Vue from 'vue' - -import TablesSmartPicker from './views/SmartPicker.vue' +import { registerCustomPickerElement, registerWidget, NcCustomPickerRenderResult } from '@nextcloud/vue/dist/Functions/registerReference.js' __webpack_nonce__ = btoa(OC.requestToken) // eslint-disable-line __webpack_public_path__ = OC.linkTo('tables', 'js/') // eslint-disable-line registerWidget('tables_link', async (el, { richObjectType, richObject, accessible }) => { - const { default: Vue } = await import(/* webpackChunkName: "reference-table-lazy" */'vue') - const { default: TableReferenceWidget } = await import(/* webpackChunkName: "reference-table-lazy" */'./views/LinkReferenceWidget.vue') + const { default: Vue } = await import('vue') + const { default: TableReferenceWidget } = await import('./views/LinkReferenceWidget.vue') Vue.mixin({ methods: { t, n } }) const Widget = Vue.extend(TableReferenceWidget) new Widget({ @@ -20,9 +17,11 @@ registerWidget('tables_link', async (el, { richObjectType, richObject, accessibl }).$mount(el) }) -registerWidget('tables_content', async (el, { richObjectType, richObject, accessible }) => { +registerWidget('tables_content', async (el, { richObjectType, richObject, accessible, interactive = true }) => { const { default: Vue } = await import(/* webpackChunkName: "reference-table-lazy" */'vue') - const { default: TableReferenceWidget } = await import(/* webpackChunkName: "reference-table-lazy" */'./views/ContentReferenceWidget.vue') + const { default: TableReferenceWidget } = interactive + ? await import(/* webpackChunkName: "reference-table-lazy" */'./views/ContentReferenceWidget.vue') + : await import(/* webpackChunkName: "reference-table-lazy" */'./views/LinkReferenceWidget.vue') Vue.mixin({ methods: { t, n } }) const Widget = Vue.extend(TableReferenceWidget) new Widget({ @@ -32,9 +31,11 @@ registerWidget('tables_content', async (el, { richObjectType, richObject, access accessible, }, }).$mount(el) -}) +}, () => {}, { hasInteractiveView: true }) -registerCustomPickerElement('tables-ref-tables', (el, { providerId, accessible }) => { +registerCustomPickerElement('tables-ref-tables', async (el, { providerId, accessible }) => { + const { default: Vue } = await import('vue') + const { default: TablesSmartPicker } = await import('./views/SmartPicker.vue') const Element = Vue.extend(TablesSmartPicker) const vueElement = new Element({ propsData: {