Skip to content

Commit 565dd2c

Browse files
committed
disbaled and required added
1 parent c99d5c6 commit 565dd2c

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/core/primitives/CheckboxGroup/fragments/CheckboxGroupPrimitiveItem.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from 'react';
22
import RovingFocusGroup from '~/core/utils/RovingFocusGroup';
33
import CheckboxGroupPrimitiveContext from '../context/CheckboxGroupPrimitiveContext';
4+
import { useIsInsideForm } from '~/core/hooks/useIsInsideFrom';
45

56
export type CheckboxGroupPrimitiveItemProps = {
67
children?: React.ReactNode
@@ -10,7 +11,7 @@ export type CheckboxGroupPrimitiveItemProps = {
1011
disabled?: boolean
1112
}
1213
const CheckboxGroupPrimitiveItem = ({ children, className = '', value, required, disabled }: CheckboxGroupPrimitiveItemProps) => {
13-
const { checkedValues, setCheckedValues, name } = React.useContext(CheckboxGroupPrimitiveContext);
14+
const { checkedValues, setCheckedValues, name, required: groupRequired, disabled: groupDisabled } = React.useContext(CheckboxGroupPrimitiveContext);
1415

1516
const checked = checkedValues.includes(value);
1617

@@ -25,12 +26,14 @@ const CheckboxGroupPrimitiveItem = ({ children, className = '', value, required,
2526
<div>
2627
<RovingFocusGroup.Item role='checkbox'>
2728

28-
<button onClick={handleClick} className={className} aria-checked={checked} disabled={disabled} aria-required={required}>
29+
<button onClick={handleClick} className={className} aria-checked={checked} disabled={disabled || groupDisabled} aria-required={required || groupRequired}>
2930
{checked && children}
3031
</button>
3132

3233
</RovingFocusGroup.Item>
33-
<input type="checkbox" checked={checked} name={name} value={value} style={{ display: 'none' }} required={required} disabled={disabled}/>
34+
35+
<input type="checkbox" checked={checked} name={name} value={value} style={{ display: 'none' }} required={required || groupRequired} disabled={disabled || groupDisabled}/>
36+
3437
</div>
3538
);
3639
};

src/core/primitives/CheckboxGroup/fragments/CheckboxGroupPrimitiveRoot.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export type CheckboxGroupPrimitiveRootProps = {
1717
onValueChange?: (value: string[]) => void;
1818
}
1919

20-
const CheckboxGroupPrimitiveRoot = ({ dir, orientation, loop, defaultValue = [], value, onValueChange, children, name, ...props }: CheckboxGroupPrimitiveRootProps) => {
20+
const CheckboxGroupPrimitiveRoot = ({ dir, orientation, loop, defaultValue = [], value, onValueChange, children, name, required, disabled, className ='', ...props }: CheckboxGroupPrimitiveRootProps) => {
2121
const [checkedValues, setCheckedValues] = useControllableState(
2222
value,
2323
defaultValue,
@@ -26,9 +26,9 @@ const CheckboxGroupPrimitiveRoot = ({ dir, orientation, loop, defaultValue = [],
2626
console.log(checkedValues);
2727

2828
return (
29-
<div>
29+
<div className={className} {...props}>
3030
<RovingFocusGroup.Root dir={dir} orientation={orientation} loop={loop}>
31-
<CheckboxGroupPrimitiveContext.Provider value={{ checkedValues, setCheckedValues, name }}>
31+
<CheckboxGroupPrimitiveContext.Provider value={{ checkedValues, setCheckedValues, name, required, disabled }}>
3232
<RovingFocusGroup.Group>
3333
{children}
3434
</RovingFocusGroup.Group>

0 commit comments

Comments
 (0)