From 9eede674b6baab6dbe6c56d660825d8b4913ab35 Mon Sep 17 00:00:00 2001 From: gitea Date: Fri, 13 Feb 2026 15:31:25 +0100 Subject: [PATCH] create deck with json --- .env.sample | 4 + package-lock.json | 24 +- package.json | 3 +- src/App.svelte | 49 +-- src/lib/Navbar.svelte | 30 +- src/lib/QuestionEditor.svelte | 180 +++++++++ src/lib/api/decks.js | 122 +++++++ src/lib/cards.js | 50 --- src/lib/deckConfig.js | 12 + src/lib/stores/auth.js | 9 +- src/lib/supabase.js | 4 +- src/routes/Community.svelte | 135 +++++++ src/routes/CreateDeck.svelte | 337 +++++++++++++++++ src/routes/EditDeck.svelte | 341 ++++++++++++++++++ src/routes/MyDecks.svelte | 211 +++++++++++ ...50213000000_create_decks_and_questions.sql | 117 ++++++ 16 files changed, 1537 insertions(+), 91 deletions(-) create mode 100644 src/lib/QuestionEditor.svelte create mode 100644 src/lib/api/decks.js delete mode 100644 src/lib/cards.js create mode 100644 src/lib/deckConfig.js create mode 100644 src/routes/Community.svelte create mode 100644 src/routes/CreateDeck.svelte create mode 100644 src/routes/EditDeck.svelte create mode 100644 src/routes/MyDecks.svelte create mode 100644 supabase/migrations/20250213000000_create_decks_and_questions.sql diff --git a/.env.sample b/.env.sample index 832fcfe..84aecc5 100644 --- a/.env.sample +++ b/.env.sample @@ -6,3 +6,7 @@ VITE_SUPABASE_ANON_KEY=your-anon-key # Optional: for OAuth / magic link redirects # VITE_SUPABASE_REDIRECT_URL=http://localhost:5173 + +# App uses schema "omotomo" for decks/questions. Ensure the API exposes it: +# Self-hosted: add "omotomo" to PostgREST db-schemas (e.g. in config). +# Cloud: Dashboard > Project Settings > API > Exposed schemas. diff --git a/package-lock.json b/package-lock.json index d17c247..8dc4b34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,8 @@ "name": "omotomo_site", "version": "0.0.0", "dependencies": { - "@supabase/supabase-js": "^2.95.3" + "@supabase/supabase-js": "^2.95.3", + "svelte-spa-router": "^4.0.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^6.2.1", @@ -1285,6 +1286,15 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/regexparam": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.2.tgz", + "integrity": "sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/rollup": { "version": "4.57.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", @@ -1367,6 +1377,18 @@ "node": ">=18" } }, + "node_modules/svelte-spa-router": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svelte-spa-router/-/svelte-spa-router-4.0.1.tgz", + "integrity": "sha512-2JkmUQ2f9jRluijL58LtdQBIpynSbem2eBGp4zXdi7aDY1znbR6yjw0KsonD0aq2QLwf4Yx4tBJQjxIjgjXHKg==", + "license": "MIT", + "dependencies": { + "regexparam": "2.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ItalyPaleAle" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", diff --git a/package.json b/package.json index d49b080..7a6cd01 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "vite": "^7.3.1" }, "dependencies": { - "@supabase/supabase-js": "^2.95.3" + "@supabase/supabase-js": "^2.95.3", + "svelte-spa-router": "^4.0.1" } } diff --git a/src/App.svelte b/src/App.svelte index 1d097ed..cb48c8d 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -1,10 +1,20 @@