feat: Implement company offer submission page and success notification

- Added CompanyOffer component for submitting company offers with validation.
- Integrated email sending functionality upon form submission.
- Created a success page for company registration confirmation.
- Introduced a reusable SuccessNotification component for displaying success messages.
- Updated account update functionality with new fields and validation.
- Enhanced user experience with back button and logo components.
- Added necessary database migrations for account updates.
This commit is contained in:
Danel Kungla
2025-06-26 16:05:37 +03:00
parent 15798fdfdf
commit 6aa3a27d44
55 changed files with 2340 additions and 4225 deletions

View File

@@ -1,10 +1,11 @@
"use server";
'use server';
import { createClient } from "@/utils/supabase/server";
import { redirect } from "next/navigation";
import { redirect } from 'next/navigation';
import { createClient } from '@/utils/supabase/server';
export const signOutAction = async () => {
const supabase = await createClient();
await supabase.auth.signOut();
return redirect("/sign-in");
return redirect('/');
};

File diff suppressed because it is too large Load Diff

View File

@@ -1,26 +0,0 @@
'use server';
import { companySchema } from '@/lib/validations/companySchema';
export async function submitCompanyRegistration(formData: FormData) {
const data = {
companyName: formData.get('companyName')?.toString() || '',
contactPerson: formData.get('contactPerson')?.toString() || '',
email: formData.get('email')?.toString() || '',
phone: formData.get('phone')?.toString() || '',
};
const result = companySchema.safeParse(data);
if (!result.success) {
const errors = result.error.errors.map((err) => ({
path: err.path.join('.'),
message: err.message,
}));
throw new Error(
'Validation failed: ' +
errors.map((e) => `${e.path}: ${e.message}`).join(', '),
);
}
}

View File

@@ -1,6 +1,6 @@
import { z } from 'zod';
export const companySchema = z.object({
export const companyOfferSchema = z.object({
companyName: z.string({
required_error: 'Company name is required',
}),