Skip to content

Commit 755df8f

Browse files
authored
Fixed toggle navigator and aside (#7289)
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
1 parent 94fe72e commit 755df8f

File tree

4 files changed

+34
-23
lines changed

4 files changed

+34
-23
lines changed

plugins/love-resources/src/components/Floor.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
</script>
4343

4444
<div class="hulyComponent">
45-
<Header allowFullsize adaptive={'disabled'}>
45+
<Header adaptive={'disabled'}>
4646
<Breadcrumb title={selectedFloor?.name ?? ''} size={'large'} isCurrent />
4747
<svelte:fragment slot="beforeTitle">
4848
<ViewletSelector bind:viewlet bind:preference bind:loading viewletQuery={{ attachTo: lovePlg.class.Floor }} />

plugins/workbench-resources/src/components/Applications.svelte

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414
-->
1515
<script lang="ts">
16+
import { createEventDispatcher } from 'svelte'
1617
import core, { getCurrentAccount, type Ref } from '@hcengineering/core'
1718
import { createQuery } from '@hcengineering/presentation'
1819
import { Scroller, deviceOptionsStore as deviceInfo } from '@hcengineering/ui'
@@ -27,6 +28,8 @@
2728
export let apps: Application[] = []
2829
export let direction: 'vertical' | 'horizontal' = 'vertical'
2930
31+
const dispatch = createEventDispatcher()
32+
3033
let loaded: boolean = false
3134
let hiddenAppsIds: Array<Ref<Application>> = []
3235
const hiddenAppsIdsQuery = createQuery()
@@ -66,9 +69,7 @@
6669
label={app.label}
6770
navigator={app._id === active && $deviceInfo.navigator.visible}
6871
on:click={() => {
69-
if (app._id === active) {
70-
$deviceInfo.navigator.visible = !$deviceInfo.navigator.visible
71-
}
72+
if (app._id === active) dispatch('toggleNav')
7273
}}
7374
/>
7475
</NavLink>
@@ -82,9 +83,7 @@
8283
label={app.label}
8384
navigator={app._id === active && $deviceInfo.navigator.visible}
8485
on:click={() => {
85-
if (app._id === active) {
86-
$deviceInfo.navigator.visible = !$deviceInfo.navigator.visible
87-
}
86+
if (app._id === active) dispatch('toggleNav')
8887
}}
8988
/>
9089
</NavLink>

plugins/workbench-resources/src/components/Workbench.svelte

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,26 @@
160160
161161
const linkProviders = client.getModel().findAllSync(view.mixin.LinkIdProvider, {})
162162
163-
$deviceInfo.navigator.visible = getMetadata(workbench.metadata.NavigationExpandedDefault) ?? true
164-
$deviceInfo.aside.visible = getMetadata(workbench.metadata.NavigationExpandedDefault) ?? true
163+
const defaultNavigator = !(getMetadata(workbench.metadata.NavigationExpandedDefault) ?? true)
164+
const savedNavigator = localStorage.getItem('hiddenNavigator')
165+
const savedAside = localStorage.getItem('hiddenAside')
166+
let hiddenNavigator: boolean = savedNavigator !== null ? savedNavigator === 'true' : defaultNavigator
167+
let hiddenAside: boolean = savedAside !== null ? savedAside === 'true' : defaultNavigator
168+
$deviceInfo.navigator.visible = !hiddenNavigator
169+
$deviceInfo.aside.visible = !hiddenAside
170+
sidebarStore.subscribe((sidebar) => {
171+
if (!$deviceInfo.aside.float) {
172+
hiddenAside = sidebar.variant === SidebarVariant.MINI
173+
localStorage.setItem('hiddenAside', `${hiddenAside}`)
174+
}
175+
})
165176
166177
async function toggleNav (): Promise<void> {
167178
$deviceInfo.navigator.visible = !$deviceInfo.navigator.visible
179+
if (!$deviceInfo.navigator.float) {
180+
hiddenNavigator = !$deviceInfo.navigator.visible
181+
localStorage.setItem('hiddenNavigator', `${hiddenNavigator}`)
182+
}
168183
closeTooltip()
169184
if (currentApplication && navigatorModel) {
170185
await tick()
@@ -638,25 +653,21 @@
638653
639654
$deviceInfo.navigator.float = workbenchWidth <= HIDE_NAVIGATOR
640655
const checkWorkbenchWidth = (): void => {
641-
if (workbenchWidth <= HIDE_NAVIGATOR && !$deviceInfo.navigator.float && $deviceInfo.navigator.visible) {
656+
if (workbenchWidth <= HIDE_NAVIGATOR && !$deviceInfo.navigator.float) {
642657
$deviceInfo.navigator.visible = false
643658
$deviceInfo.navigator.float = true
644659
} else if (workbenchWidth > HIDE_NAVIGATOR && $deviceInfo.navigator.float) {
645-
if (getMetadata(workbench.metadata.NavigationExpandedDefault) === undefined) {
646-
$deviceInfo.navigator.float = false
647-
$deviceInfo.navigator.visible = true
648-
}
660+
$deviceInfo.navigator.float = false
661+
$deviceInfo.navigator.visible = !hiddenNavigator
649662
}
650663
}
651664
checkWorkbenchWidth()
652665
$: if ($deviceInfo.docWidth <= HIDE_ASIDE && !$deviceInfo.aside.float) {
653666
$deviceInfo.aside.visible = false
654667
$deviceInfo.aside.float = true
655668
} else if ($deviceInfo.docWidth > HIDE_ASIDE && $deviceInfo.aside.float) {
656-
if (getMetadata(workbench.metadata.NavigationExpandedDefault) === undefined) {
657-
$deviceInfo.aside.float = false
658-
$deviceInfo.aside.visible = true
659-
}
669+
$deviceInfo.aside.float = false
670+
$deviceInfo.aside.visible = !hiddenAside
660671
}
661672
const checkOnHide = (): void => {
662673
if ($deviceInfo.navigator.visible && $deviceInfo.navigator.float) $deviceInfo.navigator.visible = false
@@ -847,7 +858,12 @@
847858
notify={hasInboxNotifications}
848859
/>
849860
</NavLink>
850-
<Applications {apps} active={currentApplication?._id} direction={$deviceInfo.navigator.direction} />
861+
<Applications
862+
{apps}
863+
active={currentApplication?._id}
864+
direction={$deviceInfo.navigator.direction}
865+
on:toggleNav={toggleNav}
866+
/>
851867
</div>
852868
<div
853869
class="info-box {$deviceInfo.navigator.direction}"

tests/sanity/tests/tracker/subissues.spec.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,21 @@ import {
1212
} from './tracker.utils'
1313
import { Issue, NewIssue } from '../model/tracker/types'
1414
import { IssuesDetailsPage } from '../model/tracker/issues-details-page'
15-
import { CommonTrackerPage } from '../model/tracker/common-tracker-page'
1615

1716
test.use({
1817
storageState: PlatformSetting
1918
})
2019
test.describe('Tracker sub-issues tests', () => {
2120
let issuesPage: IssuesPage
2221
let issuesDetailsPage: IssuesDetailsPage
23-
let commonTrackerPage: CommonTrackerPage
2422

2523
test.beforeEach(async ({ page }) => {
2624
issuesPage = new IssuesPage(page)
2725
issuesDetailsPage = new IssuesDetailsPage(page)
28-
commonTrackerPage = new CommonTrackerPage(page)
2926
await (await page.goto(`${PlatformURI}/workbench/sanity-ws`))?.finished()
3027
})
3128

3229
test('create sub-issue', async ({ page }) => {
33-
await commonTrackerPage.clickOnApplicationButton()
3430
const props = {
3531
name: `issue-${generateId(5)}`,
3632
description: 'description',

0 commit comments

Comments
 (0)