UNPKG

jsx-slack

Version:

Build JSON object for Slack Block Kit surfaces from JSX

2 lines (1 loc) 994 B
import{JSXSlackError as e}from"../../error.mjs";import{JSXSlack as a}from"../../jsx.mjs";import{createComponent as d}from"../../jsx-internals.mjs";import{RadioButton as c,radioButtonCheckedSymbol as l}from"../composition/RadioButton.mjs";import{wrapInInput as p}from"../layout/Input.mjs";import{resolveTagName as s}from"../utils.mjs";import{focusOnLoadFromProps as f}from"./utils.mjs";const u=d("RadioButtonGroup",o=>{let n;const r=a.Children.toArray(o.children).filter(t=>{if(!a.isValidElement(t))return!1;if(t.$$jsxslack.type!==c){const i=s(t);throw new e(`<RadioButtonGroup> must contain only <RadioButton>${i?` but it is included ${i}`:""}.`,t)}return t[l]&&(n=t),!0});if(r.length===0)throw new e("<RadioButtonGroup> must contain least of one <RadioButton>.",o.__source);const m={type:"radio_buttons",action_id:o.actionId||o.name,options:r,initial_option:o.value!==void 0?r.find(t=>t.value===o.value):n,confirm:o.confirm,focus_on_load:f(o)};return p(m,o,u)});export{u as RadioButtonGroup};