fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
28 lines (27 loc) • 1.27 kB
TypeScript
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;
}