import type { Selector } from '@legendapp/state'; import { ReactElement, ReactNode } from 'react'; import { useSelector } from './useSelector'; export function Switch({ value, children, }: { value?: Selector; children: Partial ReactNode>>; }): ReactElement; export function Switch({ value, children, }: { value?: Selector; children: Partial ReactNode>>; }): ReactElement; export function Switch({ value, children, }: { value?: Selector; children: Partial ReactNode>>; }): ReactElement; export function Switch({ value, children, }: { value?: Selector; children: Partial ReactNode>>; }): ReactElement { // Select from an object of cases return ((children as Record ReactNode>)[useSelector(value)!]?.() ?? (children as Record ReactNode>)['default']?.() ?? null) as ReactElement; }