fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
28 lines (27 loc) • 1.22 kB
TypeScript
import { ModalView } from '@slack/web-api';
import { DividerBlockRdo, HeaderBlockRdo, InputBlockRdo, SectionBlockRdo } from './modal-block.rdo';
import { PlainTextObject, TPluginModalMapValues } from '../../internal';
import { LoopPluginModalType } from '../../internal/enum';
type TUsedBlock = InputBlockRdo | SectionBlockRdo | DividerBlockRdo | HeaderBlockRdo;
export declare class ViewRdo implements ModalView {
modalName: string;
type: 'modal';
title: PlainTextObject;
submit: PlainTextObject;
close: PlainTextObject;
blocks: TUsedBlock[];
callback_id?: string;
private_metadata?: string;
filterBlocks(filterFn?: (b: TUsedBlock) => boolean): this;
/** Получение блока по айди */
getBlock(blockId: string, params?: Pick<InputBlockRdo, 'forTeams' | 'customField' | 'access'>): TUsedBlock | undefined;
/** Убираем блоки по (части) ID и параметрам */
removeBlocksById(blockIdOrPart: string, params?: Pick<InputBlockRdo, 'forTeams' | 'customField' | 'access'>): this;
}
export declare class ModalRdo {
name: string;
type: LoopPluginModalType;
map: TPluginModalMapValues | null;
view: ViewRdo;
}
export {};