diff --git a/web/src/components/sync-button.tsx b/web/src/components/sync-button.tsx
index 68840d8..7c4ad11 100644
--- a/web/src/components/sync-button.tsx
+++ b/web/src/components/sync-button.tsx
@@ -1,33 +1,41 @@
-import { client } from "#/lib/eden";
-import { toast } from "sonner";
-import { Button } from "./ui/button";
import { useQueryClient } from "@tanstack/react-query";
+import { useState } from "react";
+import { toast } from "sonner";
+import { client } from "#/lib/eden";
+import { Button } from "./ui/button";
import { Item, ItemActions, ItemDescription, ItemTitle } from "./ui/item";
export function SyncButton() {
- const query = useQueryClient();
- return (
- -
- Sync your data
-
-
-
-
- );
+ const query = useQueryClient();
+ const [syncing, setSyncing] = useState(false);
+ return (
+ -
+ Sync your data
+
+
+
+
+ );
}
diff --git a/web/src/hooks/user.ts b/web/src/hooks/user.ts
index 88333ab..88309b2 100644
--- a/web/src/hooks/user.ts
+++ b/web/src/hooks/user.ts
@@ -1,21 +1,21 @@
-import { authClient } from "#/lib/auth-client";
import type { AuthSession } from "#/lib/auth.serverfn";
+import { authClient } from "#/lib/auth-client";
import { Route } from "#/routes/__root";
interface UserData {
- user: AuthSession["user"] | null;
- session: AuthSession["session"] | null;
- isLoading: boolean;
+ user: AuthSession["user"] | null;
+ session: AuthSession["session"] | null;
+ isLoading: boolean;
}
export function useUser() {
- const routeContext = Route.useRouteContext();
- const { data: clientSession, isPending: isClientSessionPending } =
- authClient.useSession();
- const session = (clientSession?.session ??
- routeContext.session?.session ??
- null) as AuthSession["session"] | null;
- const user = clientSession?.user ?? routeContext.session?.user ?? null;
- const isLoading = !routeContext.session && isClientSessionPending;
- return { user, session, isLoading } satisfies UserData;
+ const routeContext = Route.useRouteContext();
+ const { data: clientSession, isPending: isClientSessionPending } =
+ authClient.useSession();
+ const session = (clientSession?.session ??
+ routeContext.session?.session ??
+ null) as AuthSession["session"] | null;
+ const user = clientSession?.user ?? routeContext.session?.user ?? null;
+ const isLoading = !routeContext.session && isClientSessionPending;
+ return { user, session, isLoading } as UserData;
}
diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx
index 69c4a6f..fd496ac 100644
--- a/web/src/routes/index.tsx
+++ b/web/src/routes/index.tsx
@@ -1,17 +1,19 @@
+import { createFileRoute } from "@tanstack/react-router";
+import { PartyQr } from "#/components/party-qr";
import { SyncButton } from "#/components/sync-button";
import { MainContent } from "#/components/ui/main-content";
import { UserInfo } from "#/components/user-info";
-import { PartyQr } from "#/components/party-qr";
-import { createFileRoute } from "@tanstack/react-router";
+import { useUser } from "#/hooks/user";
export const Route = createFileRoute("/")({ component: App });
function App() {
- return (
-
-
-
-
-
- );
+ const { user } = useUser();
+ return (
+
+
+ {!user?.lastSyncAt && }
+ {user && }
+
+ );
}