diff --git a/src/app/jams/user/[user]/page.tsx b/src/app/jams/user/[user]/page.tsx index 465fabf..6277655 100644 --- a/src/app/jams/user/[user]/page.tsx +++ b/src/app/jams/user/[user]/page.tsx @@ -16,11 +16,15 @@ export default async function Home({ user: string }, searchParams: { - until: string + jamuntil: string, + conuntil: string, + juduntil: string } }) { const curDate = Date.now(); - const curPage = parseInt(searchParams?.until) || curDate; + const jamPage = parseInt(searchParams?.jamuntil) || curDate; + const contentPage = parseInt(searchParams?.conuntil) || curDate; + const judgementPage = parseInt(searchParams?.juduntil) || curDate; const cookieStore = cookies(); const token = cookieStore.get('token')?.value; @@ -57,7 +61,7 @@ export default async function Home({ let content = await db .selectFrom('content') .where('content.author_id', '=', user.id) - .where('content.submitted', '<=', curPage) + .where('content.submitted', '<=', contentPage) .limit(20) .orderBy('content.submitted', 'desc') .selectAll() @@ -66,7 +70,7 @@ export default async function Home({ let jams = await db .selectFrom('jams') .where('jams.author_id', '=', user.id) - .where('jams.created', '<=', curPage) + .where('jams.created', '<=', jamPage) .limit(20) .orderBy('jams.created', 'desc') .selectAll() @@ -75,7 +79,7 @@ export default async function Home({ let judgements = await db .selectFrom('judgements') .where('judgements.author_id', '=', user.id) - .where('judgements.published', '<=', curPage) + .where('judgements.published', '<=', judgementPage) .limit(20) .orderBy('judgements.published', 'desc') .selectAll() @@ -93,85 +97,109 @@ export default async function Home({

Delete user

-

Jams

- {jams.map(async (jam:JSONJamTable) => { - const started = Date.now() >= parseInt(jam.date_start); - const ended = Date.now() >= parseInt(jam.date_end); - - let jamOwner = await db - .selectFrom('users') - .where('users.id', '=', jam.author_id) - .selectAll() - .executeTakeFirst(); - - if (jamOwner == null) return

An error occured.

; + 0}> +

Jams

+ {jams.map(async (jam:JSONJamTable) => { + const started = Date.now() >= parseInt(jam.date_start); + const ended = Date.now() >= parseInt(jam.date_end); + + let jamOwner = await db + .selectFrom('users') + .where('users.id', '=', jam.author_id) + .selectAll() + .executeTakeFirst(); + + if (jamOwner == null) return

An error occured.

; - return (
-

{jam.name}

-

{started ? "Started" : "Starts"} {new Date(parseInt(jam.date_start)).toDateString()} - {ended ? "Ended" : "Ends"} {new Date(parseInt(jam.date_end)).toDateString()}

-

{jam.description}

-
); - })} -

Submissions

- {content.map(async (content:JSONContentTable) => { - let contentOwner = await db - .selectFrom('users') - .where('users.id', '=', content.author_id) - .selectAll() - .executeTakeFirst(); - - if (contentOwner == null) return

An error occured.

; - - // It's a JSONJamTable. I don't know why TS hates `number` => `string` conversion. - let submittedJam = await db - .selectFrom('jams') - .where('jams.id', '=', content.jam_id) - .selectAll() - .executeTakeFirst() as unknown as JSONJamTable; - - if (submittedJam == null) return

An error occured.

; + return (
+

{jam.name}

+

{started ? "Started" : "Starts"} {new Date(parseInt(jam.date_start)).toDateString()} - {ended ? "Ended" : "Ends"} {new Date(parseInt(jam.date_end)).toDateString()}

+

{jam.description}

+
); + })} +
+ + Later + + 20}> + Earlier + +
+
+ 0}> +

Submissions

+ {content.map(async (content:JSONContentTable) => { + let contentOwner = await db + .selectFrom('users') + .where('users.id', '=', content.author_id) + .selectAll() + .executeTakeFirst(); + + if (contentOwner == null) return

An error occured.

; + + // It's a JSONJamTable. I don't know why TS hates `number` => `string` conversion. + let submittedJam = await db + .selectFrom('jams') + .where('jams.id', '=', content.jam_id) + .selectAll() + .executeTakeFirst() as unknown as JSONJamTable; + + if (submittedJam == null) return

An error occured.

; - return (
-

{content.name}

-

Submitted {new Date(parseInt(content.submitted)).toDateString()} to {submittedJam.name}

-

{content.description}

-
); - })} -

Judgements

- {judgements.map(async (judgement:JSONJudgementTable) => { - let judgementOwner = await db - .selectFrom('users') - .where('users.id', '=', judgement.author_id) - .selectAll() - .executeTakeFirst(); - - // It's a JSONJamTable. I don't know why TS hates `number` => `string` conversion. - let submittedContent = await db - .selectFrom('content') - .where('content.id', '=', judgement.content_id) - .selectAll() - .executeTakeFirst() as unknown as JSONContentTable; - - if (judgementOwner == null) return

An error occured.

; + return (
+

{content.name}

+

Submitted {new Date(parseInt(content.submitted)).toDateString()} to {submittedJam.name}

+

{content.description}

+
); + })} +
+ + Later + + 20}> + Earlier + +
+
+ 0}> +

Judgements

+ {judgements.map(async (judgement:JSONJudgementTable) => { + let judgementOwner = await db + .selectFrom('users') + .where('users.id', '=', judgement.author_id) + .selectAll() + .executeTakeFirst(); + + // It's a JSONJamTable. I don't know why TS hates `number` => `string` conversion. + let submittedContent = await db + .selectFrom('content') + .where('content.id', '=', judgement.content_id) + .selectAll() + .executeTakeFirst() as unknown as JSONContentTable; + + if (judgementOwner == null) return

An error occured.

; - return (
-

{`${judgementOwner.username}@${judgementOwner.instance}`}

-

Published {new Date(parseInt(judgement.published)).toDateString()} on {submittedContent.name}

-

{judgement.content}

-
); - })} - {/*
- - Later - - Earlier -
*/} + return (
+

{`${judgementOwner.username}@${judgementOwner.instance}`}

+

Published {new Date(parseInt(judgement.published)).toDateString()} on {submittedContent.name}

+

{judgement.content}

+
); + })} +
+ + Later + + 20}> + Earlier + +
+
) } \ No newline at end of file