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.41 kB
TypeScript
import { AccordionStateManager, AccordionState } from '../internal/lib';
import type { BlockBuilderReturnableFn, BlockBuilder, StringReturnableFn, Nullable } from '../internal/types';
export interface AccordionActionIdParams {
expandedItems: AccordionState;
}
export declare type AccordionActionIdFn = StringReturnableFn<AccordionActionIdParams>;
export declare type AccordionTitleTextFn<T> = StringReturnableFn<{
item: T;
}>;
export declare type AccordionBuilderFn<T> = BlockBuilderReturnableFn<{
item: T;
}>;
export declare type AccordionIsExpandableFn<T> = (item: T) => boolean;
export interface AccordionUIComponentParams<T> {
items: T[];
paginator: AccordionStateManager;
expandButtonText: Nullable<string>;
collapseButtonText: Nullable<string>;
titleTextFunction: AccordionTitleTextFn<T>;
actionIdFunction: AccordionActionIdFn;
builderFunction: AccordionBuilderFn<T>;
isExpandableFunction: AccordionIsExpandableFn<T>;
}
export declare class AccordionUIComponent<T> {
private readonly items;
private readonly paginator;
private readonly expandButtonText;
private readonly collapseButtonText;
private readonly titleTextFunction;
private readonly actionIdFunction;
private readonly builderFunction;
private readonly isExpandableFunction;
constructor(params: AccordionUIComponentParams<T>);
getBlocks(): BlockBuilder[];
}