|
6 | 6 | const convex = useConvexClient(); |
7 | 7 | const serverNumbers = useQuery(api.numbers.get, {}); |
8 | 8 |
|
9 | | - let numbers = $state({ a: 0, b: 0, c: 0 }); |
| 9 | + let numbers = $state(serverNumbers.isLoading ? {} : { a: serverNumbers.a, b: serverNumbers.b, c: serverNumbers.c }); |
10 | 10 | let pendingMutations = $state(0); |
11 | 11 | let lastMutationPromise: Promise<any> | null = $state(null); |
12 | 12 | let hasUnsentChanges = $state(false); // Track if we have changes waiting in debounce |
|
15 | 15 | $effect(() => { |
16 | 16 | if (!serverNumbers.isLoading && serverNumbers.data && |
17 | 17 | pendingMutations === 0 && !hasUnsentChanges) { |
18 | | - console.log('Received data from server'); |
| 18 | + console.log('Received data from server:', { |
| 19 | + a: serverNumbers.data.a, |
| 20 | + b: serverNumbers.data.b, |
| 21 | + c: serverNumbers.data.c, |
| 22 | + }); |
19 | 23 | numbers.a = serverNumbers.data.a; |
20 | 24 | numbers.b = serverNumbers.data.b; |
21 | 25 | numbers.c = serverNumbers.data.c; |
|
29 | 33 | pendingMutations++; |
30 | 34 | hasUnsentChanges = false; |
31 | 35 |
|
32 | | - console.log('Updating server...', pendingMutations, 'mutations pending'); |
| 36 | + console.log('Updating server with', numbers, pendingMutations, 'mutations pending'); |
33 | 37 | const currentMutation = convex.mutation(api.numbers.update, { |
34 | 38 | a: numbers.a, |
35 | 39 | b: numbers.b, |
|
59 | 63 | // Track changes immediately but debounce the actual mutation |
60 | 64 | let updateTimeout: number | undefined; |
61 | 65 | $effect(() => { |
| 66 | + if (serverNumbers.isLoading) return; |
| 67 | +
|
62 | 68 | // reference values so this is reactive on them |
63 | 69 | const currentValues = { |
64 | 70 | a: numbers.a, |
|
0 commit comments