import type { ComponentProps, Context, ReactNode } from 'react'; import { useDropdownButton } from '@/ui/dropdown/hooks/useDropdownButton'; import { TopBar } from '@/ui/top-bar/TopBar'; import { FiltersHotkeyScope } from '../types/FiltersHotkeyScope'; import { ViewsHotkeyScope } from '../types/ViewsHotkeyScope'; import { FilterDropdownButton } from './FilterDropdownButton'; import { SortDropdownButton } from './SortDropdownButton'; import { UpdateViewButtonGroup, type UpdateViewButtonGroupProps, } from './UpdateViewButtonGroup'; import ViewBarDetails, { type ViewBarDetailsProps } from './ViewBarDetails'; import { ViewsDropdownButton, type ViewsDropdownButtonProps, } from './ViewsDropdownButton'; export type ViewBarProps = ComponentProps<'div'> & { optionsDropdownButton: ReactNode; optionsDropdownKey: string; scopeContext: Context; } & Pick< ViewsDropdownButtonProps, 'defaultViewName' | 'onViewsChange' | 'onViewSelect' > & Pick & Pick; export const ViewBar = ({ canPersistViewFields, defaultViewName, onReset, onViewsChange, onViewSelect, onViewSubmit, optionsDropdownButton, optionsDropdownKey, scopeContext, ...props }: ViewBarProps) => { const { openDropdownButton: openOptionsDropdownButton } = useDropdownButton({ dropdownId: optionsDropdownKey, }); return ( } displayBottomBorder={false} rightComponent={ <> {optionsDropdownButton} } bottomComponent={ } /> } /> ); };