import * as React from 'react' import { ShortenedContent, Content, OptionsGroupContainer, RadioInput } from './styles' import { Size } from './Size' type Value = string | number type OptionItem = { value: Value label: Value } export type RenderLabelParams = { size: Size label: string } type ToggleButtonGroupProps = { items: OptionItem[] value?: Value onChange: (value: string) => void renderLabel?: (params: RenderLabelParams) => React.ReactNode size?: Size } export class ToggleButtonGroup extends React.Component { static ShortenedContent = ShortenedContent static defaultProps = { size: Size.REGULAR, renderLabel: ({ size, label }: RenderLabelParams) => ( {label} ), } onChange = ({ target }: React.ChangeEvent) => { this.props.onChange(target.value) } render() { const { items, value, size, renderLabel } = this.props return ( {items.map(item => { const label = item.label.toString() // @ts-ignore const renderedLabel = renderLabel({ size, label }) return ( ) })} ) } } export { Size } from './Size'