import clsx from 'clsx'; import { forwardRef, ReactNode } from 'react'; import { useMatch } from 'react-router'; import styles from './collapsed-sidebar-item.module.css'; import { Flex } from '/@/shared/components/flex/flex'; import { Text } from '/@/shared/components/text/text'; import { createPolymorphicComponent } from '/@/shared/utils/create-polymorphic-component'; interface CollapsedSidebarItemProps { activeIcon: ReactNode; disabled?: boolean; icon: ReactNode; label: string; route?: string; } const _CollapsedSidebarItem = forwardRef( ({ activeIcon, disabled, icon, label, route, ...props }: CollapsedSidebarItemProps, ref) => { const match = useMatch(route || '/null'); const isMatch = Boolean(match); return ( {isMatch ?
: null} {isMatch ? activeIcon : icon} {label} ); }, ); export const CollapsedSidebarItem = createPolymorphicComponent<'button', CollapsedSidebarItemProps>( _CollapsedSidebarItem, );