main
tsx 43 lines 1023 Bytes
Raw
1 import {
2 Select,
3 SelectContent,
4 SelectItem,
5 SelectTrigger,
6 SelectValue,
7 } from "@/components/ui/select";
8 import type { StatusFilter } from "@/types/filters";
9 import clsx from "clsx";
10
11 interface StatusSelectProps {
12 status: StatusFilter;
13 onStatusChange: (value: StatusFilter) => void;
14 hideFiltersOnMobile?: boolean;
15 className?: string;
16 }
17
18 export const StatusSelect = ({
19 status,
20 onStatusChange,
21 hideFiltersOnMobile,
22 className,
23 }: StatusSelectProps) => (
24 <Select
25 value={status}
26 onValueChange={(value) => onStatusChange(value as StatusFilter)}
27 >
28 <SelectTrigger
29 className={clsx(
30 "w-32.5 h-10 border-border!",
31 hideFiltersOnMobile && "hidden sm:flex",
32 className
33 )}
34 >
35 <SelectValue placeholder="Status" />
36 </SelectTrigger>
37 <SelectContent>
38 <SelectItem value="all">All Status</SelectItem>
39 <SelectItem value="online">Online</SelectItem>
40 <SelectItem value="offline">Offline</SelectItem>
41 </SelectContent>
42 </Select>
43 );