|
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