From 3aeb88d772ad3b264b2928b729816ff671b889da Mon Sep 17 00:00:00 2001
From: Till-JS <101404291+Till-JS@users.noreply.github.com>
Date: Fri, 23 Jan 2026 21:15:08 +0100
Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(web):=20add=20session-first=20?=
=?UTF-8?q?guest=20mode=20to=20all=20live=20apps?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Users can now use Calendar, Chat, Clock, and Todo without signing in.
Data is stored in sessionStorage (lost when tab closes).
Changes per app:
- Add session storage stores for temporary data
- Add AuthGateModal for login prompts
- Remove auth redirect from app layouts
- Add guest mode banner with item count
- Add sessionStorage return URL handling
When users sign in, session data is migrated to their cloud account.
---
.../src/lib/components/AuthGateModal.svelte | 167 +++++++++++++
.../web/src/lib/stores/calendars.svelte.ts | 39 +++
.../apps/web/src/lib/stores/events.svelte.ts | 125 ++++++++++
.../src/lib/stores/session-events.svelte.ts | 153 ++++++++++++
.../apps/web/src/routes/(app)/+layout.svelte | 105 +++++++-
.../apps/web/src/routes/(app)/+page.svelte | 11 +-
.../web/src/routes/(auth)/login/+page.svelte | 20 +-
.../src/routes/(auth)/register/+page.svelte | 16 +-
.../src/lib/components/AuthGateModal.svelte | 230 ++++++++++++++++++
.../src/lib/stores/conversations.svelte.ts | 61 +++++
.../stores/session-conversations.svelte.ts | 183 ++++++++++++++
.../web/src/routes/(auth)/login/+page.svelte | 20 +-
.../src/routes/(auth)/register/+page.svelte | 16 +-
.../web/src/routes/(protected)/+layout.svelte | 96 +++++++-
.../src/lib/components/AuthGateModal.svelte | 225 +++++++++++++++++
.../apps/web/src/lib/stores/alarms.svelte.ts | 96 ++++++++
.../src/lib/stores/session-alarms.svelte.ts | 150 ++++++++++++
.../src/lib/stores/session-timers.svelte.ts | 214 ++++++++++++++++
.../apps/web/src/lib/stores/timers.svelte.ts | 128 ++++++++++
.../apps/web/src/routes/(app)/+layout.svelte | 107 ++++++--
.../web/src/routes/(auth)/login/+page.svelte | 54 ++++
.../src/routes/(auth)/register/+page.svelte | 16 +-
.../src/lib/components/AuthGateModal.svelte | 167 +++++++++++++
.../web/src/lib/stores/projects.svelte.ts | 39 +++
.../src/lib/stores/session-tasks.svelte.ts | 190 +++++++++++++++
.../apps/web/src/lib/stores/tasks.svelte.ts | 141 +++++++++++
.../apps/web/src/routes/(app)/+layout.svelte | 100 ++++++--
.../apps/web/src/routes/(app)/+page.svelte | 8 +-
.../web/src/routes/(auth)/login/+page.svelte | 20 +-
.../src/routes/(auth)/register/+page.svelte | 16 +-
30 files changed, 2829 insertions(+), 84 deletions(-)
create mode 100644 apps/calendar/apps/web/src/lib/components/AuthGateModal.svelte
create mode 100644 apps/calendar/apps/web/src/lib/stores/session-events.svelte.ts
create mode 100644 apps/chat/apps/web/src/lib/components/AuthGateModal.svelte
create mode 100644 apps/chat/apps/web/src/lib/stores/session-conversations.svelte.ts
create mode 100644 apps/clock/apps/web/src/lib/components/AuthGateModal.svelte
create mode 100644 apps/clock/apps/web/src/lib/stores/session-alarms.svelte.ts
create mode 100644 apps/clock/apps/web/src/lib/stores/session-timers.svelte.ts
create mode 100644 apps/clock/apps/web/src/routes/(auth)/login/+page.svelte
create mode 100644 apps/todo/apps/web/src/lib/components/AuthGateModal.svelte
create mode 100644 apps/todo/apps/web/src/lib/stores/session-tasks.svelte.ts
diff --git a/apps/calendar/apps/web/src/lib/components/AuthGateModal.svelte b/apps/calendar/apps/web/src/lib/components/AuthGateModal.svelte
new file mode 100644
index 000000000..6b08118db
--- /dev/null
+++ b/apps/calendar/apps/web/src/lib/components/AuthGateModal.svelte
@@ -0,0 +1,167 @@
+
+
+
+ {currentMessage.description} +
+ + + {#if sessionEventCount > 0} ++ Du kannst weiterhin Termine erstellen. Diese werden lokal gespeichert und gehen beim + Schließen des Tabs verloren. +
+