From 60d5c51116518a45f49977baa6725cd87b8d82d1 Mon Sep 17 00:00:00 2001 From: Daniel Berlin Date: Sun, 2 Mar 2025 12:12:12 +0100 Subject: [PATCH] Don't directly reference local state In svelte 5, $state referenced locally is not reactive, because of how evaluation occurs. Svelte will warn about this at runtime (and does so here) To make it reactive locally, the docs recommend using a closure, which is what we do here. --- packages/svelte-table/src/createTable.svelte.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/svelte-table/src/createTable.svelte.ts b/packages/svelte-table/src/createTable.svelte.ts index 528b7d5074..c76821be8a 100644 --- a/packages/svelte-table/src/createTable.svelte.ts +++ b/packages/svelte-table/src/createTable.svelte.ts @@ -20,12 +20,13 @@ export function createTable< let state = $state>>( getInitialTableState(_features, tableOptions.initialState), ) - + const getState = () => state + const statefulOptions: TableOptions = mergeObjects( tableOptions, { _features, - state: { ...state, ...tableOptions.state }, + state: { ...getState(), ...tableOptions.state }, mergeOptions: ( defaultOptions: TableOptions, newOptions: Partial>,