-
{#if overdueTasks.length > 0}
{/if}
-
{#if showTodaySection}
{/if}
-
{#if showTomorrowSection}
{/if}
-
{#if showUpcomingSection}
- {#each groupedUpcomingTasks() as group}
+ {#each groupedUpcomingTasks as group}
{group.label}
@@ -273,7 +264,6 @@
{/if}
-
{#if showCompletedSection}
{/if}
-
{#if showOnboardingTip && !tipDismissed}
💡
@@ -327,7 +316,6 @@
padding-bottom: 100px;
}
- /* Empty state container */
.empty-state-container {
display: flex;
justify-content: center;
@@ -441,7 +429,6 @@
transform: translateY(0);
}
- /* Onboarding tip */
.onboarding-tip {
display: flex;
align-items: center;
@@ -488,7 +475,6 @@
color: hsl(var(--color-primary));
}
- /* Notepad container */
.notepad {
max-width: 560px;
margin: 0 auto;
diff --git a/packages/local-store/src/svelte/reactive.svelte.ts b/packages/local-store/src/svelte/reactive.svelte.ts
index 14e9fc467..02cc825c7 100644
--- a/packages/local-store/src/svelte/reactive.svelte.ts
+++ b/packages/local-store/src/svelte/reactive.svelte.ts
@@ -82,8 +82,9 @@ export function useLiveQuery(querier: () => T | Promise): LiveQueryResult<
export function useLiveQueryWithDefault(
querier: () => T | Promise,
defaultValue: T
-): { readonly value: T; readonly error: unknown } {
+): { readonly value: T; readonly loading: boolean; readonly error: unknown } {
let value = $state(defaultValue);
+ let loading = $state(true);
let error = $state(undefined);
const observable: Observable = liveQuery(querier);
@@ -91,10 +92,12 @@ export function useLiveQueryWithDefault(
const subscription = observable.subscribe({
next: (result) => {
value = result;
+ loading = false;
error = undefined;
},
error: (err) => {
error = err;
+ loading = false;
},
});
@@ -106,6 +109,9 @@ export function useLiveQueryWithDefault(
get value() {
return value;
},
+ get loading() {
+ return loading;
+ },
get error() {
return error;
},