Pular para o conteúdo

Caixa de seleção

Checkboxes são usados para seleção entre múltiplas opções. Podem alternar entre marcado, desmarcado e um estado intermediário.

Para usar o Checkbox, importe-o dos seus componentes e passe checked, onCheckedChange e, opcionalmente, as props disabled, size e color.

Um checkbox simples com configuração mínima.

import React, { useState } from "react";
import { Checkbox } from "@firecms/ui";
export default function CheckboxBasicDemo() {
const [checked, setChecked] = useState(true);
return (
<Checkbox
checked={checked}
onCheckedChange={(newChecked) => setChecked(newChecked)}
/>
);
}

Um checkbox que mostra o estado indeterminado, tipicamente usado para cenários de ‘selecionar tudo’ onde nem todas as sub-seleções foram feitas.

import React, { useState } from "react";
import { Checkbox } from "@firecms/ui";
export default function CheckboxIndeterminateDemo() {
const [indeterminate, setIndeterminate] = useState(true);
const [checked, setChecked] = useState(false);
return (
<Checkbox
checked={checked}
indeterminate={indeterminate}
onCheckedChange={(newChecked) => {
if (indeterminate) {
setIndeterminate(false);
setChecked(true);
} else if (checked) {
setChecked(false);
} else {
setIndeterminate(true);
}
}}
/>
);
}

Ilustrando como usar diferentes tamanhos para o componente checkbox.

import React, { useState } from "react";
import { Checkbox } from "@firecms/ui";
export default function CheckboxSizeDemo() {
const [checked, setChecked] = useState(true);
return (
<div className="flex flex-col items-center gap-4">
<Checkbox
size="small"
checked={checked}
onCheckedChange={setChecked}
color="primary"/>
<Checkbox
size="medium"
checked={checked}
onCheckedChange={setChecked}
color="primary"/>
<Checkbox
size="large"
checked={checked}
onCheckedChange={setChecked}
color="primary"/>
</div>
);
}

Demonstra o uso da prop color para personalizar a aparência do checkbox.

import React, { useState } from "react";
import { Checkbox } from "@firecms/ui";
export default function CheckboxColorDemo() {
const [checkedPrimary, setCheckedPrimary] = useState(true);
const [checkedSecondary, setCheckedSecondary] = useState(true);
return (
<div className="flex flex-col items-center gap-4">
<Checkbox
size="medium"
checked={checkedPrimary}
onCheckedChange={setCheckedPrimary}
color="primary"
/>
<Checkbox
size="medium"
checked={checkedSecondary}
onCheckedChange={setCheckedSecondary}
color="secondary"
/>
</div>
);
}