'use client'; import { SegmentButton } from './segment-button'; import { SegmentedButtonsProps } from './segmented-buttons.types'; import React, { cloneElement, forwardRef, ReactElement } from 'react'; export const SegmentedButtons = forwardRef< HTMLDivElement, SegmentedButtonsProps >(({ toggled = false, children, ...props }, ref) => { if (children.length <= 1) { throw 'You must build segmented button with 2 or more button'; } const SegmentedButtons: Array<ReactElement> = children.map( (Button: ReactElement, index: number) => { return cloneElement(<SegmentButton />, { ...Button.props, toggled: toggled, key: index, }); }, ); return ( <div className={`m3 m3-segmented-buttons ${props.className ?? ''}`.trimEnd()} ref={ref} > {SegmentedButtons} </div> ); });