import React from 'react' import { type AccessibilityProps, type TextStyle, View, type ViewStyle, } from 'react-native' import {atoms as a, native, useTheme} from '#/alf' import * as Toggle from '#/components/forms/Toggle' import {Text} from '#/components/Typography' type ItemProps = Omit & AccessibilityProps & { children: React.ReactElement 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} = React.useMemo(() => { const base: ViewStyle[] = [] const hover: ViewStyle[] = [] const active: ViewStyle[] = [] 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, }) 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, }) } return { baseStyles: base, hoverStyles: hover, activeStyles: active, } }, [t, state]) return ( {children} ) } export function ButtonText({children}: {children: React.ReactNode}) { const t = useTheme() const state = Toggle.useItemContext() const textStyles = React.useMemo(() => { const text: TextStyle[] = [] if (state.selected) { text.push(t.atoms.text_inverted) } if (state.disabled) { text.push({ opacity: 0.5, }) } return text }, [t, state]) return ( {children} ) }