import React from 'react' import styles from './_floating-action-bar.module.scss' import Button from '../Button/Button' import DropdownMenu from '../DropdownMenu/DropdownMenu' import Icon from '../Icons/Icon' import { type IconStringList } from '../Icons/Icon.models' import { useIsMobileView } from '../../hooks/useIsMobileView/useIsMobileView' import { type DropdownAction } from '../DropdownMenu/DropdownMenu' import { c } from '../../translations/LibraryTranslationService' import { useToggle } from '../../hooks/useToggle/useToggle' /** * Props for the FloatingActionBar component */ export interface FloatingActionBarProps { /** Array of selected items/boxes */ selectedItemCount: number /** Total number of items in the dataset */ totalItemCount: number /** Optional array of action buttons to display in the bar. */ actions: DropdownAction[] /** Optional callback function to execute when the close button is clicked */ onClose?: () => void /** Optional prop to add a test id to the FloatingActionBar for QA testing */ qaTestId?: string } const FloatingActionBar = ({ selectedItemCount, totalItemCount, actions, onClose, qaTestId = 'floating-action-bar', }: FloatingActionBarProps) => { const isTailwindEnabled = useToggle('button_tailwind') const isMobile = useIsMobileView() const visibleActions = isMobile ? actions.slice(0, 1) : actions.slice(0, 4) const hiddenActions = isMobile ? actions.slice(1) : actions.length > 4 ? actions.slice(4) : [] return (