Hello everyone I am facing some issues regarding using MantineUI. I am trying to crate a form with some nested values.
So, I am trying to use the mantine useForm hook, but when I run the sample code provided in the mantine docs its failing on my machine.
I have attached the error photos as well as code.
Any help will be appreciated.
import { useForm } from '@mantine/form';
import { TextInput, Switch, Group, ActionIcon, Box, Text, Button, Code } from '@mantine/core';
import { randomId } from '@mantine/hooks';
function Demo() {
const form = useForm({
initialValues: {
employees: [{ name: '', active: false, key: randomId() }],
},
});
const fields = form.values.employees.map((item, index) => (
<Group key={item.key} mt="xs">
<TextInput
placeholder="John Doe"
required
sx={{ flex: 1 }}
{...form.getInputProps(`employees.${index}.name`)}
/>
<Switch
label="Active"
{...form.getInputProps(`employees.${index}.active`, { type: 'checkbox' })}
/>
<ActionIcon color="red" onClick={() => form.removeListItem('employees', index)}>
<Text>Delete</Text>
</ActionIcon>
</Group>
));
return (
<Box sx={{ maxWidth: 500 }} mx="auto">
{fields.length > 0 ? (
<Group mb="xs">
<Text weight={500} size="sm" sx={{ flex: 1 }}>
Name
</Text>
<Text weight={500} size="sm" pr={90}>
Status
</Text>
</Group>
) : (
<Text color="dimmed" align="center">
No one here...
</Text>
)}
{fields}
<Group position="center" mt="md">
<Button
onClick={() =>
form.insertListItem('employees', { name: '', active: false, key: randomId() })
}
>
Add employee
</Button>
</Group>
<Text size="sm" weight={500} mt="md">
Form values:
</Text>
<Code block>{JSON.stringify(form.values, null, 2)}</Code>
</Box>
);
}
export default Demo;
The name "test" should be inside the employee array
and also the insertListItem dosent work even its inside the mantine docs