import clsx from 'clsx' import { FieldValues, Path, useFormContext } from 'react-hook-form' import { SegmentedControlsProps } from '@dao-dao/types' import { SegmentedControls } from './SegmentedControls' export type SegmentedControlsTitleProps< T extends unknown, FV extends FieldValues, FieldName extends Path, > = Omit, 'selected' | 'onSelect'> & { editable: boolean fieldName: FieldName } // Show segmented controls when editing and title of selected tab otherwise. export const SegmentedControlsTitle = < T extends unknown, FV extends FieldValues, FieldName extends Path, >({ editable, fieldName, ...props }: SegmentedControlsTitleProps) => { const { watch, setValue } = useFormContext() const value = watch(fieldName) const selectedTab = props.tabs.find((tab) => tab.value === value) return ( <> {editable ? ( {...props} onSelect={(value) => setValue(fieldName, value as any)} selected={value} /> ) : (

{selectedTab?.label}

)} ) }