Fix kanban is slow on updates (#2991)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev 2023-04-15 10:13:42 +07:00 committed by GitHub
parent fecff25fd6
commit 549353468a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 4 deletions

View File

@ -305,7 +305,7 @@
<div class="kanban-container top-divider">
<ScrollBox>
<div class="kanban-content">
{#each categories as state, si (state)}
{#each categories as state, si (typeof state === 'object' ? state.name : state)}
{@const stateObjects = getGroupByValues(groupByDocs, state)}
<div
@ -325,6 +325,7 @@
<KanbanRow
bind:this={stateRows[si]}
on:obj-focus
{groupByDocs}
{stateObjects}
{isDragging}
{dragCard}

View File

@ -23,6 +23,7 @@
export let isDragging: boolean
export let dragCard: Item | undefined
export let objects: Item[]
export let groupByDocs: Record<string | number, Item[]>
export let selection: number | undefined = undefined
export let checkedSet: Set<Ref<Doc>>
export let state: CategoryType

View File

@ -70,7 +70,9 @@
let viewlets: WithLookup<Viewlet>[] = []
const viewletQuery = createQuery()
let vl = false
$: {
vl = true
viewletQuery.query(
view.class.Viewlet,
{
@ -79,6 +81,7 @@
descriptor: { $in: descriptors ?? [view.viewlet.Table] }
},
(res) => {
vl = false
viewlets = res
},
{
@ -104,9 +107,11 @@
active: Ref<Viewlet> | null,
viewlets: WithLookup<Viewlet>[]
): Promise<void> {
preference = undefined
viewlet = viewlets.find((viewlet) => viewlet._id === active) ?? viewlets[0]
setActiveViewletId(viewlet._id)
if (vl === false) {
preference = undefined
viewlet = viewlets.find((viewlet) => viewlet?._id === active) ?? viewlets[0]
setActiveViewletId(viewlet?._id)
}
}
$: if (viewlet !== undefined) {