UNPKG

fox-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.

30 lines (29 loc) 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AccordionStateManager = void 0; class AccordionStateManager { constructor(params) { this.expandedItems = params.expandedItems || []; this.collapseOnExpand = params.collapseOnExpand || false; } checkItemIsExpandedByIndex(index) { return this.expandedItems.includes(index); } getNextStateByItemIndex(index) { if (index === undefined) { return this.expandedItems; } const isExpanded = this.checkItemIsExpandedByIndex(index); if (isExpanded) { const nextState = [...this.expandedItems]; const expandedItemsIndex = this.expandedItems .findIndex((expandedItem) => expandedItem === index); nextState.splice(expandedItemsIndex, 1); return nextState; } return this.collapseOnExpand ? [index] : [...this.expandedItems, index]; } } exports.AccordionStateManager = AccordionStateManager;