Skip to content

Commit 7521790

Browse files
committed
feat: add checkbox indeterminate state
- update checkbox story to show indeterminate state Closes DO-530
1 parent 77aaa9f commit 7521790

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

system/stories/src/Checkbox.stories.tsx

+13-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ import { checkbox, checkboxRadioLabel } from '@tablecheck/tablekit-core';
33
import * as emotion from '@tablecheck/tablekit-react';
44
import * as css from '@tablecheck/tablekit-react-css';
55

6+
const indeterminate = 'indeterminate';
67
const contentVariants = ['Default', 'Hover', 'Focus', 'Disabled'] as const;
78

9+
const states = [false, true, indeterminate] as const;
10+
811
const labelSelector = checkboxRadioLabel.selectors.find((selector) =>
912
selector.includes('checkbox')
1013
);
@@ -21,15 +24,22 @@ export default {
2124

2225
const Template: Story = ({ Checkbox, LabelComponent }) => (
2326
<>
24-
{[true, false].map((isChecked) =>
27+
{states.map((state) =>
2528
contentVariants.map((variant) => (
2629
<LabelComponent>
2730
<Checkbox
2831
data-pseudo={variant.toLowerCase()}
2932
disabled={variant.toLowerCase() === 'disabled'}
30-
defaultChecked={isChecked}
33+
ref={(ref: undefined | HTMLInputElement) => {
34+
if (!ref) return;
35+
if (state === indeterminate) {
36+
ref.indeterminate = true;
37+
} else {
38+
ref.checked = state;
39+
}
40+
}}
3141
/>
32-
{variant} {isChecked ? '☑' : '☐'}
42+
{variant} {state ? '☑' : '☐'}
3343
</LabelComponent>
3444
))
3545
)}

0 commit comments

Comments
 (0)