import type { PropsWithChildren } from "react"; import { ButtonProps } from "@components/Button/Button.interface"; import { ClassName } from "@helpers/types"; import { IDropdownOption, TDropdownVariant } from "../Dropdown.interface"; export interface IMenuDropdownProps extends ClassName { options: IDropdownOption[]; selectedItems?: IDropdownOption | IDropdownOption[]; variant: TDropdownVariant; user?: IUserData; withUserEntry?: boolean; extraAction?: IDropdownOption; extraActionHandler?: (value?: IDropdownOption) => void; onSelect?: (items: IDropdownOption | IDropdownOption[] | undefined) => void; isMulti?: boolean; triggerButtonProps?: Partial; } export interface IUserData { avatarUrl?: string; avatarAltText?: string; email: string; firstName: string; lastName: string; } export interface IMenuTriggerProps { onClick(e: React.MouseEvent): void; triggerButtonProps?: Partial; } export interface IMenuDropdownListProps extends PropsWithChildren, ClassName { user?: IUserData; withUserEntry?: boolean; extraAction?: IDropdownOption; extraActionHandler?: (value?: IDropdownOption) => void; } export interface IMenuDropdownOptionProps extends ClassName { option: IDropdownOption; variant: TDropdownVariant; isSelected: boolean; onSelect?: (item: IDropdownOption) => void; id?: string; }