add round creation
This commit is contained in:
parent
9cc0ac3089
commit
764d0c0526
25 changed files with 356 additions and 27 deletions
|
@ -3,7 +3,7 @@
|
|||
import '../app.css';
|
||||
import { setContext } from 'svelte';
|
||||
import type { PageProps } from './$types';
|
||||
import { Toaster } from '@/components/ui/sonner';
|
||||
import { Toaster } from '$lib/components/ui/sonner';
|
||||
|
||||
let {
|
||||
children,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { getCompetitionsWithAll } from '@/server/db/schema/competitions';
|
||||
import { getCompetitionsWithAll } from '$lib/server/db/schema/competitions';
|
||||
import type { PageServerLoad } from './$types';
|
||||
|
||||
export const load: PageServerLoad = async ({ locals }) => {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
import { Skeleton } from '$lib/components/ui/skeleton';
|
||||
import type { PageProps } from './$types.js';
|
||||
import { toast } from 'svelte-sonner';
|
||||
import { formatDate } from '@/utils';
|
||||
import { formatDate } from '$lib/utils';
|
||||
|
||||
const breadcrumbs: BreadcrumbItem[] = [
|
||||
{
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
import { db } from '@/server/db';
|
||||
import { db } from '$lib/server/db';
|
||||
import type { Actions, PageServerLoad } from './$types';
|
||||
import { competitions, getCompetitionWithAll } from '@/server/db/schema/competitions';
|
||||
import { competitions, getCompetitionWithAll } from '$lib/server/db/schema/competitions';
|
||||
import { error, redirect } from '@sveltejs/kit';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { and } from 'drizzle-orm';
|
||||
import { teams } from '@/server/db/schema/teams';
|
||||
import { teams } from '$lib/server/db/schema/teams';
|
||||
import { superValidate } from 'sveltekit-superforms';
|
||||
import { zod } from 'sveltekit-superforms/adapters';
|
||||
import { formSchema } from '$lib/components/rounds/create-schema';
|
||||
|
||||
export const load: PageServerLoad = async ({ params, locals }) => {
|
||||
try {
|
||||
|
@ -21,7 +24,8 @@ export const load: PageServerLoad = async ({ params, locals }) => {
|
|||
}
|
||||
|
||||
return {
|
||||
competition: competition
|
||||
competition: competition,
|
||||
createForm: await superValidate(zod(formSchema))
|
||||
};
|
||||
} catch (e) {
|
||||
return redirect(302, '/');
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
<script lang="ts">
|
||||
import Badge from '@/components/ui/badge/badge.svelte';
|
||||
import Badge from '$lib/components/ui/badge/badge.svelte';
|
||||
import type { PageProps } from './$types';
|
||||
import { CalendarDays, MapPin, Users, Trophy, Clock, Trash2Icon } from 'lucide-svelte';
|
||||
import { formatDate } from '@/utils';
|
||||
import Button from '@/components/ui/button/button.svelte';
|
||||
import Card from '@/components/ui/card/card.svelte';
|
||||
import CardHeader from '@/components/ui/card/card-header.svelte';
|
||||
import CardContent from '@/components/ui/card/card-content.svelte';
|
||||
import CardFooter from '@/components/ui/card/card-footer.svelte';
|
||||
import Input from '@/components/ui/input/input.svelte';
|
||||
import { formatDate } from '$lib/utils';
|
||||
import Button from '$lib/components/ui/button/button.svelte';
|
||||
import Card from '$lib/components/ui/card/card.svelte';
|
||||
import CardHeader from '$lib/components/ui/card/card-header.svelte';
|
||||
import CardContent from '$lib/components/ui/card/card-content.svelte';
|
||||
import CardFooter from '$lib/components/ui/card/card-footer.svelte';
|
||||
import Input from '$lib/components/ui/input/input.svelte';
|
||||
import { enhance } from '$app/forms';
|
||||
import Textarea from '@/components/ui/textarea/textarea.svelte';
|
||||
import Tabs from '@/components/ui/tabs/tabs.svelte';
|
||||
import TabsList from '@/components/ui/tabs/tabs-list.svelte';
|
||||
import TabsTrigger from '@/components/ui/tabs/tabs-trigger.svelte';
|
||||
import TabsContent from '@/components/ui/tabs/tabs-content.svelte';
|
||||
import Textarea from '$lib/components/ui/textarea/textarea.svelte';
|
||||
import Tabs from '$lib/components/ui/tabs/tabs.svelte';
|
||||
import TabsList from '$lib/components/ui/tabs/tabs-list.svelte';
|
||||
import TabsTrigger from '$lib/components/ui/tabs/tabs-trigger.svelte';
|
||||
import TabsContent from '$lib/components/ui/tabs/tabs-content.svelte';
|
||||
import { Svelvet } from 'svelvet';
|
||||
import Rounds from '$lib/components/rounds/rounds.svelte';
|
||||
|
||||
let { data }: PageProps = $props();
|
||||
|
||||
|
@ -58,7 +59,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<Tabs value="general">
|
||||
<Tabs value="rounds">
|
||||
<TabsList>
|
||||
<TabsTrigger value="general">General</TabsTrigger>
|
||||
<TabsTrigger value="rounds">Rounds</TabsTrigger>
|
||||
|
@ -165,7 +166,9 @@
|
|||
</TabsContent>
|
||||
|
||||
<TabsContent value="rounds">
|
||||
<Svelvet id="rounds-canvas" TD minimap controls locked></Svelvet>
|
||||
{#if !data.competition.rounds || data.competition.rounds.length === 0}
|
||||
<Rounds createForm={data.createForm} rounds={data.competition.rounds} />
|
||||
{/if}
|
||||
</TabsContent>
|
||||
</Tabs>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue