···39394040hydrate(<App />, document.getElementById("app")!);
41414242-// SSR page data was only needed for hydration — clear it so client-side
4343-// navigations don't reuse stale prefetched data
4444-ssrPageData.value = null;
4545-4642// After hydration, silently refresh data in background to catch changes
4743// Use refreshSphere (not loadSphere) to avoid resetting state to pending/null
4844if (ssrData) {
+4-1
packages/client/src/hooks.ts
···1919 const hasInitial = options?.initialData !== undefined;
2020 const data = useSignal<T | null>(options?.initialData ?? null);
2121 const pending = useSignal(!hasInitial);
2222- const loading = useSignal(false);
2222+ // When there's no initial data, show the loading indicator immediately
2323+ // instead of waiting LOADING_DELAY ms. The delay only helps during
2424+ // re-fetches where existing data stays visible.
2525+ const loading = useSignal(!hasInitial);
2326 const error = useSignal("");
2427 const skipNext = useSignal(hasInitial);
2528