Skip to main content
Version: 2.xx.xx

useCheckboxGroup

useCheckboxGroup hook allows you to manage an Ant Design Checkbox.Group component when records in a resource needs to be used as checkbox options.

Usage

We will demonstrate how to get data at the /tags endpoint from the https://api.fake-rest.refine.dev REST API.

https://api.fake-rest.refine.dev/tags
{
[
{
id: 1,
title: "Driver Deposit",
},
{
id: 2,
title: "Index Compatible Synergistic",
},
{
id: 3,
title: "Plum",
},
];
}
pages/posts/create.tsx
import { Form, Checkbox, useCheckboxGroup } from "@pankod/refine";

export const PostCreate: React.FC = () => {
const { checkboxGroupProps } = useCheckboxGroup<ITag>({
resource: "tags",
});

return (
<Form>
<Form.Item label="Tags" name="tags">
<Checkbox.Group {...checkboxGroupProps} />
</Form.Item>
</Form>
);
};

interface ITag {
id: string;
title: string;
}

All we have to do is pass the checkboxGroupProps it returns to the <Checkbox.Group> component. useCheckboxGroup uses the useList hook for fetching data. Refer to useList hook for details. β†’

Tags

Options

resource

const { checkboxGroupProps } = useCheckboxGroup({
resource: "tags",
});

resource property determines which? API resource endpoint to fetch records from dataProvider. It returns properly configured options values for checkboxes.

Refer to Ant Design Checkbox.Group component documentation for detailed info for options. β†’

optionLabel and optionValue

const { checkboxGroupProps } = useCheckboxGroup({
resource: "tags",
optionLabel: "title",
optionValue: "id",
});

optionLabel and optionValue allows you to change the values and appearances of your options. Default values are optionLabel = "title" and optionValue = "id".

filters

const { checkboxGroupProps } = useCheckboxGroup({
resource: "tags",
filters: [
{
field: "title",
operator: "eq",
value: "Driver Deposit",
},
],
});

It allows us to add some filters while fetching the data. For example, if you want to list only the titles that are equal to "Driver Deposit" records.

sort

const { checkboxGroupProps } = useCheckboxGroup({
resource: "tags",
sort: [
{
field: "title",
order: "asc",
},
],
});

It allows us to sort the options. For example, if you want to sort your list according to title by ascending.

queryOptions

const { checkboxGroupProps } = useCheckboxGroup({
resource: "tags",
queryOptions: {
onError: () => {
console.log("triggers when on query return Error");
},
},
});

useQuery options can be set by passing queryOptions property.

API Reference

Properties

PropertyDescriptionTypeDefault
resource
Required
Resource name for API data interactionsstring
optionValueSets the option's valuestring"id"
optionLabelSets the option's label valuestring"title"
filtersAdds filters while fetching the dataCrudFilters
sortAllows us to sort the optionsCrudSorting
queryOptionsreact-query useQuery options UseQueryOptions<GetListResponse<TData>, TError>
metaDataMetadata query for dataProviderMetaDataQuery{}
liveModeWhether to update data automatically ("auto") or not ("manual") if a related live event is received. The "off" value is used to avoid creating a subscription."auto" | "manual" | "off""off"
liveParamsParams to pass to liveProvider's subscribe method if liveMode is enabled.{ ids?: string[]; [key: string]: any; }undefined
onLiveEventCallback to handle all related live events of this hook.(event: LiveEvent) => voidundefined

Return values

PropertyDescriptionType
checkboxGroupPropsAnt design checkbox group propertiesCheckbox Group
queryResultResults of the query of a recordQueryObserverResult<{ data: TData }>

Live Codesandbox Example