diff --git a/src/components/Configuration/ConfigContainer.vue b/src/components/Configuration/ConfigContainer.vue index 4eac7229..d85dfb94 100644 --- a/src/components/Configuration/ConfigContainer.vue +++ b/src/components/Configuration/ConfigContainer.vue @@ -86,7 +86,7 @@ import { localStorageKeys, modalNames } from '@/utils/config/defaults'; import { getUsersLanguage } from '@/utils/config/ConfigHelpers'; import ErrorHandler from '@/utils/logging/ErrorHandler'; import StoreKeys from '@/utils/StoreMutations'; -import JsonEditor from '@/components/Configuration/JsonEditor'; +import { defineAsyncComponent, h } from 'vue'; import CustomCssEditor from '@/components/Configuration/CustomCss'; import CloudBackupRestore from '@/components/Configuration/CloudBackupRestore'; import RebuildApp from '@/components/Configuration/RebuildApp'; @@ -105,6 +105,14 @@ import RebuildIcon from '@/assets/interface-icons/application-rebuild.svg'; import LanguageIcon from '@/assets/interface-icons/config-language.svg'; import IconAbout from '@/assets/interface-icons/application-about.svg'; +const EditorLoading = { + render: () => h('p', { class: 'editor-loading-placeholder' }, 'Loading editor…'), +}; +const JsonEditor = defineAsyncComponent({ + loader: () => import('@/components/Configuration/JsonEditor.vue'), + loadingComponent: EditorLoading, +}); + export default { name: 'ConfigContainer', data() { @@ -306,12 +314,11 @@ div.code-container { } .tab-item { + flex: 1 1 auto; + min-height: 0; overflow-y: auto; @extend .scroll-bar; background: var(--config-settings-background); - &.main-tab { - min-height: 500px; - } } .main-options-container { @@ -388,4 +395,15 @@ p.small-screen-note { background: var(--config-settings-background) !important; } +.editor-loading-placeholder { + display: flex; + align-items: center; + justify-content: center; + height: 55vh; + margin: 0; + font-size: 1rem; + color: var(--config-settings-color); + opacity: var(--dimming-factor); +} + diff --git a/src/components/Configuration/JsonEditor.vue b/src/components/Configuration/JsonEditor.vue index 4a15952a..57293773 100644 --- a/src/components/Configuration/JsonEditor.vue +++ b/src/components/Configuration/JsonEditor.vue @@ -1,22 +1,30 @@