From c87a6ba811afbf472db00781102afb987fe9e3d6 Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Fri, 14 Feb 2025 16:10:20 +0100 Subject: fix(files): attach sidebar to main content for vue debug Signed-off-by: skjnldsv --- apps/files/src/sidebar.js | 46 ---------------------------------- apps/files/src/sidebar.ts | 54 ++++++++++++++++++++++++++++++++++++++++ apps/files/src/views/Sidebar.vue | 29 +++++++++++---------- 3 files changed, 70 insertions(+), 59 deletions(-) delete mode 100644 apps/files/src/sidebar.js create mode 100644 apps/files/src/sidebar.ts (limited to 'apps/files/src') diff --git a/apps/files/src/sidebar.js b/apps/files/src/sidebar.js deleted file mode 100644 index 61f8be419b6..00000000000 --- a/apps/files/src/sidebar.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -import Vue from 'vue' -import { translate as t } from '@nextcloud/l10n' - -import SidebarView from './views/Sidebar.vue' -import Sidebar from './services/Sidebar.js' -import Tab from './models/Tab.js' - -Vue.prototype.t = t - -// Init Sidebar Service -if (!window.OCA.Files) { - window.OCA.Files = {} -} -Object.assign(window.OCA.Files, { Sidebar: new Sidebar() }) -Object.assign(window.OCA.Files.Sidebar, { Tab }) - -window.addEventListener('DOMContentLoaded', function() { - const contentElement = document.querySelector('body > .content') - || document.querySelector('body > #content') - - // Make sure we have a proper layout - if (contentElement) { - // Make sure we have a mountpoint - if (!document.getElementById('app-sidebar')) { - const sidebarElement = document.createElement('div') - sidebarElement.id = 'app-sidebar' - contentElement.appendChild(sidebarElement) - } - } - - // Init vue app - const View = Vue.extend(SidebarView) - const AppSidebar = new View({ - name: 'SidebarRoot', - }) - AppSidebar.$mount('#app-sidebar') - window.OCA.Files.Sidebar.open = AppSidebar.open - window.OCA.Files.Sidebar.close = AppSidebar.close - window.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode - window.OCA.Files.Sidebar.setShowTagsDefault = AppSidebar.setShowTagsDefault -}) diff --git a/apps/files/src/sidebar.ts b/apps/files/src/sidebar.ts new file mode 100644 index 00000000000..35a379ad649 --- /dev/null +++ b/apps/files/src/sidebar.ts @@ -0,0 +1,54 @@ +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import Vue from 'vue' +import { translate as t } from '@nextcloud/l10n' + +import SidebarView from './views/Sidebar.vue' +import Sidebar from './services/Sidebar.js' +import Tab from './models/Tab.js' + +Vue.prototype.t = t + +// Init Sidebar Service +if (!window.OCA.Files) { + window.OCA.Files = {} +} +Object.assign(window.OCA.Files, { Sidebar: new Sidebar() }) +Object.assign(window.OCA.Files.Sidebar, { Tab }) + +window.addEventListener('DOMContentLoaded', function() { + const contentElement = document.querySelector('body > .content') + || document.querySelector('body > #content') + + let vueParent + + // Make sure we have a proper layout + if (contentElement) { + // Make sure we have a mountpoint + if (!document.getElementById('app-sidebar')) { + const sidebarElement = document.createElement('div') + sidebarElement.id = 'app-sidebar' + contentElement.appendChild(sidebarElement) + } + + // Helps with vue debug, as we mount the sidebar to the + // content element which is a vue instance itself + vueParent = contentElement.__vue__ as Vue + } + + // Init vue app + const View = Vue.extend(SidebarView) + const AppSidebar = new View({ + name: 'SidebarRoot', + parent: vueParent, + }).$mount('#app-sidebar') + + // Expose Sidebar methods + window.OCA.Files.Sidebar.open = AppSidebar.open + window.OCA.Files.Sidebar.close = AppSidebar.close + window.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode + window.OCA.Files.Sidebar.setShowTagsDefault = AppSidebar.setShowTagsDefault +}) diff --git a/apps/files/src/views/Sidebar.vue b/apps/files/src/views/Sidebar.vue index 1867ea6a591..fbbd2df4bb9 100644 --- a/apps/files/src/views/Sidebar.vue +++ b/apps/files/src/views/Sidebar.vue @@ -38,8 +38,7 @@ + :file-id="fileInfo.id" /> -