@linzjs/step-ag-grid
Version:
[](https://github.com/semantic-release/semantic-release) > Reusable [ag-grid](https://www.ag-grid.com/) component for LINZ / Toitū te whenua.
38 lines (37 loc) • 1.49 kB
TypeScript
import { ReactElement } from 'react';
import { MaybePromise } from '../../utils/util';
import { CellEditorCommon } from '../GridCell';
import { GridBaseRow } from '../types';
export interface GridFormPopoverMenuProps<TData extends GridBaseRow> extends CellEditorCommon {
options: (selectedRows: TData[]) => Promise<MenuOption<TData>[]> | MenuOption<TData>[];
defaultAction?: (props: {
selectedRows: TData[];
menuOption: SelectedMenuOptionResult<TData>;
}) => Promise<void> | void;
}
export declare const PopoutMenuSeparator: Readonly<{
label: "__isMenuSeparator__";
}>;
interface MenuSeparatorType {
__isMenuSeparator__: boolean;
}
export interface SelectedMenuOptionResult<TData extends GridBaseRow> extends MenuOption<TData> {
subValue: any;
}
export interface MenuOption<TData extends GridBaseRow> {
label: ReactElement | string | MenuSeparatorType;
subMenu?: () => ReactElement;
action?: (props: {
selectedRows: TData[];
menuOption: SelectedMenuOptionResult<TData>;
}) => MaybePromise<void>;
disabled?: string | boolean;
hidden?: boolean;
subComponent?: (props: any) => ReactElement;
}
/**
* NOTE: If the popout menu doesn't appear on single click when also selecting row it's because
* you need a useMemo around your columnDefs
*/
export declare const GridFormPopoverMenu: <TData extends GridBaseRow>(props: GridFormPopoverMenuProps<TData>) => import("react/jsx-runtime").JSX.Element;
export {};