@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 2.04 kB
Source Map (JSON)
{"version":3,"file":"MenuCheckboxGroup.cjs","names":["useProps","MenuCheckboxGroupContext"],"sources":["../../../../src/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { useProps } from '../../../core';\nimport { MenuCheckboxGroupContext } from './MenuCheckboxGroup.context';\n\nexport interface MenuCheckboxGroupProps {\n /** Controlled selected values */\n value?: string[];\n\n /** Uncontrolled default selected values */\n defaultValue?: string[];\n\n /** Called with the new array of selected values when a `Menu.CheckboxItem` is toggled */\n onChange?: (value: string[]) => void;\n\n /** `Menu.CheckboxItem` components and other elements */\n children?: React.ReactNode;\n}\n\nexport function MenuCheckboxGroup(_props: MenuCheckboxGroupProps) {\n const props = useProps('MenuCheckboxGroup', null, _props);\n const { value, defaultValue, onChange, children } = props;\n\n const [_value, setValue] = useUncontrolled<string[]>({\n value,\n defaultValue,\n finalValue: [],\n onChange,\n });\n\n const toggle = useCallback(\n (next: string) => {\n setValue(_value.includes(next) ? _value.filter((item) => item !== next) : [..._value, next]);\n },\n [_value, setValue]\n );\n\n return (\n <MenuCheckboxGroupContext value={{ values: _value, onChange: toggle }}>\n {children}\n </MenuCheckboxGroupContext>\n );\n}\n\nMenuCheckboxGroup.displayName = '@mantine/core/MenuCheckboxGroup';\n"],"mappings":";;;;;;;AAmBA,SAAgB,kBAAkB,QAAgC;CAEhE,MAAM,EAAE,OAAO,cAAc,UAAU,aADzBA,kBAAAA,SAAS,qBAAqB,MAAM,MACM;CAExD,MAAM,CAAC,QAAQ,aAAA,GAAA,eAAA,gBAAA,CAAsC;EACnD;EACA;EACA,YAAY,CAAC;EACb;CACF,CAAC;CASD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kCAAAA,0BAAD;EAA0B,OAAO;GAAE,QAAQ;GAAQ,WAAA,GAAA,MAAA,YAAA,EAPlD,SAAiB;IAChB,SAAS,OAAO,SAAS,IAAI,IAAI,OAAO,QAAQ,SAAS,SAAS,IAAI,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC;GAC7F,GACA,CAAC,QAAQ,QAAQ,CAIiD;EAAE;EACjE;CACuB,CAAA;AAE9B;AAEA,kBAAkB,cAAc"}