Select with state
Unanswered
Havana posted this in #help-forum
HavanaOP
Hi all.
Using shadcn's <select> with some state in a client component.
does anybody know why setting the client in my form handler returns null?
Using shadcn's <select> with some state in a client component.
export function CreateClientForm({ clients }: any) {
const [selectedClient, setSelectedClient] = useState(null);
const handleClientChange = (clientId: string) => {
const client = clients.find((client: any) => client.client_id === clientId);
setSelectedClient(client);
};
const { pending } = useFormStatus();
async function submitClient(formData: FormData) {
createSalonClient(formData);
}
console.log(selectedClient)does anybody know why setting the client in my form handler returns null?
1 Reply
HavanaOP
jsx is:
return (
<div>
<div className='flex flex-col items-center mt-12 mb-12'>
<h1>Client form</h1>
<h2>Select a client, then apply a type to them</h2>
</div>
<form className='grid grid-cols-2' action={submitClient}>
<div className='m-12'>
<Label htmlFor="select-client">Client to apply form to</Label>
<Select name='selectClient' onValueChange={handleClientChange}>
<SelectTrigger>
<SelectValue placeholder="Select client">
{selectedClient ? `${selectedClient.client_forename} ${selectedClient.client_surname}` : "Select client"}
</SelectValue>
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Client</SelectLabel>
{clients?.map((client) => (
<SelectItem key={client.client_id} value={client.client_id}>
{`${client.client_forename} ${client.client_surname}`}
</SelectItem>
))}
</SelectGroup>
</SelectContent>
</Select>
</div>
</form>
</div>
);
}