import { fail, redirect } from '@sveltejs/kit'; import type { Actions, PageServerLoad } from './$types'; import { profileSchema } from '$lib/schemas/profile'; export const actions: Actions = { default: async ({ request, fetch }) => { console.log("hello"); const formData = await request.formData(); const data = Object.fromEntries(formData); // 1. Zod Validation const result = profileSchema.safeParse(data); if (!result.success) { return fail(400, { errors: result.error.flatten().fieldErrors, data: data as Record }); } // 2. Example: Check availability against your backend // Replace this with your actual backend URL const response = await fetch(`/api/check-username?u=${result.data.username}`); const { available } = await response.json(); if (!available) { return fail(400, { errors: { username: ["This username is already taken"] }, data: data as Record }); } // 3. Success: Send to backend to create profile // await fetch('...', { method: 'POST', body: JSON.stringify(result.data) }); throw redirect(303, '/dashboard'); } };