@yext/chat-ui-react 0.8.1-alpha → 0.8.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/lib/commonjs/package.json.js +1 -1
- package/lib/commonjs/src/components/ChatInput.js +1 -1
- package/lib/commonjs/src/components/ChatPanel.d.ts.map +1 -1
- package/lib/commonjs/src/components/ChatPanel.js +27 -5
- package/lib/commonjs/src/components/ChatPanel.js.map +1 -1
- package/lib/commonjs/src/components/ChatPopUp.js +2 -2
- package/lib/commonjs/src/components/FeedbackButtons.d.ts +4 -3
- package/lib/commonjs/src/components/FeedbackButtons.d.ts.map +1 -1
- package/lib/commonjs/src/components/FeedbackButtons.js +1 -2
- package/lib/commonjs/src/components/FeedbackButtons.js.map +1 -1
- package/lib/commonjs/src/components/Markdown.d.ts +3 -7
- package/lib/commonjs/src/components/Markdown.d.ts.map +1 -1
- package/lib/commonjs/src/components/Markdown.js +1 -1
- package/lib/commonjs/src/components/Markdown.js.map +1 -1
- package/lib/commonjs/src/components/index.d.ts +1 -4
- package/lib/commonjs/src/components/index.d.ts.map +1 -1
- package/lib/commonjs/src/hooks/index.d.ts +0 -3
- package/lib/commonjs/src/hooks/index.d.ts.map +1 -1
- package/lib/commonjs/src/hooks/useDefaultHandleApiError.d.ts +1 -1
- package/lib/commonjs/src/hooks/useDefaultHandleApiError.js +1 -1
- package/lib/commonjs/src/hooks/useDefaultHandleApiError.js.map +1 -1
- package/lib/commonjs/src/hooks/useFetchInitialMessage.d.ts +1 -1
- package/lib/commonjs/src/hooks/useFetchInitialMessage.js +1 -1
- package/lib/commonjs/src/hooks/useFetchInitialMessage.js.map +1 -1
- package/lib/commonjs/src/hooks/useReportAnalyticsEvent.d.ts +0 -2
- package/lib/commonjs/src/hooks/useReportAnalyticsEvent.d.ts.map +1 -1
- package/lib/commonjs/src/hooks/useReportAnalyticsEvent.js +0 -2
- package/lib/commonjs/src/hooks/useReportAnalyticsEvent.js.map +1 -1
- package/lib/commonjs/src/index.js +0 -10
- package/lib/commonjs/src/index.js.map +1 -1
- package/lib/esm/index.d.ts +0 -82
- package/lib/esm/package.json.mjs +1 -1
- package/lib/esm/src/components/ChatInput.mjs +1 -1
- package/lib/esm/src/components/ChatPanel.d.ts.map +1 -1
- package/lib/esm/src/components/ChatPanel.mjs +28 -6
- package/lib/esm/src/components/ChatPanel.mjs.map +1 -1
- package/lib/esm/src/components/ChatPopUp.mjs +2 -2
- package/lib/esm/src/components/FeedbackButtons.d.ts +4 -3
- package/lib/esm/src/components/FeedbackButtons.d.ts.map +1 -1
- package/lib/esm/src/components/FeedbackButtons.mjs +1 -2
- package/lib/esm/src/components/FeedbackButtons.mjs.map +1 -1
- package/lib/esm/src/components/Markdown.d.ts +3 -7
- package/lib/esm/src/components/Markdown.d.ts.map +1 -1
- package/lib/esm/src/components/Markdown.mjs +1 -1
- package/lib/esm/src/components/Markdown.mjs.map +1 -1
- package/lib/esm/src/components/index.d.ts +1 -4
- package/lib/esm/src/components/index.d.ts.map +1 -1
- package/lib/esm/src/hooks/index.d.ts +0 -3
- package/lib/esm/src/hooks/index.d.ts.map +1 -1
- package/lib/esm/src/hooks/useDefaultHandleApiError.d.ts +1 -1
- package/lib/esm/src/hooks/useDefaultHandleApiError.mjs +1 -1
- package/lib/esm/src/hooks/useDefaultHandleApiError.mjs.map +1 -1
- package/lib/esm/src/hooks/useFetchInitialMessage.d.ts +1 -1
- package/lib/esm/src/hooks/useFetchInitialMessage.mjs +1 -1
- package/lib/esm/src/hooks/useFetchInitialMessage.mjs.map +1 -1
- package/lib/esm/src/hooks/useReportAnalyticsEvent.d.ts +0 -2
- package/lib/esm/src/hooks/useReportAnalyticsEvent.d.ts.map +1 -1
- package/lib/esm/src/hooks/useReportAnalyticsEvent.mjs +0 -2
- package/lib/esm/src/hooks/useReportAnalyticsEvent.mjs.map +1 -1
- package/lib/esm/src/index.mjs +0 -5
- package/lib/esm/src/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/ChatPanel.tsx +34 -10
- package/src/components/FeedbackButtons.tsx +3 -3
- package/src/components/Markdown.tsx +2 -7
- package/src/components/index.ts +1 -6
- package/src/hooks/index.ts +1 -4
- package/src/hooks/useDefaultHandleApiError.ts +1 -1
- package/src/hooks/useFetchInitialMessage.ts +1 -1
- package/src/hooks/useReportAnalyticsEvent.ts +0 -2
- package/lib/commonjs/src/hooks/useScrollToLastMessage.d.ts +0 -15
- package/lib/commonjs/src/hooks/useScrollToLastMessage.d.ts.map +0 -1
- package/lib/commonjs/src/hooks/useScrollToLastMessage.js +0 -45
- package/lib/commonjs/src/hooks/useScrollToLastMessage.js.map +0 -1
- package/lib/esm/src/hooks/useScrollToLastMessage.d.ts +0 -15
- package/lib/esm/src/hooks/useScrollToLastMessage.d.ts.map +0 -1
- package/lib/esm/src/hooks/useScrollToLastMessage.mjs +0 -43
- package/lib/esm/src/hooks/useScrollToLastMessage.mjs.map +0 -1
- package/src/hooks/useScrollToLastMessage.ts +0 -47
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chatHeadlessReact = require('@yext/chat-headless-react');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Scroll the messsages container to the top of the last message whenever there's
|
|
8
|
-
* an update to the messages state.
|
|
9
|
-
*
|
|
10
|
-
* @public
|
|
11
|
-
*
|
|
12
|
-
* @returns a ref to set on the messages container element and
|
|
13
|
-
* a function to set ref on individual message element
|
|
14
|
-
*/
|
|
15
|
-
function useScrollToLastMessage() {
|
|
16
|
-
const messagesRef = React.useRef([]);
|
|
17
|
-
const messagesContainerRef = React.useRef(null);
|
|
18
|
-
const messages = chatHeadlessReact.useChatState((state) => state.conversation.messages);
|
|
19
|
-
// Handle scrolling when messages change
|
|
20
|
-
React.useEffect(() => {
|
|
21
|
-
let scrollTop = 0;
|
|
22
|
-
messagesRef.current = messagesRef.current.slice(0, messages.length);
|
|
23
|
-
// Sums up scroll heights of all messages except the last one
|
|
24
|
-
if (messagesRef?.current.length > 1) {
|
|
25
|
-
scrollTop = messagesRef.current
|
|
26
|
-
.slice(0, -1)
|
|
27
|
-
.map((elem, _) => elem?.scrollHeight ?? 0)
|
|
28
|
-
.reduce((total, height) => total + height);
|
|
29
|
-
}
|
|
30
|
-
// Scroll to the top of the last message
|
|
31
|
-
messagesContainerRef.current?.scroll({
|
|
32
|
-
top: scrollTop,
|
|
33
|
-
behavior: "smooth",
|
|
34
|
-
});
|
|
35
|
-
}, [messages]);
|
|
36
|
-
const setMessageRef = React.useCallback((index) => {
|
|
37
|
-
if (!messagesRef?.current)
|
|
38
|
-
return undefined;
|
|
39
|
-
return (message) => (messagesRef.current[index] = message);
|
|
40
|
-
}, []);
|
|
41
|
-
return [messagesContainerRef, setMessageRef];
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
exports.useScrollToLastMessage = useScrollToLastMessage;
|
|
45
|
-
//# sourceMappingURL=useScrollToLastMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollToLastMessage.js","sources":["../../../../src/hooks/useScrollToLastMessage.ts"],"sourcesContent":["import { useChatState } from \"@yext/chat-headless-react\";\nimport React, { useCallback, useEffect, useRef } from \"react\";\n\n/**\n * Scroll the messsages container to the top of the last message whenever there's\n * an update to the messages state.\n * \n * @public\n * \n * @returns a ref to set on the messages container element and\n * a function to set ref on individual message element\n */\nexport function useScrollToLastMessage(): [\n React.RefObject<HTMLDivElement>,\n (index: number) => ((message: HTMLDivElement) => void) | undefined\n] {\n const messagesRef = useRef<Array<HTMLDivElement | null>>([]);\n const messagesContainerRef = useRef<HTMLDivElement>(null);\n const messages = useChatState((state) => state.conversation.messages);\n\n // Handle scrolling when messages change\n useEffect(() => {\n let scrollTop = 0;\n messagesRef.current = messagesRef.current.slice(0, messages.length);\n\n // Sums up scroll heights of all messages except the last one\n if (messagesRef?.current.length > 1) {\n scrollTop = messagesRef.current\n .slice(0, -1)\n .map((elem, _) => elem?.scrollHeight ?? 0)\n .reduce((total, height) => total + height);\n }\n\n // Scroll to the top of the last message\n messagesContainerRef.current?.scroll({\n top: scrollTop,\n behavior: \"smooth\",\n });\n }, [messages]);\n\n const setMessageRef = useCallback((index) => {\n if (!messagesRef?.current) return undefined;\n return (message: HTMLDivElement) => (messagesRef.current[index] = message);\n }, []);\n\n return [messagesContainerRef, setMessageRef]\n}"],"names":["useRef","useChatState","useEffect","useCallback"],"mappings":";;;;;AAGA;;;;;;;;AAQG;SACa,sBAAsB,GAAA;AAIpC,IAAA,MAAM,WAAW,GAAGA,YAAM,CAA+B,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,oBAAoB,GAAGA,YAAM,CAAiB,IAAI,CAAC,CAAC;AAC1D,IAAA,MAAM,QAAQ,GAAGC,8BAAY,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;;IAGtEC,eAAS,CAAC,MAAK;QACb,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,QAAA,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;AAGpE,QAAA,IAAI,WAAW,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,SAAS,GAAG,WAAW,CAAC,OAAO;AAC5B,iBAAA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACZ,iBAAA,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,YAAY,IAAI,CAAC,CAAC;AACzC,iBAAA,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,GAAG,MAAM,CAAC,CAAC;AAC9C,SAAA;;AAGD,QAAA,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC;AACnC,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC,CAAC;AACL,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEf,IAAA,MAAM,aAAa,GAAGC,iBAAW,CAAC,CAAC,KAAK,KAAI;QAC1C,IAAI,CAAC,WAAW,EAAE,OAAO;AAAE,YAAA,OAAO,SAAS,CAAC;AAC5C,QAAA,OAAO,CAAC,OAAuB,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;KAC5E,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAA;AAC9C;;;;"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Scroll the messsages container to the top of the last message whenever there's
|
|
4
|
-
* an update to the messages state.
|
|
5
|
-
*
|
|
6
|
-
* @public
|
|
7
|
-
*
|
|
8
|
-
* @returns a ref to set on the messages container element and
|
|
9
|
-
* a function to set ref on individual message element
|
|
10
|
-
*/
|
|
11
|
-
export declare function useScrollToLastMessage(): [
|
|
12
|
-
React.RefObject<HTMLDivElement>,
|
|
13
|
-
(index: number) => ((message: HTMLDivElement) => void) | undefined
|
|
14
|
-
];
|
|
15
|
-
//# sourceMappingURL=useScrollToLastMessage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollToLastMessage.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useScrollToLastMessage.ts"],"names":[],"mappings":"AACA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI;IACxC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;IAC/B,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS;CACnE,CA+BA"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { useChatState } from '@yext/chat-headless-react';
|
|
2
|
-
import { useRef, useEffect, useCallback } from 'react';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Scroll the messsages container to the top of the last message whenever there's
|
|
6
|
-
* an update to the messages state.
|
|
7
|
-
*
|
|
8
|
-
* @public
|
|
9
|
-
*
|
|
10
|
-
* @returns a ref to set on the messages container element and
|
|
11
|
-
* a function to set ref on individual message element
|
|
12
|
-
*/
|
|
13
|
-
function useScrollToLastMessage() {
|
|
14
|
-
const messagesRef = useRef([]);
|
|
15
|
-
const messagesContainerRef = useRef(null);
|
|
16
|
-
const messages = useChatState((state) => state.conversation.messages);
|
|
17
|
-
// Handle scrolling when messages change
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
let scrollTop = 0;
|
|
20
|
-
messagesRef.current = messagesRef.current.slice(0, messages.length);
|
|
21
|
-
// Sums up scroll heights of all messages except the last one
|
|
22
|
-
if (messagesRef?.current.length > 1) {
|
|
23
|
-
scrollTop = messagesRef.current
|
|
24
|
-
.slice(0, -1)
|
|
25
|
-
.map((elem, _) => elem?.scrollHeight ?? 0)
|
|
26
|
-
.reduce((total, height) => total + height);
|
|
27
|
-
}
|
|
28
|
-
// Scroll to the top of the last message
|
|
29
|
-
messagesContainerRef.current?.scroll({
|
|
30
|
-
top: scrollTop,
|
|
31
|
-
behavior: "smooth",
|
|
32
|
-
});
|
|
33
|
-
}, [messages]);
|
|
34
|
-
const setMessageRef = useCallback((index) => {
|
|
35
|
-
if (!messagesRef?.current)
|
|
36
|
-
return undefined;
|
|
37
|
-
return (message) => (messagesRef.current[index] = message);
|
|
38
|
-
}, []);
|
|
39
|
-
return [messagesContainerRef, setMessageRef];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export { useScrollToLastMessage };
|
|
43
|
-
//# sourceMappingURL=useScrollToLastMessage.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollToLastMessage.mjs","sources":["../../../../src/hooks/useScrollToLastMessage.ts"],"sourcesContent":["import { useChatState } from \"@yext/chat-headless-react\";\nimport React, { useCallback, useEffect, useRef } from \"react\";\n\n/**\n * Scroll the messsages container to the top of the last message whenever there's\n * an update to the messages state.\n * \n * @public\n * \n * @returns a ref to set on the messages container element and\n * a function to set ref on individual message element\n */\nexport function useScrollToLastMessage(): [\n React.RefObject<HTMLDivElement>,\n (index: number) => ((message: HTMLDivElement) => void) | undefined\n] {\n const messagesRef = useRef<Array<HTMLDivElement | null>>([]);\n const messagesContainerRef = useRef<HTMLDivElement>(null);\n const messages = useChatState((state) => state.conversation.messages);\n\n // Handle scrolling when messages change\n useEffect(() => {\n let scrollTop = 0;\n messagesRef.current = messagesRef.current.slice(0, messages.length);\n\n // Sums up scroll heights of all messages except the last one\n if (messagesRef?.current.length > 1) {\n scrollTop = messagesRef.current\n .slice(0, -1)\n .map((elem, _) => elem?.scrollHeight ?? 0)\n .reduce((total, height) => total + height);\n }\n\n // Scroll to the top of the last message\n messagesContainerRef.current?.scroll({\n top: scrollTop,\n behavior: \"smooth\",\n });\n }, [messages]);\n\n const setMessageRef = useCallback((index) => {\n if (!messagesRef?.current) return undefined;\n return (message: HTMLDivElement) => (messagesRef.current[index] = message);\n }, []);\n\n return [messagesContainerRef, setMessageRef]\n}"],"names":[],"mappings":";;;AAGA;;;;;;;;AAQG;SACa,sBAAsB,GAAA;AAIpC,IAAA,MAAM,WAAW,GAAG,MAAM,CAA+B,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,oBAAoB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAC1D,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;;IAGtE,SAAS,CAAC,MAAK;QACb,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,QAAA,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;AAGpE,QAAA,IAAI,WAAW,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,SAAS,GAAG,WAAW,CAAC,OAAO;AAC5B,iBAAA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACZ,iBAAA,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,YAAY,IAAI,CAAC,CAAC;AACzC,iBAAA,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,GAAG,MAAM,CAAC,CAAC;AAC9C,SAAA;;AAGD,QAAA,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC;AACnC,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC,CAAC;AACL,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEf,IAAA,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAK,KAAI;QAC1C,IAAI,CAAC,WAAW,EAAE,OAAO;AAAE,YAAA,OAAO,SAAS,CAAC;AAC5C,QAAA,OAAO,CAAC,OAAuB,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;KAC5E,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAA;AAC9C;;;;"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { useChatState } from "@yext/chat-headless-react";
|
|
2
|
-
import React, { useCallback, useEffect, useRef } from "react";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Scroll the messsages container to the top of the last message whenever there's
|
|
6
|
-
* an update to the messages state.
|
|
7
|
-
*
|
|
8
|
-
* @public
|
|
9
|
-
*
|
|
10
|
-
* @returns a ref to set on the messages container element and
|
|
11
|
-
* a function to set ref on individual message element
|
|
12
|
-
*/
|
|
13
|
-
export function useScrollToLastMessage(): [
|
|
14
|
-
React.RefObject<HTMLDivElement>,
|
|
15
|
-
(index: number) => ((message: HTMLDivElement) => void) | undefined
|
|
16
|
-
] {
|
|
17
|
-
const messagesRef = useRef<Array<HTMLDivElement | null>>([]);
|
|
18
|
-
const messagesContainerRef = useRef<HTMLDivElement>(null);
|
|
19
|
-
const messages = useChatState((state) => state.conversation.messages);
|
|
20
|
-
|
|
21
|
-
// Handle scrolling when messages change
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
let scrollTop = 0;
|
|
24
|
-
messagesRef.current = messagesRef.current.slice(0, messages.length);
|
|
25
|
-
|
|
26
|
-
// Sums up scroll heights of all messages except the last one
|
|
27
|
-
if (messagesRef?.current.length > 1) {
|
|
28
|
-
scrollTop = messagesRef.current
|
|
29
|
-
.slice(0, -1)
|
|
30
|
-
.map((elem, _) => elem?.scrollHeight ?? 0)
|
|
31
|
-
.reduce((total, height) => total + height);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Scroll to the top of the last message
|
|
35
|
-
messagesContainerRef.current?.scroll({
|
|
36
|
-
top: scrollTop,
|
|
37
|
-
behavior: "smooth",
|
|
38
|
-
});
|
|
39
|
-
}, [messages]);
|
|
40
|
-
|
|
41
|
-
const setMessageRef = useCallback((index) => {
|
|
42
|
-
if (!messagesRef?.current) return undefined;
|
|
43
|
-
return (message: HTMLDivElement) => (messagesRef.current[index] = message);
|
|
44
|
-
}, []);
|
|
45
|
-
|
|
46
|
-
return [messagesContainerRef, setMessageRef]
|
|
47
|
-
}
|