Skip to content

Commit dc45a2f

Browse files
committed
feat: add webchatSettingParams as an optional prop to use WebchatSettings component
1 parent dfd7adb commit dc45a2f

File tree

1 file changed

+23
-5
lines changed
  • packages/botonic-plugin-flow-builder/src/action

1 file changed

+23
-5
lines changed

packages/botonic-plugin-flow-builder/src/action/index.tsx

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
import { BotContext, INPUT } from '@botonic/core'
2-
import { ActionRequest, Multichannel, RequestContext } from '@botonic/react'
1+
import { BotContext, INPUT, isDev, isWebchat } from '@botonic/core'
2+
import {
3+
ActionRequest,
4+
Multichannel,
5+
RequestContext,
6+
WebchatSettings,
7+
} from '@botonic/react'
38
import React from 'react'
49

510
import { FlowBuilderApi } from '../api'
@@ -17,6 +22,7 @@ import { getContentsByPayload } from './payload'
1722

1823
export type FlowBuilderActionProps = {
1924
contents: FlowContent[]
25+
webchatSettingsParams?: Record<string, any>
2026
}
2127

2228
export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
@@ -67,19 +73,31 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
6773
}
6874

6975
render(): JSX.Element | JSX.Element[] {
70-
const { contents } = this.props
76+
const { contents, webchatSettingsParams } = this.props
7177
const request = this.context as ActionRequest
72-
return contents.map(content => content.toBotonic(content.id, request))
78+
return (
79+
<>
80+
{contents.map(content => content.toBotonic(content.id, request))}
81+
{(isWebchat(request.session) || isDev(request.session)) &&
82+
!!webchatSettingsParams && (
83+
<WebchatSettings {...webchatSettingsParams} />
84+
)}
85+
</>
86+
)
7387
}
7488
}
7589

7690
export class FlowBuilderMultichannelAction extends FlowBuilderAction {
7791
render(): JSX.Element | JSX.Element[] {
78-
const { contents } = this.props
92+
const { contents, webchatSettingsParams } = this.props
7993
const request = this.context as ActionRequest
8094
return (
8195
<Multichannel text={{ buttonsAsText: false }}>
8296
{contents.map(content => content.toBotonic(content.id, request))}
97+
{(isWebchat(request.session) || isDev(request.session)) &&
98+
!!webchatSettingsParams && (
99+
<WebchatSettings {...webchatSettingsParams} />
100+
)}
83101
</Multichannel>
84102
)
85103
}

0 commit comments

Comments
 (0)