UNPKG

jsx-slack

Version:

Build JSON object for Slack Block Kit surfaces from JSX

2 lines (1 loc) 659 B
import{JSXSlackError as a}from"../../error.mjs";import{JSXSlack as i}from"../../jsx.mjs";import{createComponent as s}from"../../jsx-internals.mjs";import{alias as c,resolveTagName as u}from"../utils.mjs";import{Option as n}from"./Option.mjs";import{plainText as f}from"./utils.mjs";const d=s("Option",({children:p,label:l})=>{const m=i.Children.toArray(p).reduce((t,r)=>{if(!i.isValidElement(r))return t;let o=r;if(o.$$jsxslack.type==="option"&&(o=c(o,n,!1)),o.$$jsxslack.type!==n){const e=u(r);throw new a(`<Optgroup> must contain only <Option>${e?` but it is included ${e}`:""}.`,r)}return[...t,o]},[]);return{label:f(l),options:m}});export{d as Optgroup};