@botonic/react
Version:
Build Chatbots using React
109 lines (95 loc) • 2.59 kB
text/typescript
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