import { JSXSlack } from '../../jsx'; import { PrivateMetadataTransformer } from './utils'; interface HomeProps { children: JSXSlack.ChildNodes; /** * An identifier for this view to recognize it in various events from Slack. */ callbackId?: string; /** A unique ID for all views on a per-team basis. */ externalId?: string; /** * An optional metadata string for handling stored data in callback events * from Slack API. (3000 characters maximum) * * If not defined, the home tab container will use values defined in * `` as metadata stringified to JSON. * * ### Custom transformer * * You can also customize how to transform hidden values into string by * passing the custom transformer function. * * @example * ```jsx * hidden && new URLSearchParams(hidden).toString()} * > * * * * * ``` * * In this example, the private metadata would be `A=foobar&B=123&C=true` by * transformation using `URLSearchParams`. * * The transformer takes an argument: JSON object of hidden values, or * `undefined` when there was no hidden values. It must return the transformed * string, or `undefined` if won't assign private metadata. */ privateMetadata?: string | PrivateMetadataTransformer; } /** * The container component for the view of * [home tabs](https://api.slack.com/surfaces/tabs). * * `` can include following block elements: * * - `
` (`
`) * - `` (``) * - `` (`
`) * - `
` (`
`) * - `` * - `` * - `` (``) * - `