All files / src/components/projects/form-sections BudgetTimelineSection.tsx

100% Statements 4/4
100% Branches 0/0
100% Functions 4/4
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84                                      83x                               3x                                           14x                               8x                    
import { Input } from "../../ui/input";
 
interface BudgetTimelineSectionProps {
	budgetRange: string;
	duration: string;
	yearCompleted: string;
	onBudgetRangeChange: (value: string) => void;
	onDurationChange: (value: string) => void;
	onYearCompletedChange: (value: string) => void;
}
 
export function BudgetTimelineSection({
	budgetRange,
	duration,
	yearCompleted,
	onBudgetRangeChange,
	onDurationChange,
	onYearCompletedChange,
}: BudgetTimelineSectionProps) {
	return (
		<div className="space-y-4">
			<h3 className="text-md font-semibold text-foreground-default border-b pb-2">
				Budget & Timeline
			</h3>
			<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
				<div>
					<label
						htmlFor="budget-range"
						className="block text-sm font-medium text-foreground-default mb-1"
					>
						Budget Range
					</label>
					<select
						id="budget-range"
						value={budgetRange}
						onChange={(e) => onBudgetRangeChange(e.target.value)}
						className="flex h-10 w-full rounded-md border border-default bg-background-elevated px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500/40 focus:border-primary-500"
					>
						<option value="">Select range</option>
						<option value="under_1l">Under ₹1L</option>
						<option value="1_3l">₹1-3L</option>
						<option value="3_5l">₹3-5L</option>
						<option value="5_10l">₹5-10L</option>
						<option value="above_10l">Above ₹10L</option>
					</select>
				</div>
 
				<div>
					<label
						htmlFor="duration"
						className="block text-sm font-medium text-foreground-default mb-1"
					>
						Duration
					</label>
					<Input
						id="duration"
						value={duration}
						onChange={(e) => onDurationChange(e.target.value)}
						placeholder="e.g., 45 days"
					/>
				</div>
 
				<div>
					<label
						htmlFor="year-completed"
						className="block text-sm font-medium text-foreground-default mb-1"
					>
						Year Completed
					</label>
					<Input
						id="year-completed"
						type="number"
						value={yearCompleted}
						onChange={(e) => onYearCompletedChange(e.target.value)}
						placeholder="e.g., 2024"
						min="2000"
						max={new Date().getFullYear()}
					/>
				</div>
			</div>
		</div>
	);
}