diff --git a/src/lib/components/GoogleAuthButton.svelte b/src/lib/components/GoogleAuthButton.svelte
index 928fcbd..b84361e 100644
--- a/src/lib/components/GoogleAuthButton.svelte
+++ b/src/lib/components/GoogleAuthButton.svelte
@@ -6,12 +6,14 @@
let {
onSuccess,
onError,
+ onDisconnect,
disabled = false,
size = 'default',
variant = 'primary'
} = $props<{
onSuccess?: (token: string) => void;
onError?: (error: string) => void;
+ onDisconnect?: () => void;
disabled?: boolean;
size?: 'small' | 'default' | 'large';
variant?: 'primary' | 'secondary';
@@ -21,8 +23,8 @@
let authState = $state(createGoogleAuthState());
let authManager = new GoogleAuthManager(authState);
- onMount(() => {
- authManager.checkConnection();
+ onMount(async () => {
+ await authManager.checkConnection();
});
async function handleConnect() {
@@ -41,6 +43,7 @@
async function handleDisconnect() {
await authManager.disconnectGoogle();
+ onDisconnect?.();
}
// Size classes
@@ -57,7 +60,14 @@
};
-{#if authState.isConnected}
+{#if authState.checking}
+
+
+
+
Checking connection...
+
+
+{:else if authState.isConnected}
diff --git a/src/routes/private/events/event/view/+page.svelte b/src/routes/private/events/event/view/+page.svelte
index 482450c..e1578ac 100644
--- a/src/routes/private/events/event/view/+page.svelte
+++ b/src/routes/private/events/event/view/+page.svelte
@@ -115,6 +115,8 @@
}
syncingParticipants = true;
+ const previousCount = participants.length; // Capture count before sync
+
try {
// Fetch sheet data
const response = await fetch(`/private/api/google/sheets/${event.sheet_id}/data`, {
@@ -177,16 +179,23 @@
// Reload participants
await loadParticipants();
-
- // Show success message with count of synced participants
- const previousCount = participants.length;
- const newCount = names.length;
- const addedCount = Math.max(0, participants.length - previousCount);
-
- toast.success(
- `Successfully synced participants. ${newCount} entries processed, ${addedCount} new participants added.`,
- 5000
- );
+
+ // Show success message with accurate count of changes
+ const newCount = participants.length;
+ const diff = newCount - previousCount;
+ const processedCount = names.length;
+
+ let message = `Sync complete. ${processedCount} confirmed entries processed from the sheet.`;
+
+ if (diff > 0) {
+ message += ` ${diff} new participants added.`;
+ } else if (diff < 0) {
+ message += ` ${-diff} participants removed.`;
+ } else {
+ message += ` No changes to the participant list.`;
+ }
+
+ toast.success(message, 6000);
} catch (err) {
console.error('Error syncing participants:', err);
toast.error(`Failed to sync participants: ${err instanceof Error ? err.message : 'Unknown error'}`);