@servicetitan/titan-chatbot-ui-anvil2 3.1.2 → 3.1.3
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/CHANGELOG.md +12 -0
- package/dist/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.d.ts.map +1 -1
- package/dist/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.js +8 -3
- package/dist/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.js.map +1 -1
- package/dist/components/chatbot/feedback/chatbot-message-feedback-form.d.ts.map +1 -1
- package/dist/components/chatbot/feedback/chatbot-message-feedback-form.js +3 -1
- package/dist/components/chatbot/feedback/chatbot-message-feedback-form.js.map +1 -1
- package/dist/components/chatbot/feedback/chatbot-session-feedback-modal.d.ts.map +1 -1
- package/dist/components/chatbot/feedback/chatbot-session-feedback-modal.js +3 -1
- package/dist/components/chatbot/feedback/chatbot-session-feedback-modal.js.map +1 -1
- package/package.json +8 -14
- package/src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx +20 -4
- package/src/components/chatbot/feedback/chatbot-message-feedback-form.tsx +6 -4
- package/src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx +6 -2
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# v3.1.3 (Fri Aug 22 2025)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- SPA-7126: Removed non-compatible with Anvil2 dependencies [#45](https://github.com/servicetitan/titan-chatbot-client/pull/45) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
|
|
6
|
+
|
|
7
|
+
#### Authors: 1
|
|
8
|
+
|
|
9
|
+
- Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
1
13
|
# v3.1.2 (Fri Aug 15 2025)
|
|
2
14
|
|
|
3
15
|
#### 🐛 Bug Fix
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot-message-feedback-form-guardrail.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chatbot-message-feedback-form-guardrail.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAe,EAAE,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,mCAAmC,EAAE,EA+ChD,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Flex, TextField, Textarea } from '@servicetitan/anvil2';
|
|
3
|
-
import { FormStateErrorBanner } from '@servicetitan/form';
|
|
2
|
+
import { Alert, Flex, TextField, Textarea } from '@servicetitan/anvil2';
|
|
4
3
|
import { useDependencies } from '@servicetitan/react-ioc';
|
|
5
4
|
import { MessageFeedbackGuardrailStore } from '@servicetitan/titan-chatbot-api';
|
|
6
5
|
import classNames from 'classnames';
|
|
@@ -8,9 +7,15 @@ import { observer } from 'mobx-react';
|
|
|
8
7
|
import * as Styles from './chatbot-message-feedback-form.module.less';
|
|
9
8
|
export const ChatbotMessageFeedbackFormGuardrail = observer(() => {
|
|
10
9
|
const [store] = useDependencies(MessageFeedbackGuardrailStore);
|
|
10
|
+
const errors = store.getFormErrors();
|
|
11
|
+
const status = errors.length === 0 ? 'success' : 'danger';
|
|
11
12
|
const onLinkUrlChange = (event) => {
|
|
12
13
|
store.formState.$.linkUrl.onChange(event.target.value);
|
|
13
14
|
};
|
|
14
|
-
return (_jsxs(Flex, { direction: "column", gap: "4", children: [store.formState.error && _jsx(
|
|
15
|
+
return (_jsxs(Flex, { direction: "column", gap: "4", children: [store.formState.error && (_jsx(Alert, { status: status, title: "Form Incomplete", "data-cy": "titan-chatbot-message-feedback-form-error", children: _jsx("ul", { children: errors.map((e, index) => (
|
|
16
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
17
|
+
_jsx("li", { children: e }, index))) }) })), _jsxs("form", { "data-cy": "titan-chatbot-message-feedback-form", children: [_jsx(TextField, { label: "Link to correct article", className: classNames(Styles.formItem), error: store.formState.$.linkUrl.error, value: store.formState.$.linkUrl.value, onChange: onLinkUrlChange, "data-cy": "titan-chatbot-message-feedback-form-link-url" }), _jsx(Textarea, { label: "Notes", className: classNames(Styles.formItem, Styles.textArea), value: store.formState.$.comment.value, onChange: (e) => {
|
|
18
|
+
store.formState.$.comment.onChange(e.currentTarget.value);
|
|
19
|
+
}, onBlur: store.formState.$.comment.enableAutoValidationAndValidate, "data-cy": "titan-chatbot-message-feedback-form-other-comment" })] })] }));
|
|
15
20
|
});
|
|
16
21
|
//# sourceMappingURL=chatbot-message-feedback-form-guardrail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot-message-feedback-form-guardrail.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"chatbot-message-feedback-form-guardrail.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,6CAA6C,CAAC;AAEtE,MAAM,CAAC,MAAM,mCAAmC,GAAO,QAAQ,CAAC,GAAG,EAAE;IACjE,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,6BAA6B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE1D,MAAM,eAAe,GAAG,CAAC,KAAoC,EAAE,EAAE;QAC7D,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAC3B,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,CACtB,KAAC,KAAK,IACF,MAAM,EAAE,MAAM,EACd,KAAK,EAAC,iBAAiB,aACf,2CAA2C,YAEnD,uBACK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACtB,oDAAoD;oBACpD,uBAAiB,CAAC,IAAT,KAAK,CAAU,CAC3B,CAAC,GACD,GACD,CACX,EACD,2BAAc,qCAAqC,aAC/C,KAAC,SAAS,IACN,KAAK,EAAC,yBAAyB,EAC/B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EACtC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,QAAQ,EAAE,eAAe,aACjB,8CAA8C,GACxD,EACF,KAAC,QAAQ,IACL,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EACvD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,QAAQ,EAAE,CAAC,CAAmC,EAAE,EAAE;4BAC9C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC9D,CAAC,EACD,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,aACzD,mDAAmD,GAC7D,IACC,IACJ,CACV,CAAC;AACN,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot-message-feedback-form.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"chatbot-message-feedback-form.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAe,EAAE,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,0BAA0B,EAAE,EAoEvC,CAAC"}
|
|
@@ -13,6 +13,8 @@ export const ChatbotMessageFeedbackForm = observer(() => {
|
|
|
13
13
|
fieldState.onChange(!state.checked);
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
-
return (_jsx("form", { "data-cy": "titan-chatbot-message-feedback-form", children: _jsxs(Flex, { direction: "column", children: [_jsx(Checkbox, { label: "Answer is unrelated to my question", className: Styles.formItem, checked: store.formState.$.unrelated.value, onChange: onCheckboxChange('unrelated'), "data-cy": "titan-chatbot-message-feedback-form-unrelated" }), _jsx(Checkbox, { label: "Answer is unclear, not sure what it means", className: Styles.formItem, checked: store.formState.$.unclear.value, onChange: onCheckboxChange('unclear'), "data-cy": "titan-chatbot-message-feedback-form-unclear" }), _jsx(Checkbox, { label: "Answer doesn\u2019t fully address the question", className: Styles.formItem, checked: store.formState.$.notFull.value, onChange: onCheckboxChange('notFull'), "data-cy": "titan-chatbot-message-feedback-form-not-full" }), _jsx(Checkbox, { label: "Answer is incorrect or doesn\u2019t work", className: Styles.formItem, checked: store.formState.$.incorrect.value, onChange: onCheckboxChange('incorrect'), "data-cy": "titan-chatbot-message-feedback-form-incorrect" }), _jsx(Checkbox, { label: "Other", className: Styles.formItem, checked: store.formState.$.other.value, onChange: onCheckboxChange('other'), "data-cy": "titan-chatbot-message-feedback-form-other" }), store.isTextAreaVisible && (_jsxs("div", { className: "m-inline-start-8", children: [_jsx(Textarea, { className: classNames(Styles.formItem, Styles.textArea), error: store.formState.$.otherComment.error, value: store.formState.$.otherComment.value, onChange:
|
|
16
|
+
return (_jsx("form", { "data-cy": "titan-chatbot-message-feedback-form", children: _jsxs(Flex, { direction: "column", children: [_jsx(Checkbox, { label: "Answer is unrelated to my question", className: Styles.formItem, checked: store.formState.$.unrelated.value, onChange: onCheckboxChange('unrelated'), "data-cy": "titan-chatbot-message-feedback-form-unrelated" }), _jsx(Checkbox, { label: "Answer is unclear, not sure what it means", className: Styles.formItem, checked: store.formState.$.unclear.value, onChange: onCheckboxChange('unclear'), "data-cy": "titan-chatbot-message-feedback-form-unclear" }), _jsx(Checkbox, { label: "Answer doesn\u2019t fully address the question", className: Styles.formItem, checked: store.formState.$.notFull.value, onChange: onCheckboxChange('notFull'), "data-cy": "titan-chatbot-message-feedback-form-not-full" }), _jsx(Checkbox, { label: "Answer is incorrect or doesn\u2019t work", className: Styles.formItem, checked: store.formState.$.incorrect.value, onChange: onCheckboxChange('incorrect'), "data-cy": "titan-chatbot-message-feedback-form-incorrect" }), _jsx(Checkbox, { label: "Other", className: Styles.formItem, checked: store.formState.$.other.value, onChange: onCheckboxChange('other'), "data-cy": "titan-chatbot-message-feedback-form-other" }), store.isTextAreaVisible && (_jsxs("div", { className: "m-inline-start-8", children: [_jsx(Textarea, { className: classNames(Styles.formItem, Styles.textArea), error: store.formState.$.otherComment.error, value: store.formState.$.otherComment.value, onChange: (e) => {
|
|
17
|
+
store.formState.$.otherComment.onChange(e.currentTarget.value);
|
|
18
|
+
}, onBlur: store.formState.$.otherComment.enableAutoValidationAndValidate, "data-cy": "titan-chatbot-message-feedback-form-other-comment" }), _jsx(Text, { size: "small", subdued: true, className: "m-block-end-2", children: "Tell us more about what can be improved." })] }))] }) }));
|
|
17
19
|
});
|
|
18
20
|
//# sourceMappingURL=chatbot-message-feedback-form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot-message-feedback-form.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"chatbot-message-feedback-form.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot-session-feedback-modal.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"chatbot-session-feedback-modal.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAe,EAAE,EAAe,MAAM,OAAO,CAAC;AAErD,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAAC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CA0FnE,CAAC"}
|
|
@@ -20,6 +20,8 @@ export const ChatbotSessionFeedbackModal = provide({
|
|
|
20
20
|
const handleThumbs = useCallback((isThumbsUp) => {
|
|
21
21
|
chatbotFeedbackStore.formState.$.thumbs.onChange(isThumbsUp ? 1 : -1);
|
|
22
22
|
}, [chatbotFeedbackStore]);
|
|
23
|
-
return (_jsxs(Dialog, { onClose: handleClose, open: true, title: "Give Feedback on Titan", "data-cy": "titan-chatbot-session-feedback-modal", children: [_jsx(Dialog.Content, { children: _jsxs(Flex, { direction: "column", gap: "2", className: "m-block-start-6", children: [_jsx(Text, { children: "Was Titan able to help solve your problem?" }), _jsxs(Flex, { direction: "row", gap: "4", alignItems: "center", children: [_jsx(ButtonToggle, { size: "small", "aria-label": "Thumbs Up", title: "Thumbs Up", icon: IconThumbUp, checked: chatbotFeedbackStore.isThumbsUp, onClick: () => handleThumbs(true), "data-cy": "titan-chatbot-session-feedback-thumbs-up" }), _jsx(ButtonToggle, { size: "small", "aria-label": "Thumbs Down", title: "Thumbs Down", icon: IconThumbDown, checked: chatbotFeedbackStore.isThumbsDown, onClick: () => handleThumbs(false), "data-cy": "titan-chatbot-session-feedback-thumbs-down" })] }), _jsx(Textarea, { className: "m-block-start-4", label: "Tell us more", rows: 3, value: chatbotFeedbackStore.formState.$.comment.value, onChange:
|
|
23
|
+
return (_jsxs(Dialog, { onClose: handleClose, open: true, title: "Give Feedback on Titan", "data-cy": "titan-chatbot-session-feedback-modal", children: [_jsx(Dialog.Content, { children: _jsxs(Flex, { direction: "column", gap: "2", className: "m-block-start-6", children: [_jsx(Text, { children: "Was Titan able to help solve your problem?" }), _jsxs(Flex, { direction: "row", gap: "4", alignItems: "center", children: [_jsx(ButtonToggle, { size: "small", "aria-label": "Thumbs Up", title: "Thumbs Up", icon: IconThumbUp, checked: chatbotFeedbackStore.isThumbsUp, onClick: () => handleThumbs(true), "data-cy": "titan-chatbot-session-feedback-thumbs-up" }), _jsx(ButtonToggle, { size: "small", "aria-label": "Thumbs Down", title: "Thumbs Down", icon: IconThumbDown, checked: chatbotFeedbackStore.isThumbsDown, onClick: () => handleThumbs(false), "data-cy": "titan-chatbot-session-feedback-thumbs-down" })] }), _jsx(Textarea, { className: "m-block-start-4", label: "Tell us more", rows: 3, value: chatbotFeedbackStore.formState.$.comment.value, onChange: (e) => {
|
|
24
|
+
chatbotFeedbackStore.formState.$.comment.onChange(e.currentTarget.value);
|
|
25
|
+
}, "data-cy": "titan-chatbot-session-feedback-comment" })] }) }), _jsx(Dialog.Footer, { children: _jsxs(Flex, { direction: "row", justifyContent: "flex-end", gap: "3", children: [_jsx(Button, { onClick: handleClose, "data-cy": "titan-chatbot-session-feedback-cancel", children: "Cancel" }), _jsx(Button, { onClick: handleSubmit, appearance: "primary", disabled: !chatbotFeedbackStore.isValid, "data-cy": "titan-chatbot-session-feedback-submit", children: "Submit Feedback" })] }) })] }));
|
|
24
26
|
}));
|
|
25
27
|
//# sourceMappingURL=chatbot-session-feedback-modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot-session-feedback-modal.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,aAAa,MAAM,iEAAiE,CAAC;AAC5F,OAAO,WAAW,MAAM,+DAA+D,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"chatbot-session-feedback-modal.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/titan-chatbot-ui-anvil2",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.3",
|
|
4
4
|
"description": "Chatbot experience UI package (Anvil2 version)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,32 +17,26 @@
|
|
|
17
17
|
"push:local": "yalc push"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@servicetitan/titan-chat-ui-anvil2": "^3.1.
|
|
21
|
-
"@servicetitan/titan-chat-ui-common": "^3.1.
|
|
22
|
-
"@servicetitan/titan-chatbot-api": "^3.1.
|
|
20
|
+
"@servicetitan/titan-chat-ui-anvil2": "^3.1.3",
|
|
21
|
+
"@servicetitan/titan-chat-ui-common": "^3.1.3",
|
|
22
|
+
"@servicetitan/titan-chatbot-api": "^3.1.3",
|
|
23
23
|
"nanoid": "^5.1.5"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"@servicetitan/anvil2": ">=1.16.0",
|
|
27
|
-
"@servicetitan/confirm": ">=27",
|
|
28
|
-
"@servicetitan/culture": ">=27",
|
|
29
|
-
"@servicetitan/form": ">=27",
|
|
30
|
-
"@servicetitan/form-state": ">=27",
|
|
31
27
|
"@servicetitan/log-service": ">=27",
|
|
32
28
|
"@servicetitan/react-ioc": ">=24",
|
|
33
|
-
"@servicetitan/skeleton": ">=8",
|
|
34
|
-
"@servicetitan/tokens": ">=12.9.0",
|
|
35
29
|
"axios": ">=0.28.0",
|
|
36
30
|
"classnames": ">=2.3.0",
|
|
37
31
|
"formstate": ">=2.0.0",
|
|
38
32
|
"mobx": ">=6",
|
|
39
33
|
"mobx-react": ">=9",
|
|
40
34
|
"mobx-utils": ">=6",
|
|
41
|
-
"react": "
|
|
42
|
-
"react-dom": "
|
|
35
|
+
"react": ">=18",
|
|
36
|
+
"react-dom": ">=18"
|
|
43
37
|
},
|
|
44
38
|
"devDependencies": {
|
|
45
|
-
"@servicetitan/cypress-shared": "^3.1.
|
|
39
|
+
"@servicetitan/cypress-shared": "^3.1.3",
|
|
46
40
|
"cypress": "^14.3.2"
|
|
47
41
|
},
|
|
48
42
|
"keywords": [
|
|
@@ -55,5 +49,5 @@
|
|
|
55
49
|
"cli": {
|
|
56
50
|
"webpack": false
|
|
57
51
|
},
|
|
58
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "55f94919492c182aa6272eb38006c1e064ae04ba"
|
|
59
53
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Flex, TextField, Textarea } from '@servicetitan/anvil2';
|
|
2
|
-
import { FormStateErrorBanner } from '@servicetitan/form';
|
|
1
|
+
import { Alert, Flex, TextField, Textarea } from '@servicetitan/anvil2';
|
|
3
2
|
import { useDependencies } from '@servicetitan/react-ioc';
|
|
4
3
|
import { MessageFeedbackGuardrailStore } from '@servicetitan/titan-chatbot-api';
|
|
5
4
|
import classNames from 'classnames';
|
|
@@ -9,6 +8,8 @@ import * as Styles from './chatbot-message-feedback-form.module.less';
|
|
|
9
8
|
|
|
10
9
|
export const ChatbotMessageFeedbackFormGuardrail: FC = observer(() => {
|
|
11
10
|
const [store] = useDependencies(MessageFeedbackGuardrailStore);
|
|
11
|
+
const errors = store.getFormErrors();
|
|
12
|
+
const status = errors.length === 0 ? 'success' : 'danger';
|
|
12
13
|
|
|
13
14
|
const onLinkUrlChange = (event: ChangeEvent<HTMLInputElement>) => {
|
|
14
15
|
store.formState.$.linkUrl.onChange(event.target.value);
|
|
@@ -16,7 +17,20 @@ export const ChatbotMessageFeedbackFormGuardrail: FC = observer(() => {
|
|
|
16
17
|
|
|
17
18
|
return (
|
|
18
19
|
<Flex direction="column" gap="4">
|
|
19
|
-
{store.formState.error &&
|
|
20
|
+
{store.formState.error && (
|
|
21
|
+
<Alert
|
|
22
|
+
status={status}
|
|
23
|
+
title="Form Incomplete"
|
|
24
|
+
data-cy="titan-chatbot-message-feedback-form-error"
|
|
25
|
+
>
|
|
26
|
+
<ul>
|
|
27
|
+
{errors.map((e, index) => (
|
|
28
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
29
|
+
<li key={index}>{e}</li>
|
|
30
|
+
))}
|
|
31
|
+
</ul>
|
|
32
|
+
</Alert>
|
|
33
|
+
)}
|
|
20
34
|
<form data-cy="titan-chatbot-message-feedback-form">
|
|
21
35
|
<TextField
|
|
22
36
|
label="Link to correct article"
|
|
@@ -30,7 +44,9 @@ export const ChatbotMessageFeedbackFormGuardrail: FC = observer(() => {
|
|
|
30
44
|
label="Notes"
|
|
31
45
|
className={classNames(Styles.formItem, Styles.textArea)}
|
|
32
46
|
value={store.formState.$.comment.value}
|
|
33
|
-
onChange={
|
|
47
|
+
onChange={(e: ChangeEvent<HTMLTextAreaElement>) => {
|
|
48
|
+
store.formState.$.comment.onChange(e.currentTarget.value);
|
|
49
|
+
}}
|
|
34
50
|
onBlur={store.formState.$.comment.enableAutoValidationAndValidate}
|
|
35
51
|
data-cy="titan-chatbot-message-feedback-form-other-comment"
|
|
36
52
|
/>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Checkbox, Flex, Text, Textarea } from '@servicetitan/anvil2';
|
|
2
|
-
import { CheckboxFieldState } from '@servicetitan/form';
|
|
3
2
|
import { useDependencies } from '@servicetitan/react-ioc';
|
|
4
3
|
import { MessageFeedbackStore } from '@servicetitan/titan-chatbot-api';
|
|
5
4
|
import classNames from 'classnames';
|
|
5
|
+
import { FieldState } from 'formstate';
|
|
6
6
|
import { observer } from 'mobx-react';
|
|
7
|
-
import { FC } from 'react';
|
|
7
|
+
import { ChangeEvent, FC } from 'react';
|
|
8
8
|
import * as Styles from './chatbot-message-feedback-form.module.less';
|
|
9
9
|
|
|
10
10
|
export const ChatbotMessageFeedbackForm: FC = observer(() => {
|
|
@@ -12,7 +12,7 @@ export const ChatbotMessageFeedbackForm: FC = observer(() => {
|
|
|
12
12
|
|
|
13
13
|
const onCheckboxChange = (checkbox: keyof MessageFeedbackStore['formState']['$']) => {
|
|
14
14
|
return (_: any, state: any) => {
|
|
15
|
-
const fieldState = store.formState.$[checkbox] as
|
|
15
|
+
const fieldState = store.formState.$[checkbox] as FieldState<boolean>;
|
|
16
16
|
fieldState.onChange(!state.checked);
|
|
17
17
|
};
|
|
18
18
|
};
|
|
@@ -61,7 +61,9 @@ export const ChatbotMessageFeedbackForm: FC = observer(() => {
|
|
|
61
61
|
className={classNames(Styles.formItem, Styles.textArea)}
|
|
62
62
|
error={store.formState.$.otherComment.error}
|
|
63
63
|
value={store.formState.$.otherComment.value}
|
|
64
|
-
onChange={
|
|
64
|
+
onChange={(e: ChangeEvent<HTMLTextAreaElement>) => {
|
|
65
|
+
store.formState.$.otherComment.onChange(e.currentTarget.value);
|
|
66
|
+
}}
|
|
65
67
|
onBlur={store.formState.$.otherComment.enableAutoValidationAndValidate}
|
|
66
68
|
data-cy="titan-chatbot-message-feedback-form-other-comment"
|
|
67
69
|
/>
|
|
@@ -4,7 +4,7 @@ import IconThumbUp from '@servicetitan/anvil2/assets/icons/material/round/thumb_
|
|
|
4
4
|
import { provide, useDependencies } from '@servicetitan/react-ioc';
|
|
5
5
|
import { CHATBOT_UI_STORE_TOKEN, SessionFeedbackStore } from '@servicetitan/titan-chatbot-api';
|
|
6
6
|
import { observer } from 'mobx-react';
|
|
7
|
-
import { FC, useCallback } from 'react';
|
|
7
|
+
import { ChangeEvent, FC, useCallback } from 'react';
|
|
8
8
|
|
|
9
9
|
export const ChatbotSessionFeedbackModal: FC<{ onClose: () => void }> = provide({
|
|
10
10
|
singletons: [SessionFeedbackStore],
|
|
@@ -66,7 +66,11 @@ export const ChatbotSessionFeedbackModal: FC<{ onClose: () => void }> = provide(
|
|
|
66
66
|
label="Tell us more"
|
|
67
67
|
rows={3}
|
|
68
68
|
value={chatbotFeedbackStore.formState.$.comment.value}
|
|
69
|
-
onChange={
|
|
69
|
+
onChange={(e: ChangeEvent<HTMLTextAreaElement>) => {
|
|
70
|
+
chatbotFeedbackStore.formState.$.comment.onChange(
|
|
71
|
+
e.currentTarget.value
|
|
72
|
+
);
|
|
73
|
+
}}
|
|
70
74
|
data-cy="titan-chatbot-session-feedback-comment"
|
|
71
75
|
/>
|
|
72
76
|
</Flex>
|