diff --git a/apps/svelte.dev/package.json b/apps/svelte.dev/package.json index f61bd8a825..1ccfa8d1b6 100644 --- a/apps/svelte.dev/package.json +++ b/apps/svelte.dev/package.json @@ -54,7 +54,7 @@ "@supabase/supabase-js": "^2.43.4", "@sveltejs/adapter-vercel": "^5.10.2", "@sveltejs/enhanced-img": "^0.8.1", - "@sveltejs/kit": "^2.44.0", + "@sveltejs/kit": "^2.48.4", "@sveltejs/site-kit": "workspace:*", "@sveltejs/vite-plugin-svelte": "^6.1.3", "@types/cookie": "^0.6.0", @@ -74,7 +74,7 @@ "satori": "^0.10.13", "satori-html": "^0.3.2", "sv": "^0.9.2", - "svelte": "^5.40.0", + "svelte": "^5.43.2", "svelte-check": "^4.3.1", "svelte-preprocess": "^6.0.3", "tiny-glob": "^0.2.9", diff --git a/apps/svelte.dev/scripts/create-tutorial-zip/common/src/app.html b/apps/svelte.dev/scripts/create-tutorial-zip/common/src/app.html index c4e765707b..fb8749659b 100644 --- a/apps/svelte.dev/scripts/create-tutorial-zip/common/src/app.html +++ b/apps/svelte.dev/scripts/create-tutorial-zip/common/src/app.html @@ -34,10 +34,12 @@ body { --border-radius: 4px; - --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, + --font: + -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - --font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, - 'DejaVu Sans Mono', monospace; + --font-mono: + ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', + monospace; background: var(--bg-1); color: var(--fg-1); font-family: var(--font); diff --git a/apps/svelte.dev/src/lib/remote/auth.remote.ts b/apps/svelte.dev/src/lib/remote/auth.remote.ts new file mode 100644 index 0000000000..55d75fb9d0 --- /dev/null +++ b/apps/svelte.dev/src/lib/remote/auth.remote.ts @@ -0,0 +1,7 @@ +import { getRequestEvent, query } from '$app/server'; +import * as session from '$lib/db/session'; + +export const get_user = query(() => { + const { request } = getRequestEvent(); + return session.from_cookie(request.headers.get('cookie')); +}); diff --git a/apps/svelte.dev/src/routes/(authed)/+layout.server.js b/apps/svelte.dev/src/routes/(authed)/+layout.server.js index 30d4222299..d43d0cd2a5 100644 --- a/apps/svelte.dev/src/routes/(authed)/+layout.server.js +++ b/apps/svelte.dev/src/routes/(authed)/+layout.server.js @@ -1,14 +1 @@ -import * as session from '$lib/db/session'; - export const prerender = false; - -/** @type {import('@sveltejs/adapter-vercel').Config} */ -export const config = { - runtime: 'nodejs20.x' // see https://github.com/sveltejs/svelte/pull/9136 -}; - -export async function load({ request }) { - return { - user: await session.from_cookie(request.headers.get('cookie')) - }; -} diff --git a/apps/svelte.dev/src/routes/(authed)/apps/+page.server.js b/apps/svelte.dev/src/routes/(authed)/apps/+page.server.js deleted file mode 100644 index a85cb5796b..0000000000 --- a/apps/svelte.dev/src/routes/(authed)/apps/+page.server.js +++ /dev/null @@ -1,20 +0,0 @@ -import * as gist from '$lib/db/gist'; - -export async function load({ url, parent }) { - let gists = []; - let next = null; - - const search = url.searchParams.get('search'); - - const { user } = await parent(); - - if (user) { - const offset_param = url.searchParams.get('offset'); - const offset = offset_param ? parseInt(offset_param) : 0; - const search = url.searchParams.get('search'); - - ({ gists, next } = await gist.list(user, { offset, search })); - } - - return { user, gists, next, search }; -} diff --git a/apps/svelte.dev/src/routes/(authed)/apps/+page.svelte b/apps/svelte.dev/src/routes/(authed)/apps/+page.svelte index 27a96673a5..35db26dfa0 100644 --- a/apps/svelte.dev/src/routes/(authed)/apps/+page.svelte +++ b/apps/svelte.dev/src/routes/(authed)/apps/+page.svelte @@ -3,8 +3,9 @@ import { ago } from '$lib/time'; import { goto, invalidateAll } from '$app/navigation'; import { get_app_context } from '../app-context.js'; - - let { data } = $props(); + import { get_user } from '$lib/remote/auth.remote.js'; + import { get_gists } from './data.remote.js'; + import { page } from '$app/state'; const { login, logout } = get_app_context(); @@ -14,6 +15,17 @@ let selected: string[] = $state([]); const selecting = $derived(selected.length > 0); + const user = $derived(await get_user()); + + const search = page.url.searchParams.get('search') ?? ''; + + const { gists, next } = $derived( + await get_gists({ + search, + offset: parseInt(page.url.searchParams.get('offset') ?? '0') + }) + ); + async function destroy_selected() { const confirmed = confirm( `Are you sure you want to delete ${selected.length} ${ @@ -54,17 +66,17 @@