untested pushhhhh

This commit is contained in:
Om Lanke
2025-07-07 02:04:10 +05:30
parent acde34a52b
commit 2aeecc9050
9 changed files with 350 additions and 186 deletions

View File

@@ -39,7 +39,7 @@ export default function AcademicDetailsStep({ form }: { form: any }) {
render={({ field }) => (
<FormItem>
<FormLabel>Degree *</FormLabel>
<Select onValueChange={field.onChange} defaultValue={field.value}>
<Select onValueChange={field.onChange} value={field.value}>
<FormControl>
<SelectTrigger>
<SelectValue placeholder="Select your degree" />
@@ -64,7 +64,7 @@ export default function AcademicDetailsStep({ form }: { form: any }) {
render={({ field }) => (
<FormItem>
<FormLabel>Year *</FormLabel>
<Select onValueChange={field.onChange} defaultValue={field.value}>
<Select onValueChange={field.onChange} value={field.value}>
<FormControl>
<SelectTrigger>
<SelectValue placeholder="Year of graduation" />
@@ -89,7 +89,7 @@ export default function AcademicDetailsStep({ form }: { form: any }) {
render={({ field }) => (
<FormItem>
<FormLabel>Branch *</FormLabel>
<Select onValueChange={field.onChange} defaultValue={field.value}>
<Select onValueChange={field.onChange} value={field.value}>
<FormControl>
<SelectTrigger>
<SelectValue placeholder="Select your branch" />
@@ -119,7 +119,12 @@ export default function AcademicDetailsStep({ form }: { form: any }) {
<FormItem>
<FormLabel>SSC % *</FormLabel>
<FormControl>
<Input type="number" placeholder="10th percentage" {...field} />
<Input
type="number"
placeholder="10th percentage"
{...field}
onChange={(e) => field.onChange(parseFloat(e.target.value) || 0)}
/>
</FormControl>
<FormMessage />
</FormItem>
@@ -133,7 +138,12 @@ export default function AcademicDetailsStep({ form }: { form: any }) {
<FormItem>
<FormLabel>HSC % *</FormLabel>
<FormControl>
<Input type="number" placeholder="12th percentage" {...field} />
<Input
type="number"
placeholder="12th percentage"
{...field}
onChange={(e) => field.onChange(parseFloat(e.target.value) || 0)}
/>
</FormControl>
<FormMessage />
</FormItem>
@@ -146,7 +156,11 @@ export default function AcademicDetailsStep({ form }: { form: any }) {
render={({ field }) => (
<FormItem className="flex items-center space-x-2">
<FormControl>
<input type="checkbox" checked={field.value} onChange={(e) => field.onChange(e.target.checked)} />
<input
type="checkbox"
checked={field.value}
onChange={(e) => field.onChange(e.target.checked)}
/>
</FormControl>
<FormLabel className="!m-0">Diploma Holder?</FormLabel>
</FormItem>

View File

@@ -23,10 +23,11 @@ export default function AdditionalDetailsStep({ form }: { form: any }) {
name="linkedin"
render={({ field }) => (
<FormItem>
<FormLabel>LinkedIn Profile *</FormLabel>
<FormLabel>LinkedIn Profile</FormLabel>
<FormControl>
<Input type="url" placeholder="https://linkedin.com/in/yourprofile" {...field} />
</FormControl>
<FormDescription>Optional</FormDescription>
<FormMessage />
</FormItem>
)}
@@ -37,10 +38,11 @@ export default function AdditionalDetailsStep({ form }: { form: any }) {
name="github"
render={({ field }) => (
<FormItem>
<FormLabel>GitHub Profile *</FormLabel>
<FormLabel>GitHub Profile</FormLabel>
<FormControl>
<Input type="url" placeholder="https://github.com/yourusername" {...field} />
</FormControl>
<FormDescription>Optional</FormDescription>
<FormMessage />
</FormItem>
)}
@@ -57,10 +59,20 @@ export default function AdditionalDetailsStep({ form }: { form: any }) {
<Textarea
placeholder="JavaScript, React, Node.js, Python"
className="resize-none"
value={field.value ? (Array.isArray(field.value) ? field.value.join(", ") : field.value) : ""}
onChange={e => {
value={
field.value
? Array.isArray(field.value)
? field.value.join(', ')
: field.value
: ''
}
onChange={(e) => {
const value = e.target.value;
field.onChange(value.split(',').map(s => s.trim()).filter(Boolean));
const skills = value
.split(',')
.map((s) => s.trim())
.filter(Boolean);
field.onChange(skills);
}}
/>
</FormControl>

View File

@@ -12,6 +12,19 @@ import {
import { Input } from '@workspace/ui/components/input';
import { Textarea } from '@workspace/ui/components/textarea';
import { Separator } from '@workspace/ui/components/separator';
import {
Select,
SelectTrigger,
SelectValue,
SelectContent,
SelectItem,
} from '@workspace/ui/components/select';
import { Calendar } from '@workspace/ui/components/calendar';
import { Popover, PopoverContent, PopoverTrigger } from '@workspace/ui/components/popover';
import { Button } from '@workspace/ui/components/button';
import { CalendarIcon } from 'lucide-react';
import { format } from 'date-fns';
import { cn } from '@workspace/ui/lib/utils';
export default function PersonalDetailsStep({ form }: { form: any }) {
return (
@@ -76,6 +89,66 @@ export default function PersonalDetailsStep({ form }: { form: any }) {
/>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<FormField
control={form.control}
name="gender"
render={({ field }) => (
<FormItem>
<FormLabel>Gender *</FormLabel>
<Select onValueChange={field.onChange} defaultValue={field.value}>
<FormControl>
<SelectTrigger>
<SelectValue placeholder="Select your gender" />
</SelectTrigger>
</FormControl>
<SelectContent>
<SelectItem value="male">Male</SelectItem>
<SelectItem value="female">Female</SelectItem>
<SelectItem value="other">Other</SelectItem>
</SelectContent>
</Select>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="dob"
render={({ field }) => (
<FormItem className="flex flex-col">
<FormLabel>Date of Birth *</FormLabel>
<Popover>
<PopoverTrigger asChild>
<FormControl>
<Button
variant="outline"
className={cn(
'w-full pl-3 text-left font-normal',
!field.value && 'text-muted-foreground',
)}
>
{field.value ? format(field.value, 'PPP') : <span>Pick a date</span>}
<CalendarIcon className="ml-auto h-4 w-4 opacity-50" />
</Button>
</FormControl>
</PopoverTrigger>
<PopoverContent className="w-auto p-0" align="start">
<Calendar
mode="single"
selected={field.value}
onSelect={field.onChange}
disabled={(date) => date > new Date() || date < new Date('1900-01-01')}
initialFocus
/>
</PopoverContent>
</Popover>
<FormMessage />
</FormItem>
)}
/>
</div>
<Separator />
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">