UNPKG

jsx-slack

Version:

Build JSON object for Slack Block Kit surfaces from JSX

3 lines (2 loc) 1.08 kB
import{JSXSlack as l}from"../../jsx.mjs";const s=(t,r=!1)=>l.Children.toArray(t).map(e=>l.isValidElement(e)?r&&e.$$jsxslack.type==="br"?` `:s(e.$$jsxslack.children):e).join(""),a=(t,{emoji:r=!0,layoutTags:e=!1}={})=>({type:"plain_text",text:typeof t=="string"?t:s(t,e),emoji:r}),o=t=>{const r={};let{include:e}=t;return e&&(Array.isArray(e)||(e=e.split(" ")),e=[...new Set(e)].filter(n=>["im","mpim","private","public"].includes(n)),e.length>0&&(r.include=e)),t.excludeBotUsers!==void 0&&(r.exclude_bot_users=!!t.excludeBotUsers),t.excludeExternalSharedChannels!==void 0&&(r.exclude_external_shared_channels=!!t.excludeExternalSharedChannels),Object.keys(r).length>0?r:void 0},c=t=>{const r={};let{dispatchAction:e}=t;if(typeof e!="boolean"&&e){Array.isArray(e)||(e=e.split(" "));const n=[...new Set(e.filter(i=>["onEnterPressed","onCharacterEntered"].includes(i)).map(i=>i==="onEnterPressed"?"on_enter_pressed":"on_character_entered"))];n.length>0&&(r.trigger_actions_on=n)}return Object.keys(r).length>0?r:void 0};export{o as filter,c as inputDispatchActionConfig,a as plainText};