jsx-slack
Version:
Build JSON object for Slack Block Kit surfaces from JSX
2 lines (1 loc) • 1.04 kB
JavaScript
import{JSXSlackError as c}from"../../error.mjs";import{JSXSlack as a}from"../../jsx.mjs";import{createComponent as l}from"../../jsx-internals.mjs";import{Checkbox as p,checkboxCheckedSymbol as u}from"../composition/Checkbox.mjs";import{wrapInInput as h}from"../layout/Input.mjs";import{resolveTagName as f}from"../utils.mjs";import{focusOnLoadFromProps as d}from"./utils.mjs";const m=l("CheckboxGroup",o=>{const t=[],n=o.values!==void 0?[].concat(o.values):void 0,i=a.Children.toArray(o.children).filter(r=>{if(!a.isValidElement(r))return!1;if(r.$$jsxslack.type!==p){const e=f(r);throw new c(`<CheckboxGroup> must contain only <Checkbox>${e?` but it is included ${e}`:""}.`,r)}return n!==void 0?r.value&&n.includes(r.value)&&t.push(r):r[u]&&t.push(r),!0});if(i.length===0)throw new c("<CheckboxGroup> must contain least of one <Checkbox>.",o.__source);const s={type:"checkboxes",action_id:o.actionId||o.name,options:i,initial_options:t.length>0?t:void 0,confirm:o.confirm,focus_on_load:d(o)};return h(s,o,m)});export{m as CheckboxGroup};