Reset rows and tick before updating schema when swapping table ID in grids
This commit is contained in:
parent
0178d91e08
commit
1040407068
|
@ -2,6 +2,7 @@ import { writable, derived, get } from "svelte/store"
|
|||
import { fetchData } from "../../../fetch/fetchData"
|
||||
import { notifications } from "@budibase/bbui"
|
||||
import { NewRowID, RowPageSize } from "../lib/constants"
|
||||
import { tick } from "svelte"
|
||||
|
||||
const initialSortState = {
|
||||
column: null,
|
||||
|
@ -124,13 +125,22 @@ export const deriveStores = context => {
|
|||
})
|
||||
|
||||
// Subscribe to changes of this fetch model
|
||||
unsubscribe = newFetch.subscribe($fetch => {
|
||||
unsubscribe = newFetch.subscribe(async $fetch => {
|
||||
if ($fetch.loaded && !$fetch.loading) {
|
||||
hasNextPage.set($fetch.hasNextPage)
|
||||
const $instanceLoaded = get(instanceLoaded)
|
||||
const resetRows = $fetch.resetKey !== lastResetKey
|
||||
const previousResetKey = lastResetKey
|
||||
lastResetKey = $fetch.resetKey
|
||||
|
||||
// If resetting rows due to a table change, wipe data and wait for
|
||||
// derived stores to compute. This prevents stale data being passed
|
||||
// to cells when we save the new schema.
|
||||
if (!$instanceLoaded && previousResetKey) {
|
||||
rows.set([])
|
||||
await tick()
|
||||
}
|
||||
|
||||
// Reset state properties when dataset changes
|
||||
if (!$instanceLoaded || resetRows) {
|
||||
table.set($fetch.definition)
|
||||
|
|
Loading…
Reference in New Issue