import React, {FunctionComponent, PropsWithChildren, createContext, useCallback, useState} from 'react'; import type {WithStyled} from '~/utils/style'; import styled from 'styled-components'; const Wrapper = styled.div` display: inline-flex; > * { flex-shrink: 0; align-items: flex-start; } `; // eslint-disable-next-line @typescript-eslint/no-empty-function export const EventContext = createContext<((value: V) => unknown) | undefined>(() => {}); export const ValueContext = createContext(null); type RadioGroupProps = { value?: T; onChange?: (value: T) => unknown; }; const RadioGroup = ({ value, onChange, children, className }: PropsWithChildren> & WithStyled): ReturnType => { const [selected, setSelected] = useState(value); const onSelectedChange = useCallback( (value: T) => { setSelected(value); onChange?.(value); }, [onChange] // eslint-disable-line react-hooks/exhaustive-deps ); return ( onSelectedChange(v as T)}> {children} ); }; export default RadioGroup;