@botonic/plugin-flow-builder 0.27.8-alpha.0 → 0.27.8-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/content-fields/flow-handoff.d.ts +1 -1
- package/lib/cjs/content-fields/flow-handoff.js +2 -2
- package/lib/cjs/content-fields/flow-handoff.js.map +1 -1
- package/lib/cjs/webview/contents-context.d.ts +1 -1
- package/lib/cjs/webview/contents-context.js +26 -1
- package/lib/cjs/webview/contents-context.js.map +1 -1
- package/lib/cjs/webview/use-webview-contents.js +8 -7
- package/lib/cjs/webview/use-webview-contents.js.map +1 -1
- package/lib/esm/content-fields/flow-handoff.d.ts +1 -1
- package/lib/esm/content-fields/flow-handoff.js +4 -4
- package/lib/esm/content-fields/flow-handoff.js.map +1 -1
- package/lib/esm/webview/contents-context.d.ts +1 -1
- package/lib/esm/webview/contents-context.js +25 -1
- package/lib/esm/webview/contents-context.js.map +1 -1
- package/lib/esm/webview/use-webview-contents.js +8 -7
- package/lib/esm/webview/use-webview-contents.js.map +1 -1
- package/package.json +1 -1
- package/src/content-fields/flow-handoff.tsx +7 -3
- package/src/webview/contents-context.ts +31 -8
- package/src/webview/use-webview-contents.ts +8 -7
|
@@ -10,5 +10,5 @@ export declare class FlowHandoff extends ContentFieldsBase {
|
|
|
10
10
|
static fromHubtypeCMS(cmsHandoff: HtHandoffNode, locale: string, cmsApi: FlowBuilderApi): FlowHandoff;
|
|
11
11
|
private static getOnFinishPayload;
|
|
12
12
|
doHandoff(request: ActionRequest): Promise<void>;
|
|
13
|
-
toBotonic(): JSX.Element;
|
|
13
|
+
toBotonic(id: string, request: ActionRequest): JSX.Element;
|
|
14
14
|
}
|
|
@@ -39,8 +39,8 @@ class FlowHandoff extends content_fields_base_1.ContentFieldsBase {
|
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
toBotonic() {
|
|
43
|
-
return (0, jsx_runtime_1.jsx)(react_1.WebchatSettings, { enableUserInput: true });
|
|
42
|
+
toBotonic(id, request) {
|
|
43
|
+
return (0, core_1.isDev)(request.session) || (0, core_1.isWebchat)(request.session) ? ((0, jsx_runtime_1.jsx)(react_1.WebchatSettings, { enableUserInput: true }, id)) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}));
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
exports.FlowHandoff = FlowHandoff;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-handoff.js","sourceRoot":"","sources":["../../../src/content-fields/flow-handoff.tsx"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"flow-handoff.js","sourceRoot":"","sources":["../../../src/content-fields/flow-handoff.tsx"],"names":[],"mappings":";;;;;AAAA,wCAAgE;AAChE,0CAA+D;AAI/D,+DAAyD;AAGzD,MAAa,WAAY,SAAQ,uCAAiB;IAMhD,MAAM,CAAC,cAAc,CACnB,UAAyB,EACzB,MAAc,EACd,MAAsB;QAEtB,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACjD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QACjC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1E,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACxE,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAA;QAEjE,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAC/B,UAAyB,EACzB,MAAsB;;QAEtB,IAAI,MAAA,UAAU,CAAC,MAAM,0CAAE,EAAE,EAAE;YACzB,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SAC5C;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEK,SAAS,CAAC,OAAsB;;YACpC,MAAM,cAAc,GAAG,IAAI,qBAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1D,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE9D,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;aACzD;YAED,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACvC,cAAc,CAAC,YAAY,CAAC;oBAC1B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ;oBAClD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;iBACjD,CAAC,CAAA;gBACF,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;aAC/B;QACH,CAAC;KAAA;IAED,SAAS,CAAC,EAAU,EAAE,OAAsB;QAC1C,OAAO,IAAA,YAAK,EAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAA,gBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC5D,uBAAC,uBAAe,IAAU,eAAe,EAAE,IAAI,IAAzB,EAAE,CAA2B,CACpD,CAAC,CAAC,CAAC,CACF,kDAAK,CACN,CAAA;IACH,CAAC;CACF;AAxDD,kCAwDC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WebviewContentsContextType } from './types';
|
|
3
|
-
export declare const WebviewContentsContext: import("react").Context<WebviewContentsContextType<
|
|
3
|
+
export declare const WebviewContentsContext: <T>() => import("react").Context<WebviewContentsContextType<T>>;
|
|
@@ -2,10 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebviewContentsContext = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
-
|
|
5
|
+
/*
|
|
6
|
+
Define a generic type parameter for your context
|
|
7
|
+
WebviewContentsContext is a function that returns a context object with the type parameter T
|
|
8
|
+
It is necessary to create the context outside the component
|
|
9
|
+
e.g.
|
|
10
|
+
|
|
11
|
+
interface WebviewContents {
|
|
12
|
+
textIntro: string
|
|
13
|
+
image2: string
|
|
14
|
+
headerWebview: string
|
|
15
|
+
image: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const MyWebviewContentsContext = WebviewContentsContext<WebviewContents>()
|
|
19
|
+
|
|
20
|
+
Then you can use it in your component like this:
|
|
21
|
+
<MyWebviewContentsContext.Provider value={webviewContentsContext}>
|
|
22
|
+
...// your components
|
|
23
|
+
</MyWebviewContentsContext.Provider>
|
|
24
|
+
|
|
25
|
+
In your components you can use the context to read contents like this:
|
|
26
|
+
|
|
27
|
+
const { contents } = useContext(MyWebviewContentsContext)
|
|
28
|
+
*/
|
|
29
|
+
const WebviewContentsContext = () => (0, react_1.createContext)({
|
|
6
30
|
getTextContent: () => '',
|
|
7
31
|
getImageSrc: () => '',
|
|
8
32
|
setCurrentLocale: () => undefined,
|
|
9
33
|
contents: {},
|
|
10
34
|
});
|
|
35
|
+
exports.WebviewContentsContext = WebviewContentsContext;
|
|
11
36
|
//# sourceMappingURL=contents-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contents-context.js","sourceRoot":"","sources":["../../../src/webview/contents-context.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;
|
|
1
|
+
{"version":3,"file":"contents-context.js","sourceRoot":"","sources":["../../../src/webview/contents-context.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;AAIrC;;;;;;;;;;;;;;;;;;;;;;;EAuBE;AACK,MAAM,sBAAsB,GAAG,GAAM,EAAE,CAC5C,IAAA,qBAAa,EAAgC;IAC3C,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;IACrB,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;IACjC,QAAQ,EAAE,EAA6B;CACxC,CAAC,CAAA;AANS,QAAA,sBAAsB,0BAM/B"}
|
|
@@ -24,13 +24,15 @@ function useWebviewContents({ apiUrl = constants_1.FLOW_BUILDER_API_URL_PROD, ve
|
|
|
24
24
|
return (((_b = (_a = imageContents === null || imageContents === void 0 ? void 0 : imageContents.find(imageContent => imageContent.code === contentID)) === null || _a === void 0 ? void 0 : _a.content.image.find(image => image.locale === currentLocale)) === null || _b === void 0 ? void 0 : _b.file) ||
|
|
25
25
|
'');
|
|
26
26
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
(0, react_1.useEffect)(() => {
|
|
28
|
+
if (textContents || imageContents) {
|
|
29
|
+
const contentsObject = {};
|
|
30
|
+
for (const [key, value] of Object.entries(mapContents)) {
|
|
31
|
+
contentsObject[key] = getTextContent(value) || getImageSrc(value);
|
|
32
|
+
}
|
|
33
|
+
setContents(contentsObject);
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
};
|
|
35
|
+
}, [textContents, imageContents, currentLocale]);
|
|
34
36
|
(0, react_1.useEffect)(() => {
|
|
35
37
|
const getResponseContents = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
38
|
const url = `${apiUrl}/webview/${version}`;
|
|
@@ -42,7 +44,6 @@ function useWebviewContents({ apiUrl = constants_1.FLOW_BUILDER_API_URL_PROD, ve
|
|
|
42
44
|
setTextContents(textResponseContents);
|
|
43
45
|
const imageResponseContents = response.data.webview_contents.filter(webviewContent => webviewContent.type === types_2.WebviewContentType.IMAGE);
|
|
44
46
|
setImageContents(imageResponseContents);
|
|
45
|
-
createContentsObject();
|
|
46
47
|
}
|
|
47
48
|
catch (error) {
|
|
48
49
|
console.error('Error fetching webview contents:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":";;;;AAAA,0DAAyB;AACzB,iCAA2C;AAE3C,4CAAwD;AACxD,oCAAiD;AACjD,mCAOgB;AAEhB,SAAgB,kBAAkB,CAAI,EACpC,MAAM,GAAG,qCAAyB,EAClC,OAAO,GAAG,8BAAsB,CAAC,MAAM,EACvC,KAAK,EACL,KAAK,EACL,SAAS,EACT,MAAM,EACN,WAAW,GACgB;IAC3B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAwB,CAAA;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,GAAyB,CAAA;IAC3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EACtC,EAA6B,CAC9B,CAAA;IACD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEzC,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAU,EAAE;;QACnD,OAAO,CACL,CAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CACR,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,0CACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,0CAAE,OAAO;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAU,EAAE;;QAChD,OAAO,CACL,CAAA,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CACT,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,0CACrD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,0CAAE,IAAI;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,
|
|
1
|
+
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,5 @@ export declare class FlowHandoff extends ContentFieldsBase {
|
|
|
10
10
|
static fromHubtypeCMS(cmsHandoff: HtHandoffNode, locale: string, cmsApi: FlowBuilderApi): FlowHandoff;
|
|
11
11
|
private static getOnFinishPayload;
|
|
12
12
|
doHandoff(request: ActionRequest): Promise<void>;
|
|
13
|
-
toBotonic(): JSX.Element;
|
|
13
|
+
toBotonic(id: string, request: ActionRequest): JSX.Element;
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { HandOffBuilder } from '@botonic/core';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { HandOffBuilder, isDev, isWebchat } from '@botonic/core';
|
|
4
4
|
import { WebchatSettings } from '@botonic/react';
|
|
5
5
|
import { ContentFieldsBase } from './content-fields-base';
|
|
6
6
|
export class FlowHandoff extends ContentFieldsBase {
|
|
@@ -36,8 +36,8 @@ export class FlowHandoff extends ContentFieldsBase {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
toBotonic() {
|
|
40
|
-
return _jsx(WebchatSettings, { enableUserInput: true });
|
|
39
|
+
toBotonic(id, request) {
|
|
40
|
+
return isDev(request.session) || isWebchat(request.session) ? (_jsx(WebchatSettings, { enableUserInput: true }, id)) : (_jsx(_Fragment, {}));
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
//# sourceMappingURL=flow-handoff.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-handoff.js","sourceRoot":"","sources":["../../../src/content-fields/flow-handoff.tsx"],"names":[],"mappings":";;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"flow-handoff.js","sourceRoot":"","sources":["../../../src/content-fields/flow-handoff.tsx"],"names":[],"mappings":";;AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAiB,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAI/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IAMhD,MAAM,CAAC,cAAc,CACnB,UAAyB,EACzB,MAAc,EACd,MAAsB;QAEtB,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACjD,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QACjC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1E,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QACxE,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAA;QAEjE,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAC/B,UAAyB,EACzB,MAAsB;;QAEtB,IAAI,MAAA,UAAU,CAAC,MAAM,0CAAE,EAAE,EAAE;YACzB,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SAC5C;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEK,SAAS,CAAC,OAAsB;;YACpC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1D,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE9D,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;aACzD;YAED,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACvC,cAAc,CAAC,YAAY,CAAC;oBAC1B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ;oBAClD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;iBACjD,CAAC,CAAA;gBACF,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;aAC/B;QACH,CAAC;KAAA;IAED,SAAS,CAAC,EAAU,EAAE,OAAsB;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC5D,KAAC,eAAe,IAAU,eAAe,EAAE,IAAI,IAAzB,EAAE,CAA2B,CACpD,CAAC,CAAC,CAAC,CACF,mBAAK,CACN,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WebviewContentsContextType } from './types';
|
|
3
|
-
export declare const WebviewContentsContext: import("react").Context<WebviewContentsContextType<
|
|
3
|
+
export declare const WebviewContentsContext: <T>() => import("react").Context<WebviewContentsContextType<T>>;
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import { createContext } from 'react';
|
|
2
|
-
|
|
2
|
+
/*
|
|
3
|
+
Define a generic type parameter for your context
|
|
4
|
+
WebviewContentsContext is a function that returns a context object with the type parameter T
|
|
5
|
+
It is necessary to create the context outside the component
|
|
6
|
+
e.g.
|
|
7
|
+
|
|
8
|
+
interface WebviewContents {
|
|
9
|
+
textIntro: string
|
|
10
|
+
image2: string
|
|
11
|
+
headerWebview: string
|
|
12
|
+
image: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const MyWebviewContentsContext = WebviewContentsContext<WebviewContents>()
|
|
16
|
+
|
|
17
|
+
Then you can use it in your component like this:
|
|
18
|
+
<MyWebviewContentsContext.Provider value={webviewContentsContext}>
|
|
19
|
+
...// your components
|
|
20
|
+
</MyWebviewContentsContext.Provider>
|
|
21
|
+
|
|
22
|
+
In your components you can use the context to read contents like this:
|
|
23
|
+
|
|
24
|
+
const { contents } = useContext(MyWebviewContentsContext)
|
|
25
|
+
*/
|
|
26
|
+
export const WebviewContentsContext = () => createContext({
|
|
3
27
|
getTextContent: () => '',
|
|
4
28
|
getImageSrc: () => '',
|
|
5
29
|
setCurrentLocale: () => undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contents-context.js","sourceRoot":"","sources":["../../../src/webview/contents-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAIrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"contents-context.js","sourceRoot":"","sources":["../../../src/webview/contents-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAIrC;;;;;;;;;;;;;;;;;;;;;;;EAuBE;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAM,EAAE,CAC5C,aAAa,CAAgC;IAC3C,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;IACrB,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;IACjC,QAAQ,EAAE,EAA6B;CACxC,CAAC,CAAA"}
|
|
@@ -21,13 +21,15 @@ export function useWebviewContents({ apiUrl = FLOW_BUILDER_API_URL_PROD, version
|
|
|
21
21
|
return (((_b = (_a = imageContents === null || imageContents === void 0 ? void 0 : imageContents.find(imageContent => imageContent.code === contentID)) === null || _a === void 0 ? void 0 : _a.content.image.find(image => image.locale === currentLocale)) === null || _b === void 0 ? void 0 : _b.file) ||
|
|
22
22
|
'');
|
|
23
23
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (textContents || imageContents) {
|
|
26
|
+
const contentsObject = {};
|
|
27
|
+
for (const [key, value] of Object.entries(mapContents)) {
|
|
28
|
+
contentsObject[key] = getTextContent(value) || getImageSrc(value);
|
|
29
|
+
}
|
|
30
|
+
setContents(contentsObject);
|
|
28
31
|
}
|
|
29
|
-
|
|
30
|
-
};
|
|
32
|
+
}, [textContents, imageContents, currentLocale]);
|
|
31
33
|
useEffect(() => {
|
|
32
34
|
const getResponseContents = () => __awaiter(this, void 0, void 0, function* () {
|
|
33
35
|
const url = `${apiUrl}/webview/${version}`;
|
|
@@ -39,7 +41,6 @@ export function useWebviewContents({ apiUrl = FLOW_BUILDER_API_URL_PROD, version
|
|
|
39
41
|
setTextContents(textResponseContents);
|
|
40
42
|
const imageResponseContents = response.data.webview_contents.filter(webviewContent => webviewContent.type === WebviewContentType.IMAGE);
|
|
41
43
|
setImageContents(imageResponseContents);
|
|
42
|
-
createContentsObject();
|
|
43
44
|
}
|
|
44
45
|
catch (error) {
|
|
45
46
|
console.error('Error fetching webview contents:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAIL,kBAAkB,GAGnB,MAAM,SAAS,CAAA;AAEhB,MAAM,UAAU,kBAAkB,CAAI,EACpC,MAAM,GAAG,yBAAyB,EAClC,OAAO,GAAG,sBAAsB,CAAC,MAAM,EACvC,KAAK,EACL,KAAK,EACL,SAAS,EACT,MAAM,EACN,WAAW,GACgB;IAC3B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAwB,CAAA;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAyB,CAAA;IAC3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACtC,EAA6B,CAC9B,CAAA;IACD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzC,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAU,EAAE;;QACnD,OAAO,CACL,CAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CACR,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,0CACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,0CAAE,OAAO;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAU,EAAE;;QAChD,OAAO,CACL,CAAA,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CACT,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,0CACrD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,0CAAE,IAAI;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,
|
|
1
|
+
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAIL,kBAAkB,GAGnB,MAAM,SAAS,CAAA;AAEhB,MAAM,UAAU,kBAAkB,CAAI,EACpC,MAAM,GAAG,yBAAyB,EAClC,OAAO,GAAG,sBAAsB,CAAC,MAAM,EACvC,KAAK,EACL,KAAK,EACL,SAAS,EACT,MAAM,EACN,WAAW,GACgB;IAC3B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAwB,CAAA;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAyB,CAAA;IAC3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACtC,EAA6B,CAC9B,CAAA;IACD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzC,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAU,EAAE;;QACnD,OAAO,CACL,CAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CACR,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,0CACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,0CAAE,OAAO;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAU,EAAE;;QAChD,OAAO,CACL,CAAA,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CACT,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,0CACrD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,0CAAE,IAAI;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,aAAa,EAAE;YACjC,MAAM,cAAc,GAAG,EAA6B,CAAA;YACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAS,WAAW,CAAC,EAAE;gBAC9D,cAAc,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAA;aAClE;YACD,WAAW,CAAC,cAAc,CAAC,CAAA;SAC5B;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,GAAS,EAAE;YACrC,MAAM,GAAG,GAAG,GAAG,MAAM,YAAY,OAAO,EAAE,CAAA;YAC1C,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAA0B,GAAG,EAAE;oBAC7D,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;iBACvD,CAAC,CAAA;gBAEF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAChE,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAC1C,CAAA;gBACzB,eAAe,CAAC,oBAAoB,CAAC,CAAA;gBAErC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CACjE,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,kBAAkB,CAAC,KAAK,CAC1C,CAAA;gBAC1B,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;aACxC;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;gBACxD,QAAQ,CAAC,IAAI,CAAC,CAAA;aACf;oBAAS;gBACR,UAAU,CAAC,KAAK,CAAC,CAAA;aAClB;QACH,CAAC,CAAA,CAAA;QACD,mBAAmB,EAAE,CAAA;IACvB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;QACL,SAAS;QACT,KAAK;QACL,sBAAsB,EAAE;YACtB,cAAc;YACd,WAAW;YACX,gBAAgB;YAChB,QAAQ;SACT;KACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HandOffBuilder } from '@botonic/core'
|
|
1
|
+
import { HandOffBuilder, isDev, isWebchat } from '@botonic/core'
|
|
2
2
|
import { ActionRequest, WebchatSettings } from '@botonic/react'
|
|
3
3
|
import React from 'react'
|
|
4
4
|
|
|
@@ -55,7 +55,11 @@ export class FlowHandoff extends ContentFieldsBase {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
toBotonic(): JSX.Element {
|
|
59
|
-
return
|
|
58
|
+
toBotonic(id: string, request: ActionRequest): JSX.Element {
|
|
59
|
+
return isDev(request.session) || isWebchat(request.session) ? (
|
|
60
|
+
<WebchatSettings key={id} enableUserInput={true} />
|
|
61
|
+
) : (
|
|
62
|
+
<></>
|
|
63
|
+
)
|
|
60
64
|
}
|
|
61
65
|
}
|
|
@@ -2,11 +2,34 @@ import { createContext } from 'react'
|
|
|
2
2
|
|
|
3
3
|
import { WebviewContentsContextType } from './types'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
/*
|
|
6
|
+
Define a generic type parameter for your context
|
|
7
|
+
WebviewContentsContext is a function that returns a context object with the type parameter T
|
|
8
|
+
It is necessary to create the context outside the component
|
|
9
|
+
e.g.
|
|
10
|
+
|
|
11
|
+
interface WebviewContents {
|
|
12
|
+
textIntro: string
|
|
13
|
+
image2: string
|
|
14
|
+
headerWebview: string
|
|
15
|
+
image: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const MyWebviewContentsContext = WebviewContentsContext<WebviewContents>()
|
|
19
|
+
|
|
20
|
+
Then you can use it in your component like this:
|
|
21
|
+
<MyWebviewContentsContext.Provider value={webviewContentsContext}>
|
|
22
|
+
...// your components
|
|
23
|
+
</MyWebviewContentsContext.Provider>
|
|
24
|
+
|
|
25
|
+
In your components you can use the context to read contents like this:
|
|
26
|
+
|
|
27
|
+
const { contents } = useContext(MyWebviewContentsContext)
|
|
28
|
+
*/
|
|
29
|
+
export const WebviewContentsContext = <T>() =>
|
|
30
|
+
createContext<WebviewContentsContextType<T>>({
|
|
31
|
+
getTextContent: () => '',
|
|
32
|
+
getImageSrc: () => '',
|
|
33
|
+
setCurrentLocale: () => undefined,
|
|
34
|
+
contents: {} as Record<keyof T, string>,
|
|
35
|
+
})
|
|
@@ -48,13 +48,15 @@ export function useWebviewContents<T>({
|
|
|
48
48
|
)
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (textContents || imageContents) {
|
|
53
|
+
const contentsObject = {} as Record<keyof T, string>
|
|
54
|
+
for (const [key, value] of Object.entries<string>(mapContents)) {
|
|
55
|
+
contentsObject[key] = getTextContent(value) || getImageSrc(value)
|
|
56
|
+
}
|
|
57
|
+
setContents(contentsObject)
|
|
55
58
|
}
|
|
56
|
-
|
|
57
|
-
}
|
|
59
|
+
}, [textContents, imageContents, currentLocale])
|
|
58
60
|
|
|
59
61
|
useEffect(() => {
|
|
60
62
|
const getResponseContents = async () => {
|
|
@@ -73,7 +75,6 @@ export function useWebviewContents<T>({
|
|
|
73
75
|
webviewContent => webviewContent.type === WebviewContentType.IMAGE
|
|
74
76
|
) as WebviewImageContent[]
|
|
75
77
|
setImageContents(imageResponseContents)
|
|
76
|
-
createContentsObject()
|
|
77
78
|
} catch (error) {
|
|
78
79
|
console.error('Error fetching webview contents:', error)
|
|
79
80
|
setError(true)
|