UNPKG

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
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[]; }