import { ReactNode } from 'react'; import { SxProps, type ButtonProps } from '@mui/material'; import { TableHeaderStatus } from '../../types/index.js'; import { type StatusButtonVariant } from './style'; import { MenuItemI } from '../DropdownMenu'; import { statusButtonIcons } from './constant'; export interface StatusButtonProps extends Omit { variant?: StatusButtonVariant; badgeCount?: number | string; hasDropdown?: boolean; icon?: StatusButtonIcon | (string & {}); label?: ReactNode | null; showDropdownIcon?: boolean; totalCount?: number; selectedStatus?: TableHeaderStatus; onButtonBodyClick?: (status: TableHeaderStatus) => void; /** * @description * `iconMapper` is used as an override for mapping between a given key (statusKey .. ex:`"active"`) and icon src URL * @example * ```js * iconMapper: { * active:'http://base-url/active.svg', * inactive:'http://base-url/inactive.svg', * } * ``` */ iconMapper?: Record; dropdownOptions?: Array; buttonSx?: SxProps; } export interface ChevronIconProps { isActive?: boolean; disableHover?: boolean; } export type StatusButtonIcon = keyof typeof statusButtonIcons;