diff --git a/src/components/forms/Toggle.tsx b/src/components/forms/Toggle.tsx index 4145895d81..7f506f862a 100644 --- a/src/components/forms/Toggle.tsx +++ b/src/components/forms/Toggle.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {Pressable, PressableProps, View, ViewStyle} from 'react-native' +import {Pressable, View, ViewStyle} from 'react-native' import {useTheme, atoms as a, web} from '#/alf' import {Text} from '#/components/Typography' @@ -48,14 +48,12 @@ export type GroupProps = React.PropsWithChildren<{ label: string }> -export type ItemProps = Omit< - PressableProps, - 'children' | 'style' | 'onPress' | 'role' -> & { +export type ItemProps = { type?: 'radio' | 'checkbox' name: string label: string value?: boolean + disabled?: boolean onChange?: (selected: boolean) => void hasError?: boolean style?: (state: ItemState) => ViewStyle @@ -314,7 +312,7 @@ function createSharedToggleStyles({ return { baseStyles: base, - baseHoverStyles: baseHover, + baseHoverStyles: disabled ? [] : baseHover, indicatorStyles: indicator, } } diff --git a/src/view/screens/Storybook/Forms.tsx b/src/view/screens/Storybook/Forms.tsx index 1c2a9f4c46..d02a4bfe7a 100644 --- a/src/view/screens/Storybook/Forms.tsx +++ b/src/view/screens/Storybook/Forms.tsx @@ -12,7 +12,9 @@ import ToggleButton from '#/components/forms/ToggleButton' import {Button} from '#/components/Button' export function Forms() { - const [toggleGroupValues, setToggleGroupValues] = React.useState(['a']) + const [toggleGroupAValues, setToggleGroupAValues] = React.useState(['a']) + const [toggleGroupBValues, setToggleGroupBValues] = React.useState(['a', 'b']) + const [toggleGroupCValues, setToggleGroupCValues] = React.useState(['a', 'b']) return ( @@ -137,38 +139,8 @@ export function Forms() { label="Toggle" type="checkbox" maxSelections={2} - values={['a', 'b']} - onChange={e => console.log(e)}> - - - - Click me - - - - Click me - - - - Click me - - - - Click me - - - - Click me - - - - - + values={toggleGroupAValues} + onChange={setToggleGroupAValues}> @@ -197,17 +169,47 @@ export function Forms() { size="small" accessibilityLabel="Reset" accessibilityHint="Reset" - onPress={() => setToggleGroupValues(['a'])}> + onPress={() => setToggleGroupAValues(['a'])}> Reset + + + + + Click me + + + + Click me + + + + Click me + + + + Click me + + + + Click me + + + + console.log(e)}> + values={toggleGroupCValues} + onChange={setToggleGroupCValues}>