import { h } from 'preact'; import { useCallback, useState } from 'preact/hooks'; export function Tabs({ children, selectedIndex: selectedIndexProp, onChange, className }) { const [selectedIndex, setSelectedIndex] = useState(selectedIndexProp); const handleSelected = useCallback( (index) => () => { setSelectedIndex(index); onChange && onChange(index); }, [onChange] ); const RenderChildren = useCallback(() => { return children.map((child, i) => { child.props.selected = i === selectedIndex; child.props.onClick = handleSelected(i); return child; }); }, [selectedIndex, children, handleSelected]); return (