import React from 'react' import {View, AccessibilityProps, TextStyle, ViewStyle} from 'react-native' import {atoms as a, useTheme, native} from '#/alf' import {Text} from '#/components/Typography' import * as Toggle from '#/components/forms/Toggle' export type ItemProps = Omit & AccessibilityProps & React.PropsWithChildren<{ testID?: string }> export type GroupProps = Omit & { multiple?: boolean } export function Group({children, multiple, ...props}: GroupProps) { const t = useTheme() return ( {children} ) } export function Button({children, ...props}: ItemProps) { return ( {children} ) } function ButtonInner({children}: React.PropsWithChildren<{}>) { const t = useTheme() const state = Toggle.useItemContext() const {baseStyles, hoverStyles, activeStyles, textStyles} = React.useMemo(() => { const base: ViewStyle[] = [] const hover: ViewStyle[] = [] const active: ViewStyle[] = [] const text: TextStyle[] = [] hover.push( t.name === 'light' ? t.atoms.bg_contrast_100 : t.atoms.bg_contrast_25, ) if (state.selected) { active.push({ backgroundColor: t.palette.contrast_800, }) text.push(t.atoms.text_inverted) hover.push({ backgroundColor: t.palette.contrast_800, }) if (state.disabled) { active.push({ backgroundColor: t.palette.contrast_500, }) } } if (state.disabled) { base.push({ backgroundColor: t.palette.contrast_100, }) text.push({ opacity: 0.5, }) } return { baseStyles: base, hoverStyles: hover, activeStyles: active, textStyles: text, } }, [t, state]) return ( {typeof children === 'string' ? ( {children} ) : ( children )} ) }