UNPKG

@botonic/react

Version:

Build Chatbots using React

109 lines (95 loc) 2.59 kB
export enum WhatsAppTemplateButtonSubType { URL = 'URL', QUICK_REPLY = 'QUICK_REPLY', PHONE_NUMBER = 'PHONE_NUMBER', VOICE_CALL = 'VOICE_CALL', } export enum WhatsAppTemplateParameterType { PAYLOAD = 'PAYLOAD', TEXT = 'TEXT', IMAGE = 'IMAGE', VIDEO = 'VIDEO', DOCUMENT = 'DOCUMENT', } export enum WhatsAppTemplateComponentType { HEADER = 'HEADER', BODY = 'BODY', FOOTER = 'FOOTER', BUTTONS = 'BUTTONS', BUTTON = 'BUTTON', } export interface WhatsappTemplateHeaderTextParameter { type: WhatsAppTemplateParameterType.TEXT text: string } export interface WhatsappTemplateHeaderImageParameter { type: WhatsAppTemplateParameterType.IMAGE image: { link: string } } export interface WhatsappTemplateHeaderVideoParameter { type: WhatsAppTemplateParameterType.VIDEO video: { link: string } } export interface WhatsappTemplateComponentHeader { type: WhatsAppTemplateComponentType.HEADER parameters: | WhatsappTemplateHeaderTextParameter[] | WhatsappTemplateHeaderImageParameter[] | WhatsappTemplateHeaderVideoParameter[] // | { // type: WhatsAppTemplateParameterType.DOCUMENT // document: string // }[] } export interface WhatsappTemplateComponentBody { type: WhatsAppTemplateComponentType.BODY parameters: { type: WhatsAppTemplateParameterType.TEXT parameter_name: string text: string }[] } export interface WhatsappTemplateComponentFooter { type: WhatsAppTemplateComponentType.FOOTER parameters: { type: WhatsAppTemplateParameterType.TEXT parameter_name: string text: string }[] } export interface WhatsappTemplateComponentButtons { type: WhatsAppTemplateComponentType.BUTTONS buttons: WhatsappTemplateButton[] } export interface WhatsappTemplateQuickReplyButton { type: WhatsAppTemplateComponentType.BUTTON sub_type: WhatsAppTemplateButtonSubType.QUICK_REPLY index: number parameters: { type: WhatsAppTemplateParameterType.PAYLOAD payload: string }[] } export interface WhatsappTemplateUrlButton { type: WhatsAppTemplateComponentType.BUTTON sub_type: WhatsAppTemplateButtonSubType.URL index: number parameters: { type: WhatsAppTemplateParameterType.TEXT text: string // URL dynamic param }[] } export interface WhatsappTemplateVoiceCallButton { type: WhatsAppTemplateComponentType.BUTTON sub_type: WhatsAppTemplateButtonSubType.VOICE_CALL index: number parameters: [] } export type WhatsappTemplateButton = | WhatsappTemplateQuickReplyButton | WhatsappTemplateUrlButton | WhatsappTemplateVoiceCallButton