Prometheus Entity Management API
    Preparing search index...

    ui/entity-list-view.tsx

    Top-level orchestrator component — manages view mode, shared selection store, toolbar/pagination shell, and delegates to the active view renderer (table, gallery, or list).

    interface EntityListViewProps<TData extends object> {
        actions?: ActionDef<TData>[];
        batchActions?: BatchActionDef[];
        className?: string;
        columns: PureColumnDef<TData, unknown>[];
        data?: TData[];
        defaultViewMode?: ViewMode;
        emptyState?: ReactNode | EmptyStateConfig;
        enableColumnPinning?: boolean;
        enableColumnResizing?: boolean;
        enabledViewModes?: ViewMode[];
        enableGrouping?: boolean;
        enableInlineEdit?: boolean;
        enableMultiSelect?: boolean;
        enablePresets?: boolean;
        enableSearch?: boolean;
        galleryColumns?: GalleryColumns;
        getRowId?: (row: TData) => string;
        itemDescriptor?: ItemDescriptor<TData>;
        onAction?: (action: string, item: TData) => void;
        onBatchAction?: (action: string, selectedItems: TData[]) => void;
        onInlineEdit?: (
            item: TData,
            field: string,
            value: unknown,
        ) => void | Promise<void>;
        onInlineSave?: (
            item: TData,
            changes: Partial<TData>,
        ) => void | Promise<void>;
        onRefresh?: () => void;
        pageSize?: number;
        paginationMode?: "none" | "loadMore" | "pages";
        renderCard?: (item: TData, context: ItemRenderContext<TData>) => ReactNode;
        renderItem?: (item: TData, context: ItemRenderContext<TData>) => ReactNode;
        tableId?: string;
        viewResult?: { isFetching?: boolean; items: TData[]; total?: number };
    }

    Type Parameters

    • TData extends object
    Index
    actions?: ActionDef<TData>[]
    batchActions?: BatchActionDef[]
    className?: string
    columns: PureColumnDef<TData, unknown>[]
    data?: TData[]
    defaultViewMode?: ViewMode
    emptyState?: ReactNode | EmptyStateConfig
    enableColumnPinning?: boolean
    enableColumnResizing?: boolean
    enabledViewModes?: ViewMode[]
    enableGrouping?: boolean
    enableInlineEdit?: boolean
    enableMultiSelect?: boolean
    enablePresets?: boolean
    enableSearch?: boolean
    galleryColumns?: GalleryColumns
    getRowId?: (row: TData) => string
    itemDescriptor?: ItemDescriptor<TData>
    onAction?: (action: string, item: TData) => void
    onBatchAction?: (action: string, selectedItems: TData[]) => void
    onInlineEdit?: (
        item: TData,
        field: string,
        value: unknown,
    ) => void | Promise<void>
    onInlineSave?: (item: TData, changes: Partial<TData>) => void | Promise<void>
    onRefresh?: () => void
    pageSize?: number
    paginationMode?: "none" | "loadMore" | "pages"
    renderCard?: (item: TData, context: ItemRenderContext<TData>) => ReactNode
    renderItem?: (item: TData, context: ItemRenderContext<TData>) => ReactNode
    tableId?: string
    viewResult?: { isFetching?: boolean; items: TData[]; total?: number }