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"> <div class="kanban-container top-divider">
<ScrollBox> <ScrollBox>
<div class="kanban-content"> <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)} {@const stateObjects = getGroupByValues(groupByDocs, state)}
<div <div
@ -325,6 +325,7 @@
<KanbanRow <KanbanRow
bind:this={stateRows[si]} bind:this={stateRows[si]}
on:obj-focus on:obj-focus
{groupByDocs}
{stateObjects} {stateObjects}
{isDragging} {isDragging}
{dragCard} {dragCard}

View File

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

View File

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