slack-block-builder
Version:
Maintainable code for interactive Slack messages, modals, home tabs, and workflow steps. A must-have for the Slack Block Kit framework.
36 lines (35 loc) • 1.36 kB
TypeScript
import { PaginatorButtonId } from '../internal/constants';
import { PaginatorStateManager, PaginatorState } from '../internal/lib';
import type { BlockBuilder, BlockBuilderReturnableFn, StringReturnableFn, Nullable } from '../internal/types';
export declare type PaginatorActionIdFn = StringReturnableFn<PaginatorState & {
buttonId: PaginatorButtonId;
}>;
export interface PageCountTextFnParams {
page: number;
totalPages: number;
}
export declare type PaginatorPageCountTextFn = (params: PageCountTextFnParams) => string;
export declare type PaginatorBuilderFn<T> = BlockBuilderReturnableFn<{
item: T;
}>;
interface PaginatorUIComponentParams<T> {
items: T[];
paginator: PaginatorStateManager;
nextButtonText: Nullable<string>;
previousButtonText: Nullable<string>;
pageCountTextFunction: Nullable<PaginatorPageCountTextFn>;
actionIdFunction: PaginatorActionIdFn;
builderFunction: PaginatorBuilderFn<T>;
}
export declare class PaginatorUIComponent<T> {
private readonly items;
private readonly paginator;
private readonly nextButtonText;
private readonly previousButtonText;
private readonly pageCountTextFunction;
private readonly actionIdFunction;
private readonly builderFunction;
constructor(params: PaginatorUIComponentParams<T>);
getBlocks(): BlockBuilder[];
}
export {};