All files / src/shared/ContextualMenu ContextualMenu.types.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68                                                                                                                                       
import { PopoverOrigin, SxProps } from "@mui/material";
import { Icon, IconProps } from "@phosphor-icons/react";
import { TEmptyStateWrapperSection } from "@shared/EmptyState/types";
import { GiveSearchBarProps } from "@shared/SearchBar/GiveSearchBar";
import React, { ReactNode } from "react";
import { ArrowPlacement } from "@shared/Tooltip/GiveTooltip.types";
 
export type ContextualMenuOptionProps = {
  type?: "default" | "destructive" | "label" | "divider" | "success";
  text: string;
  description?: string | ReactNode;
  trailingText?: string;
  disabled?: boolean;
  onClick?: (
    event: React.MouseEvent<HTMLDivElement>,
    text?: string | number,
  ) => void;
  IconLeft?: Icon | React.FC<IconProps>;
  IconRight?: Icon | React.FC<IconProps>;
  Image?: ReactNode;
  hidden?: boolean;
  handleClose?: () => void;
  isSelected?: boolean;
  id?: string | number;
  checkedIconType?: "Plus" | "Check";
  tooltipTitle?: string;
  tooltipHeading?: string;
  disableTooltip?: boolean;
  tooltipDirection?: ArrowPlacement;
  showRightIconOnHover?: boolean;
  shouldDefaultCursor?: boolean;
  scrollRef?: any;
  isMultiSelect?: boolean;
  noCloseOnClick?: boolean;
  showCheckedIcon?: boolean;
  sx?: SxProps;
  triggerClickOnHover?: boolean;
};
 
export interface ContextualMenuProps {
  anchorEl?: HTMLElement | null;
  handleClose?: () => void;
  color: "primary" | "secondary" | "tertiary" | "transparent";
  texture: "solid" | "blurred";
  options: Omit<ContextualMenuOptionProps, "children">[];
  menuWidth?: number | string;
  searchBarProps?: GiveSearchBarProps;
  Header?: ReactNode;
  horizontalOrigin?: "left" | "right" | "center";
  anchorOrigin?: PopoverOrigin;
  transformOrigin?: PopoverOrigin;
  onCloseEmptyState?: () => void;
  emptySection?: TEmptyStateWrapperSection;
  isLoading?: boolean;
  customPaperStyle?: SxProps;
  customContent?: React.ReactNode;
  useVirtualList?: boolean; // Virtuoso will be used on ContextualMenu
  height?: string | number;
  onEndReached?: (index?: number) => void;
  showEmptySectionWhenNoData?: boolean;
  isMultiSelect?: boolean;
  optionsHeader?: React.ReactElement;
  isFetchingNextPage?: boolean;
  anchorOriginVertical?: "center" | "bottom" | "top";
  transformOriginVertical?: "center" | "bottom" | "top";
  drawerZIndex?: number;
}