import { Box, Text } from '@wix/design-system'; import React, { useEffect, ReactNode, useRef } from 'react'; import { observer } from 'mobx-react-lite'; import { TabsResponsiveState } from './TabsResponsiveState'; import { classes, st } from './TabsFilter.st.css.js'; export interface TabTitleProps { tabIndex: number; state: TabsResponsiveState; text?: string; value: V | null | undefined; active?: boolean; counterBadge?: (value: V | null | undefined) => ReactNode; } function _TabTitle({ tabIndex, state, text, value, active, counterBadge, }: TabTitleProps) { const badge = counterBadge?.(value); const badgeRef = useRef(); useEffect(() => { if (badgeRef.current) { state.badges.set(tabIndex, badgeRef.current); } return () => { state.badges.delete(tabIndex); }; }, [badgeRef.current]); return ( {text} {badge && (
{ if (node) { badgeRef.current = node; } }} > {badge}
)}
); } export const TabTitle = observer(_TabTitle);