import React, { FC, memo } from "react"; import { GroupedStatuses } from "@/types/noteStatus"; import { StatusesInfoPopup } from "@/integrations/popups/statusesInfoPopupIntegration"; import { StatusIcon } from "@/components/atoms/StatusIcon"; interface EditorToolbarButtonProps { statuses: GroupedStatuses; defaultTagName: string; onClick: () => void; unknownStatusConfig: { icon: string; lucideIcon?: string; color: string; }; } export const EditorToolbarButton: FC = memo( ({ statuses, defaultTagName, onClick, unknownStatusConfig }) => { const statusEntries = Object.entries(statuses); const allStatuses = statusEntries.flatMap( ([_, statusList]) => statusList, ); const totalStatuses = allStatuses.length; const handleMouseEnter = () => { StatusesInfoPopup.open({ statuses, defaultTagName }); }; const handleMouseLeave = () => { StatusesInfoPopup.close(); }; const getPrimaryStatus = () => allStatuses[0]; // No status state if (totalStatuses === 0) { return ( ); } const primaryStatus = getPrimaryStatus(); // Single status if (totalStatuses === 1) { return ( ); } // Multiple statuses - show primary + counter return ( ); }, );