From 3091821c4a269413646e79214fd227f71285351c Mon Sep 17 00:00:00 2001 From: Alexander Platov Date: Tue, 14 Jan 2025 08:13:35 +0300 Subject: [PATCH] Fixed Settings layout (#7660) Signed-off-by: Alexander Platov --- .../src/components/PluginCard.svelte | 9 +- .../src/components/Settings.svelte | 189 +++++++++--------- .../src/components/Workbench.svelte | 11 +- 3 files changed, 110 insertions(+), 99 deletions(-) diff --git a/plugins/setting-resources/src/components/PluginCard.svelte b/plugins/setting-resources/src/components/PluginCard.svelte index 4c0d8c6379..0cc99fbb0e 100644 --- a/plugins/setting-resources/src/components/PluginCard.svelte +++ b/plugins/setting-resources/src/components/PluginCard.svelte @@ -86,7 +86,7 @@
-
+
{#if integration && integration.value !== ''} {integration.value} {:else if integrationType.descriptionComponent} @@ -135,7 +135,7 @@ border-radius: 0.75rem; } .header { - margin: 1.5rem 1.5rem 1rem; + padding: 1rem; min-height: fit-content; } .icon { @@ -144,6 +144,7 @@ min-height: 2.25rem; } .content { + overflow-y: auto; flex-grow: 1; margin: 0 1.5rem 0.25rem; color: var(--theme-caption-color); @@ -160,9 +161,7 @@ justify-content: start; align-items: center; column-gap: 1rem; - padding: 1.5rem 1.75rem 1.25rem; - padding-top: 0.5rem; - height: 5.25rem; + padding: 0.5rem 1rem 1rem; mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 1.25rem, rgba(0, 0, 0, 1) 2.5rem); overflow: hidden; border-radius: 0 0 1.25rem 1.25rem; diff --git a/plugins/setting-resources/src/components/Settings.svelte b/plugins/setting-resources/src/components/Settings.svelte index 8fce5bad56..bd3301a299 100644 --- a/plugins/setting-resources/src/components/Settings.svelte +++ b/plugins/setting-resources/src/components/Settings.svelte @@ -37,15 +37,16 @@ showPopup, type AnyComponent, deviceOptionsStore as deviceInfo, - resizeObserver, deviceWidths } from '@hcengineering/ui' - import { closeWidget, NavFooter, openWidget, minimizeSidebar } from '@hcengineering/workbench-resources' + import { closeWidget, NavFooter, openWidget, minimizeSidebar, sidebarStore } from '@hcengineering/workbench-resources' import workbench from '@hcengineering/workbench' import { ComponentType, onDestroy, onMount } from 'svelte' import { clearSettingsStore, settingsStore, type SettingsStore } from '../store' import { Analytics } from '@hcengineering/analytics' + export let workbenchWidth: number = 0 + const client = getClient() let category: SettingsCategory | undefined @@ -129,117 +130,123 @@ } $: asideComponent = updatedStore($settingsStore) let moveASide: boolean = false + $: if (workbenchWidth < deviceWidths[3] && !moveASide) moveASide = true + else if (workbenchWidth >= deviceWidths[3] && moveASide) moveASide = false + const widget = client.getModel().findAllSync(workbench.class.Widget, { _id: settingPlg.ids.SettingsWidget })[0] - $: if (moveASide && asideComponent != null) { + $: if (moveASide && asideComponent != null && $sidebarStore.widget !== widget._id) { openWidget(widget, { component: asideComponent, ...asideProps }, { active: true, openedByUser: true }) $deviceInfo.aside.visible = true - } else if ((moveASide && asideComponent == null) || (!moveASide && asideComponent != null)) { + } else if (moveASide && asideComponent == null && $sidebarStore.widget === widget._id) { closeWidget(widget._id) minimizeSidebar() + } else if (!moveASide && asideComponent != null && $sidebarStore.widget === widget._id) { + closeWidget(widget._id) } + let replacedPanel: HTMLElement + $: $deviceInfo.replacedPanel = replacedPanel + onDestroy(() => ($deviceInfo.replacedPanel = undefined)) + defineSeparators('setting', settingsSeparators) -
{ - if (el.clientWidth < deviceWidths[2] && !moveASide) moveASide = true - else if (el.clientWidth >= deviceWidths[2] && moveASide) moveASide = false - }} -> - {#if $deviceInfo.navigator.visible} -
-
-
-
+{#if $deviceInfo.navigator.visible} +
+
+
+
- - {#each categories as _category} - {#if _category.extraComponents?.navigation && (_category.expandable ?? _category._id === setting.ids.Setting)} - - - - {:else} - { - selectCategory(_category.name) + + {#each categories as _category} + {#if _category.extraComponents?.navigation && (_category.expandable ?? _category._id === setting.ids.Setting)} + + - {/if} - {/each} - - - - - {#if hasAccountRole(account, AccountRole.User)} + + {:else} { + selectCategory(_category.name) + }} /> {/if} - - -
- + {/each} + + + + + {#if hasAccountRole(account, AccountRole.User)} + + {/if} + +
- {/if} - -
- {#if category} - - {/if}
- {#if asideComponent != null && !moveASide} - -
- {#key asideProps} - {#if typeof asideComponent === 'string'} - - {:else} - - {/if} - {/key} -
+ +{/if} + +
+ {#if category} + {/if}
+{#if asideComponent != null && !moveASide} + +
+ {#key asideProps} + {#if typeof asideComponent === 'string'} + + {:else} + + {/if} + {/key} +
+{/if} diff --git a/plugins/workbench-resources/src/components/Workbench.svelte b/plugins/workbench-resources/src/components/Workbench.svelte index 70f371bef6..b30b41233c 100644 --- a/plugins/workbench-resources/src/components/Workbench.svelte +++ b/plugins/workbench-resources/src/components/Workbench.svelte @@ -985,7 +985,8 @@ {:else if specialComponent} @@ -996,7 +997,8 @@ ...specialComponent.componentProps, currentSpace, space: currentSpace, - navigationModel: specialComponent?.navigationModel + navigationModel: specialComponent?.navigationModel, + workbenchWidth }} on:action={(e) => { if (e?.detail) { @@ -1007,7 +1009,10 @@ }} /> {:else if currentView?.component !== undefined} - + {:else if $accessDeniedStore}