diff --git a/Dockerfile b/Dockerfile index b46b538e2..6a58cb44c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22-bullseye as base +FROM node:22-bullseye AS base ARG PUBLIC_APPWRITE_ENDPOINT ENV PUBLIC_APPWRITE_ENDPOINT ${PUBLIC_APPWRITE_ENDPOINT} @@ -60,13 +60,13 @@ COPY pnpm-lock.yaml pnpm-lock.yaml RUN npm i -g corepack@latest RUN corepack enable -FROM base as build +FROM base AS build COPY . . RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile RUN NODE_OPTIONS=--max_old_space_size=16384 ROLLDOWN_OPTIONS_VALIDATION=loose pnpm run build -FROM base as final +FROM base AS final # Install fontconfig COPY ./local-fonts /usr/share/fonts diff --git a/package.json b/package.json index d4d9f9c1c..d602b0ea4 100644 --- a/package.json +++ b/package.json @@ -117,6 +117,7 @@ }, "onlyBuiltDependencies": [ "@parcel/watcher", + "@tailwindcss/oxide", "core-js", "esbuild", "rolldown", diff --git a/src/lib/components/PreFooter.svelte b/src/lib/components/PreFooter.svelte index 6b65dfafc..6f31f34db 100644 --- a/src/lib/components/PreFooter.svelte +++ b/src/lib/components/PreFooter.svelte @@ -136,29 +136,16 @@ flex-basis: 5rem !important; } - .web-strip-plans-item-wrapper { - gap: 2.65rem; - } - @media (min-width: 1024px) and (max-width: 1224px) { .web-strip-plans-info { flex-basis: 1rem !important; } - - .web-strip-plans-item-wrapper { - gap: 1.25rem !important; - inline-size: 100% !important; - } } @media (max-width: 1024px) { .web-strip-plans-info { flex-basis: 3rem !important; } - - .web-strip-plans-item-wrapper { - gap: 1.25rem !important; - } } .web-pre-footer-bg { diff --git a/src/routes/(init)/init/(components)/event-carousel.svelte b/src/routes/(init)/init/(components)/event-carousel.svelte index e57d8d737..6e8a5ec94 100644 --- a/src/routes/(init)/init/(components)/event-carousel.svelte +++ b/src/routes/(init)/init/(components)/event-carousel.svelte @@ -98,12 +98,12 @@ on:emblaInit={onEmblaInit} >
- {#each events as _} + {#each events as { poster, title }}
- -

{_.title}

+ {title} +

{title}

{/each}
diff --git a/src/routes/(init)/init/(utils)/contributions.ts b/src/routes/(init)/init/(utils)/contributions.ts index a0ab68abe..993a486f3 100644 --- a/src/routes/(init)/init/(utils)/contributions.ts +++ b/src/routes/(init)/init/(utils)/contributions.ts @@ -1,9 +1,8 @@ -import { APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID } from '$env/static/private'; -import { DOMParser, parseHTML } from 'linkedom'; - -import type { TicketData } from './tickets'; +import { APPWRITE_COL_INIT_ID, APPWRITE_DB_INIT_ID } from '$env/static/private'; +import { parseHTML } from 'linkedom'; import { z } from 'zod'; import { createInitServerClient } from './appwrite'; +import type { TicketData } from './tickets'; const contributionsSchema = z.array(z.array(z.number())); export type ContributionsMatrix = z.infer; diff --git a/src/routes/(init)/init/+page.server.ts b/src/routes/(init)/init/+page.server.ts index 5fab2bdce..8f91c3fd3 100644 --- a/src/routes/(init)/init/+page.server.ts +++ b/src/routes/(init)/init/+page.server.ts @@ -1,8 +1,5 @@ -import { redirect, type Action, type Actions } from '@sveltejs/kit'; +import { redirect, type Actions } from '@sveltejs/kit'; import { getTicketByUser } from './(utils)/tickets'; -import { OAuthProvider } from 'appwrite'; -import { Account, Client } from 'node-appwrite'; -import { PUBLIC_APPWRITE_ENDPOINT, PUBLIC_APPWRITE_PROJECT_INIT_ID } from '$env/static/public'; import { loginGithub } from './(utils)/auth'; export const prerender = false; diff --git a/src/routes/(init)/init/tickets/[username]/+page.server.ts b/src/routes/(init)/init/tickets/[username]/+page.server.ts index 364e696d6..6e4b30581 100644 --- a/src/routes/(init)/init/tickets/[username]/+page.server.ts +++ b/src/routes/(init)/init/tickets/[username]/+page.server.ts @@ -1,9 +1,6 @@ import { getTicketDocByUsername } from '../../(utils)/tickets'; import { error, redirect, type Actions } from '@sveltejs/kit'; import { getTicketContributions } from '../../(utils)/contributions'; -import { OAuthProvider } from 'appwrite'; -import { Account, Client } from 'node-appwrite'; -import { PUBLIC_APPWRITE_ENDPOINT, PUBLIC_APPWRITE_PROJECT_INIT_ID } from '$env/static/public'; import { loginGithub } from '../../(utils)/auth'; export const ssr = true; diff --git a/src/routes/products/auth/(components)/(snippets)/astro.txt b/src/routes/products/auth/(components)/(snippets)/astro.txt new file mode 100644 index 000000000..35fc0cadf --- /dev/null +++ b/src/routes/products/auth/(components)/(snippets)/astro.txt @@ -0,0 +1,15 @@ +import { Client, Account } from 'node-appwrite'; + +async function getLoggedInUser(context) { + const session = cookies().get('custom-session-cookie'); + if (!session) return; + + const client = new Client() + .setEndpoint(import.meta.env.PUBLIC_APPWRITE_ENDPOINT) + .setProject(import.meta.env.PUBLIC_APPWRITE_PROJECT_ID); + + client.setSession(session.value); + const account = new Account(client); + + return account.get(); +} \ No newline at end of file diff --git a/src/routes/products/auth/(components)/(snippets)/nextjs.txt b/src/routes/products/auth/(components)/(snippets)/nextjs.txt new file mode 100644 index 000000000..62fe82923 --- /dev/null +++ b/src/routes/products/auth/(components)/(snippets)/nextjs.txt @@ -0,0 +1,16 @@ +import { Client, Account } from 'node-appwrite'; +import { cookies } from 'next/headers'; + +async function getLoggedInUser() { + const session = cookies().get('custom-session-cookie'); + if (!session) return; + + const client = new Client() + .setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT) + .setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID); + + client.setSession(session.value); + const account = new Account(client); + + return account.get(); +} \ No newline at end of file diff --git a/src/routes/products/auth/(components)/(snippets)/nuxt.txt b/src/routes/products/auth/(components)/(snippets)/nuxt.txt new file mode 100644 index 000000000..088b1309d --- /dev/null +++ b/src/routes/products/auth/(components)/(snippets)/nuxt.txt @@ -0,0 +1,16 @@ +import { Client, Account } from 'node-appwrite'; +import { H3Event, getCookie } from 'h3'; + +async function getLoggedInUser(event) { + const session = getCookie(event, 'custom-session-cookie'); + if (!session) return; + + const client = new Client() + .setEndpoint(process.env.PUBLIC_APPWRITE_ENDPOINT) + .setProject(process.env.PUBLIC_APPWRITE_PROJECT_ID); + + client.setSession(session.value); + const account = new Account(client); + + return account.get(); +} \ No newline at end of file diff --git a/src/routes/products/auth/(components)/(snippets)/remix.txt b/src/routes/products/auth/(components)/(snippets)/remix.txt new file mode 100644 index 000000000..323d5f241 --- /dev/null +++ b/src/routes/products/auth/(components)/(snippets)/remix.txt @@ -0,0 +1,21 @@ +import { Client, Account } from 'node-appwrite'; +import { createCookie } from '@remix-run/node'; + +export const customSessionCookie = createCookie('custom-session-cookie', { + maxAge: 604800, +}); + +async function getLoggedInUser(request) { + const cookies = request.headers.get('Cookie'); + const session = await customSessionCookie.parse(cookies): + if (!session) return; + + const client = new Client() + .setEndpoint(process.env.PUBLIC_APPWRITE_ENDPOINT) + .setProject(process.env.PUBLIC_APPWRITE_PROJECT_ID); + + client.setSession(session.value); + const account = new Account(client); + + return await account.get(); +} \ No newline at end of file diff --git a/src/routes/products/auth/(components)/(snippets)/sveltekit.txt b/src/routes/products/auth/(components)/(snippets)/sveltekit.txt new file mode 100644 index 000000000..2fdbfaca2 --- /dev/null +++ b/src/routes/products/auth/(components)/(snippets)/sveltekit.txt @@ -0,0 +1,15 @@ +import { Client, Account } from 'node-appwrite'; + +async function getLoggedInUser() { + const session = cookies().get('custom-session-cookie'); + if (!session) return; + + const client = new Client() + .setEndpoint(process.env.PUBLIC_APPWRITE_ENDPOINT) + .setProject(process.env.PUBLIC_APPWRITE_PROJECT_ID); + + client.setSession(session.value); + const account = new Account(client); + + return account.get(); +} \ No newline at end of file diff --git a/src/routes/products/auth/(components)/SSR.svelte b/src/routes/products/auth/(components)/SSR.svelte index a48d8f486..71453bf98 100644 --- a/src/routes/products/auth/(components)/SSR.svelte +++ b/src/routes/products/auth/(components)/SSR.svelte @@ -1,117 +1,40 @@ diff --git a/src/routes/products/functions/+page.svelte b/src/routes/products/functions/+page.svelte index eff8f8128..dcca92927 100644 --- a/src/routes/products/functions/+page.svelte +++ b/src/routes/products/functions/+page.svelte @@ -1,6 +1,6 @@