satupeta-main/app/(modules)/(landing)/components/feedback/_components/select-purpose.tsx

74 lines
2.0 KiB
TypeScript
Raw Normal View History

2026-01-27 02:31:12 +00:00
"use client";
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/shared/components/ui/select";
type PurposeOptions = {
value: string;
label: string;
};
const purposeOptions: PurposeOptions[] = [
{
value:
"Mencari data terbuka Pemerintah Daerah untuk kepentingan bisnis, perumusan kebijakan, atau referensi pribadi lainnya",
label:
"Mencari data terbuka Pemerintah Daerah untuk kepentingan bisnis, perumusan kebijakan, atau referensi pribadi lainnya",
},
{
value:
"Mencari data terbuka Pemerintah Daerah untuk kepentingan bahan ajar/kurikulum/tugas belajar",
label:
"Mencari data terbuka Pemerintah Daerah untuk kepentingan bahan ajar/kurikulum/tugas belajar",
},
{
value: "Mencari data untuk membuktikan kebenaran atas sebuah isu tertentu",
label: "Mencari data untuk membuktikan kebenaran atas sebuah isu tertentu",
},
{
value:
"Mempelajari lebih lanjut terkait transparansi data dan informasi yang dimiliki oleh Pemerintah Daerah",
label:
"Mempelajari lebih lanjut terkait transparansi data dan informasi yang dimiliki oleh Pemerintah Daerah",
},
];
export default function SelectPurpose({
value,
onChange,
name = "tujuan",
}: {
value: string;
onChange: (v: string) => void;
name: string;
}) {
return (
<Select
name={name}
value={value ?? undefined}
onValueChange={(v) => onChange(String(v))}
>
<SelectTrigger className="w-full max-w-[460px]">
<SelectValue aria-selected placeholder="Pilih Tujuan"></SelectValue>
</SelectTrigger>
<SelectContent className="z-[9999] w-full max-w-[460px] truncate">
{purposeOptions.map((option) => (
<SelectItem
key={option.value}
value={option.value}
className="max-w-full text-wrap"
>
<span className="block">{option.label}</span>
</SelectItem>
))}
</SelectContent>
</Select>
);
}