@ansible/ansible-ui-framework
Version:
A framework for building applications using PatternFly.
30 lines (29 loc) • 1.1 kB
TypeScript
import { ModalVariant } from '@patternfly/react-core';
import { ReactNode } from 'react';
interface IManageItemColumn<ItemT extends object> {
header: string;
cell: (item: ItemT, setItem: (item: ItemT) => void) => ReactNode;
}
export interface ManageItemsProps<ItemT extends object> {
id: string;
title: string;
description?: string;
keyFn: (item: ItemT) => string | number;
items: ItemT[];
columns: IManageItemColumn<ItemT>[];
hideColumnHeaders?: boolean;
variant?: ModalVariant;
saveFn?: (items: ItemT) => unknown;
loadFn?: (items: ItemT, data: unknown) => void;
hideSelection?: boolean;
onSubmit?: (items: ItemT[]) => void;
}
export declare function useManageItems<ItemT extends object>(options: ManageItemsProps<ItemT>): {
openManageItems: () => void;
managedItems: ItemT[];
};
export declare function ManageItemsModal<ItemT extends object>(props: ManageItemsProps<ItemT> & {
defaultSelectedItems?: ItemT[];
onApplyChanges: (items: ItemT[], selectedItems: ItemT[]) => void;
}): import("react/jsx-runtime").JSX.Element;
export {};