@constructor-io/constructorio-ui-pia 2.2.0 → 2.2.1
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/README.md +8 -0
- package/dist/constructorio-ui-pia-bundled.js +13 -13
- package/lib/cjs/components/CioPia/CioPia.js +1 -1
- package/lib/cjs/hooks/useConversation.js +4 -2
- package/lib/cjs/version.js +1 -1
- package/lib/mjs/components/CioPia/CioPia.js +1 -1
- package/lib/mjs/hooks/useConversation.js +3 -2
- package/lib/mjs/version.js +1 -1
- package/lib/types/components/CioPia/CioPia.d.ts +12 -0
- package/lib/types/hooks/useConversation.d.ts +3 -2
- package/lib/types/types.d.ts +4 -0
- package/lib/types/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -29,7 +29,7 @@ function CioPia(props) {
|
|
|
29
29
|
suggestedQuestionsParameters,
|
|
30
30
|
formatImageUrl: formatters === null || formatters === void 0 ? void 0 : formatters.formatImageUrl,
|
|
31
31
|
});
|
|
32
|
-
const { currentQuestion, displayedQuestions, conversationHistory, currentAnswer, currentItems, isLoading, error, handleSubmitQuestion, resetState, } = (0, useConversation_1.default)({ pia, itemId, isConversation });
|
|
32
|
+
const { currentQuestion, displayedQuestions, conversationHistory, currentAnswer, currentItems, isLoading, error, handleSubmitQuestion, resetState, } = (0, useConversation_1.default)({ pia, itemId, isConversation, callbacks });
|
|
33
33
|
const renderProps = {
|
|
34
34
|
items: currentItems,
|
|
35
35
|
isLoading,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const react_1 = require("react");
|
|
4
|
-
function useConversation({ pia, itemId, isConversation, }) {
|
|
4
|
+
function useConversation({ pia, itemId, isConversation, callbacks, }) {
|
|
5
5
|
var _a, _b, _c, _d;
|
|
6
6
|
const { suggestedQuestions, answers } = pia;
|
|
7
7
|
const { getAnswer } = answers;
|
|
@@ -11,6 +11,8 @@ function useConversation({ pia, itemId, isConversation, }) {
|
|
|
11
11
|
const entryIdRef = (0, react_1.useRef)(0);
|
|
12
12
|
const prevAnswerValueRef = (0, react_1.useRef)((_a = answers.data) === null || _a === void 0 ? void 0 : _a.value);
|
|
13
13
|
const handleSubmitQuestion = (0, react_1.useCallback)((question) => {
|
|
14
|
+
var _a;
|
|
15
|
+
(_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onQuestionSubmit) === null || _a === void 0 ? void 0 : _a.call(callbacks, question);
|
|
14
16
|
setCurrentQuestion(question);
|
|
15
17
|
getAnswer(question);
|
|
16
18
|
if (isConversation) {
|
|
@@ -18,7 +20,7 @@ function useConversation({ pia, itemId, isConversation, }) {
|
|
|
18
20
|
const id = entryIdRef.current;
|
|
19
21
|
setConversationHistory((prev) => [...prev, { id, question, answer: '' }]);
|
|
20
22
|
}
|
|
21
|
-
}, [getAnswer, isConversation]);
|
|
23
|
+
}, [getAnswer, isConversation, callbacks]);
|
|
22
24
|
const resetState = (0, react_1.useCallback)(() => {
|
|
23
25
|
setCurrentQuestion('');
|
|
24
26
|
setDisplayedQuestions(suggestedQuestions.data);
|
package/lib/cjs/version.js
CHANGED
|
@@ -26,7 +26,7 @@ export default function CioPia(props) {
|
|
|
26
26
|
suggestedQuestionsParameters,
|
|
27
27
|
formatImageUrl: formatters?.formatImageUrl,
|
|
28
28
|
});
|
|
29
|
-
const { currentQuestion, displayedQuestions, conversationHistory, currentAnswer, currentItems, isLoading, error, handleSubmitQuestion, resetState, } = useConversation({ pia, itemId, isConversation });
|
|
29
|
+
const { currentQuestion, displayedQuestions, conversationHistory, currentAnswer, currentItems, isLoading, error, handleSubmitQuestion, resetState, } = useConversation({ pia, itemId, isConversation, callbacks });
|
|
30
30
|
const renderProps = {
|
|
31
31
|
items: currentItems,
|
|
32
32
|
isLoading,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
-
export default function useConversation({ pia, itemId, isConversation, }) {
|
|
2
|
+
export default function useConversation({ pia, itemId, isConversation, callbacks, }) {
|
|
3
3
|
const { suggestedQuestions, answers } = pia;
|
|
4
4
|
const { getAnswer } = answers;
|
|
5
5
|
const [currentQuestion, setCurrentQuestion] = useState('');
|
|
@@ -8,6 +8,7 @@ export default function useConversation({ pia, itemId, isConversation, }) {
|
|
|
8
8
|
const entryIdRef = useRef(0);
|
|
9
9
|
const prevAnswerValueRef = useRef(answers.data?.value);
|
|
10
10
|
const handleSubmitQuestion = useCallback((question) => {
|
|
11
|
+
callbacks?.onQuestionSubmit?.(question);
|
|
11
12
|
setCurrentQuestion(question);
|
|
12
13
|
getAnswer(question);
|
|
13
14
|
if (isConversation) {
|
|
@@ -15,7 +16,7 @@ export default function useConversation({ pia, itemId, isConversation, }) {
|
|
|
15
16
|
const id = entryIdRef.current;
|
|
16
17
|
setConversationHistory((prev) => [...prev, { id, question, answer: '' }]);
|
|
17
18
|
}
|
|
18
|
-
}, [getAnswer, isConversation]);
|
|
19
|
+
}, [getAnswer, isConversation, callbacks]);
|
|
19
20
|
const resetState = useCallback(() => {
|
|
20
21
|
setCurrentQuestion('');
|
|
21
22
|
setDisplayedQuestions(suggestedQuestions.data);
|
package/lib/mjs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '2.2.
|
|
1
|
+
export default '2.2.1';
|
|
@@ -10,6 +10,18 @@ export interface CioPiaProps extends IncludeRenderProps<CioPiaRenderProps>, Incl
|
|
|
10
10
|
variationId?: string;
|
|
11
11
|
cioClient?: MockConstructorIOClient;
|
|
12
12
|
displayConfigs?: CioPiaDisplayConfigs;
|
|
13
|
+
/**
|
|
14
|
+
* Callback handlers for user interactions:
|
|
15
|
+
*
|
|
16
|
+
* `onQuestionSubmit: (question: string) => void`
|
|
17
|
+
* Called when a question is submitted (via Enter key, Send button, or suggested question click).
|
|
18
|
+
*
|
|
19
|
+
* `onProductCardClick: (item: Item) => void`
|
|
20
|
+
* Called when a product card in the carousel is clicked.
|
|
21
|
+
*
|
|
22
|
+
* `onFeedback: (type: 'up' | 'down') => void`
|
|
23
|
+
* Called when the user submits positive or negative feedback on an answer.
|
|
24
|
+
*/
|
|
13
25
|
callbacks?: Callbacks;
|
|
14
26
|
/** Define formatter functions outside the component or memoize to avoid unnecessary re-renders. */
|
|
15
27
|
formatters?: Formatters;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { ConversationEntry, Question, Item } from '../types';
|
|
1
|
+
import { Callbacks, ConversationEntry, Question, Item } from '../types';
|
|
2
2
|
import { UseCioPiaReturn } from './useCioPia';
|
|
3
3
|
export interface UseConversationProps {
|
|
4
4
|
pia: UseCioPiaReturn;
|
|
5
5
|
itemId: string;
|
|
6
6
|
isConversation: boolean;
|
|
7
|
+
callbacks?: Callbacks;
|
|
7
8
|
}
|
|
8
9
|
export interface UseConversationReturn {
|
|
9
10
|
currentQuestion: string;
|
|
@@ -16,4 +17,4 @@ export interface UseConversationReturn {
|
|
|
16
17
|
handleSubmitQuestion: (question: string) => void;
|
|
17
18
|
resetState: () => void;
|
|
18
19
|
}
|
|
19
|
-
export default function useConversation({ pia, itemId, isConversation, }: UseConversationProps): UseConversationReturn;
|
|
20
|
+
export default function useConversation({ pia, itemId, isConversation, callbacks, }: UseConversationProps): UseConversationReturn;
|
package/lib/types/types.d.ts
CHANGED
|
@@ -52,7 +52,11 @@ export type Translations = {
|
|
|
52
52
|
'Ask about this product'?: string;
|
|
53
53
|
};
|
|
54
54
|
export interface Callbacks {
|
|
55
|
+
/** Called when a question is submitted (via Enter key, Send button, or suggested question click). */
|
|
56
|
+
onQuestionSubmit?: (question: string) => void;
|
|
57
|
+
/** Called when a product card in the carousel is clicked. */
|
|
55
58
|
onProductCardClick?: (item: Item) => void;
|
|
59
|
+
/** Called when the user submits positive or negative feedback on an answer. */
|
|
56
60
|
onFeedback?: (type: FeedbackType) => void;
|
|
57
61
|
}
|
|
58
62
|
/** Formatter functions for transforming data before display. */
|
package/lib/types/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "2.2.
|
|
1
|
+
declare const _default: "2.2.1";
|
|
2
2
|
export default _default;
|
package/package.json
CHANGED