UNPKG

fox-block-builder

Version:

Maintainable code for loop slack-block-kit-like modal builder

28 lines (27 loc) 1.27 kB
import { ModalView } from '@slack/web-api'; import { DividerBlockRdo, HeaderBlockRdo, InputBlockRdo, SectionBlockRdo } from './modal-block.rdo'; import { PlainTextObject, Prop, TPluginModalMapValues } from '../../internal'; import { LoopPluginModalType } from '../../internal/enum'; export type TFoxUsedBlock = InputBlockRdo | SectionBlockRdo | DividerBlockRdo | HeaderBlockRdo; export type TFindBlockParams = Pick<InputBlockRdo, Prop.ForTeams | Prop.CustomField | Prop.Access | Prop.NoSubmit>; export declare class ViewRdo implements ModalView { modalName: string; type: 'modal'; title: PlainTextObject; submit: PlainTextObject; close: PlainTextObject; blocks: TFoxUsedBlock[]; callback_id?: string; private_metadata?: string; filterBlocks(filterFn?: (b: TFoxUsedBlock) => boolean): this; /** Получение блока по айди */ getBlock(blockId: string, params?: TFindBlockParams): TFoxUsedBlock | undefined; /** Убираем блоки по (части) ID и параметрам */ removeBlocksById(blockIdOrPart: string, params?: TFindBlockParams): this; } export declare class ModalRdo { name: string; type: LoopPluginModalType; map: TPluginModalMapValues | null; view: ViewRdo; }