()
| 6 | type ExampleState = MergeOption<{ day?: boolean }>; |
| 7 | |
| 8 | export default function Basic() { |
| 9 | const [state, setState] = useState<ExampleState>(false); |
| 10 | |
| 11 | const merged = useMergeOption(state, { day: true }); |
| 12 | |
| 13 | const getValue = () => { |
| 14 | if (state === false) return 0; |
| 15 | if (state === true) return 2; |
| 16 | return 1; |
| 17 | }; |
| 18 | const setValue = (value: number) => { |
| 19 | setState([false, { day: false }, true][value]); |
| 20 | }; |
| 21 | |
| 22 | return ( |
| 23 | <> |
| 24 | <label>Change value:</label> |
| 25 | <Segmented |
| 26 | value={getValue()} |
| 27 | options={[ |
| 28 | { |
| 29 | label: 'false', |
| 30 | value: 0, |
| 31 | }, |
| 32 | { |
| 33 | label: `{ day: false }`, |
| 34 | value: 1, |
| 35 | }, |
| 36 | { |
| 37 | label: 'true', |
| 38 | value: 2, |
| 39 | }, |
| 40 | ]} |
| 41 | onChange={(val) => setValue(val as number)} |
| 42 | /> |
| 43 | <pre style={{ marginTop: 8, border: '1px solid #eee', padding: 8 }}> |
| 44 | {JSON.stringify(merged, null, 2)} |
| 45 | </pre> |
| 46 | </> |
| 47 | ); |
| 48 | } |
nothing calls this directly
no test coverage detected