Skip to content

Commit cb534d4

Browse files
feat: update logic
Signed-off-by: Rostislav Nagimov <[email protected]>
1 parent 629a170 commit cb534d4

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

plugins/tracker-resources/src/components/issues/IssuesView.svelte

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@
2121
export let modeSelectorProps: IModeSelector | undefined = undefined
2222
2323
let viewlet: WithLookup<Viewlet> | undefined = undefined
24-
let viewlets: Array<WithLookup<Viewlet>> | undefined = undefined;
24+
const viewlets: Array<WithLookup<Viewlet>> = []
25+
let viewletsReady: boolean = false
2526
let viewOptions: ViewOptions | undefined
2627
2728
let currentTabId: Ref<WorkbenchTab> | undefined = get(tabIdStore)
28-
let indicatorElement: HTMLElement | null = null;
29+
const indicatorElement: HTMLElement | null = null
2930
3031
let search = ''
3132
let searchQuery: DocumentQuery<Issue> = { ...query }
@@ -71,6 +72,11 @@
7172
savedFilterBarQuery
7273
)
7374
75+
if (!viewletsReady) {
76+
console.log('[DEBUG_STATE_ISSUES] Restore State: Viewlets not yet marked as ready. Exiting to re-trigger.')
77+
return
78+
}
79+
7480
if (savedViewletId && viewlets && viewlets.length > 0) {
7581
const foundViewlet = viewlets.find((v) => v._id === savedViewletId)
7682
if (foundViewlet) {
@@ -118,15 +124,29 @@
118124
}
119125
120126
$: {
121-
console.log('[DEBUG_STATE_ISSUES] Reactive: Viewlet change detection triggered.')
122-
if (currentTabId && viewlet) {
127+
if (viewlets && viewlets.length > 0 && !viewletsReady) {
128+
viewletsReady = true
129+
console.log(
130+
'[DEBUG_STATE_ISSUES] Reactive: Viewlets just became available (viewletsReady = true). Attempting restore.'
131+
)
132+
void restoreTrackerIssueState()
133+
} else if (!viewlets || viewlets.length === 0) {
134+
viewletsReady = false
135+
}
136+
137+
if (currentTabId && viewlet && viewletsReady) {
123138
console.log(
124139
'[DEBUG_STATE_ISSUES] Reactive: Viewlet changed or initialized, saving state. Viewlet ID:',
125140
viewlet._id
126141
)
127142
saveTrackerIssueState()
143+
} else if (currentTabId && !viewlet && viewletsReady) {
144+
console.log('[DEBUG_STATE_ISSUES] Reactive: Viewlet became undefined but viewlets are ready. Saving state.')
145+
saveTrackerIssueState()
128146
} else {
129-
console.log('[DEBUG_STATE_ISSUES] Reactive: Viewlet or currentTabId not ready for saving Viewlet state.')
147+
console.log(
148+
'[DEBUG_STATE_ISSUES] Reactive: Viewlet or currentTabId/viewletsReady not ready for saving Viewlet state.'
149+
)
130150
}
131151
}
132152
@@ -171,7 +191,7 @@
171191
{label}
172192
{space}
173193
{modeSelectorProps}
174-
currentTabId={currentTabId}
194+
{currentTabId}
175195
>
176196
<svelte:fragment slot="header-tools">
177197
<ViewletSettingButton bind:viewOptions bind:viewlet />

plugins/view-resources/src/filter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { getCurrentResolvedLocation, locationToUrl, type AnyComponent } from '@h
1616
import { type Filter, type FilterMode, type FilteredView, type KeyFilter } from '@hcengineering/view'
1717
import { get, writable } from 'svelte/store'
1818
import view from './plugin'
19-
import { WorkbenchTab } from '../../workbench/types'
19+
import { type WorkbenchTab } from '../../workbench/types'
2020

2121
/**
2222
* @public

0 commit comments

Comments
 (0)