@mirai/core 0.4.132 → 0.4.133
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.
|
@@ -48,7 +48,7 @@ const Chat = _ref => {
|
|
|
48
48
|
const [messages, setMessages] = (0, _react.useState)([]);
|
|
49
49
|
const [online, setOnline] = (0, _react.useState)(false);
|
|
50
50
|
const [scrollTo, setScrollTo] = (0, _react.useState)();
|
|
51
|
-
const [visible, setVisible] = (0, _react.useState)(
|
|
51
|
+
const [visible, setVisible] = (0, _react.useState)(false);
|
|
52
52
|
(0, _react.useEffect)(() => {
|
|
53
53
|
if (skeleton) return;
|
|
54
54
|
(async () => {
|
|
@@ -68,6 +68,27 @@ const Chat = _ref => {
|
|
|
68
68
|
if (visible) setScrollTo(new Date().getTime());
|
|
69
69
|
}, [busy, messages, visible]);
|
|
70
70
|
(0, _react.useEffect)(() => {
|
|
71
|
+
// // ! TODO: It's just a demo
|
|
72
|
+
// if (visible && !messages.length) handleInput('I would like to see all my reservations.');
|
|
73
|
+
// if (visible && !messages.length)
|
|
74
|
+
// setTimeout(() => {
|
|
75
|
+
// handleAction({
|
|
76
|
+
// form: {
|
|
77
|
+
// // hotel: '100376538',
|
|
78
|
+
// dates: ['18/12/2024', '20/12/2024'],
|
|
79
|
+
// occupation: [
|
|
80
|
+
// [
|
|
81
|
+
// { ages: [undefined, undefined], amount: 2, type: 2 },
|
|
82
|
+
// { ages: [2, 4], amount: 4, type: 3 },
|
|
83
|
+
// ],
|
|
84
|
+
// ],
|
|
85
|
+
// promocode: '',
|
|
86
|
+
// },
|
|
87
|
+
// intent: 'BOOKING_CREATE',
|
|
88
|
+
// // intent: 'OFFERS',
|
|
89
|
+
// });
|
|
90
|
+
// }, 10);
|
|
91
|
+
|
|
71
92
|
if (!visible) return clearInterval(connectionInterval);
|
|
72
93
|
connectionInterval = setInterval(handleOnline, online ? 60000 : 10000);
|
|
73
94
|
return () => clearInterval(connectionInterval);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","names":["_dataSources","require","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Chat","_Chat2","_Chat3","style","_components","_helpers","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","connectionInterval","Chat","_ref","others","isMobile","useDevice","value","calendar","components","currency","hotel","locale","occupation","origin","session","skeleton","tags","type","useStore","busy","setBusy","useState","messages","setMessages","online","setOnline","scrollTo","setScrollTo","visible","setVisible","useEffect","handleOnline","response","ServiceLisa","welcome","context","catch","handleError","addMessage","Date","getTime","clearInterval","setInterval","storeContext","filter","_ref2","intent","text","map","_ref3","form","finder","rates","next","status","handleInput","input","nextMessages","timestamp","setTimeout","_messages","_messages$response","message","DELAY_RESPONSE","handleAction","undefined","Event","publish","EVENT","LOGIN","nextContext","action","error","console","notify","lisa","auto","INTENT_LOCALE","audioNotification","createElement","Fragment","React","Modal","View","className","styles","container","Header","onClose","ScrollView","snap","index","Message","concat","disabled","onAction","Input","onValue","InputRich","ButtonAvatar","onPress","exports","displayName","propTypes","name","PropTypes","string"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { ServiceLisa } from '@mirai/services';\nimport { Modal, ScrollView, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { ButtonAvatar } from './Chat.ButtonAvatar';\nimport { DELAY_RESPONSE } from './Chat.constants';\nimport { Header } from './Chat.Header';\nimport * as style from './Chat.module.css';\nimport { Input, InputRich, Message } from './components';\nimport { audioNotification } from './helpers';\nimport { EVENT } from '../helpers';\n\nlet connectionInterval;\n\nconst Chat = ({ ...others }) => {\n const { isMobile } = useDevice();\n const {\n set,\n value: { calendar, components, currency, hotel, locale, occupation, origin, session, skeleton = false, tags, type },\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [messages, setMessages] = useState([]);\n const [online, setOnline] = useState(false);\n const [scrollTo, setScrollTo] = useState();\n const [visible, setVisible] = useState(true);\n\n useEffect(() => {\n if (skeleton) return;\n\n (async () => {\n if (!(await handleOnline())) return;\n const response = await ServiceLisa.welcome({ context: { hotel }, locale, session }).catch(handleError);\n if (response) addMessage(response, messages);\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [skeleton]);\n\n useEffect(() => {\n if (visible) setScrollTo(new Date().getTime());\n }, [busy, messages, visible]);\n\n useEffect(() => {\n if (!visible) return clearInterval(connectionInterval);\n\n connectionInterval = setInterval(handleOnline, online ? 60000 : 10000);\n return () => clearInterval(connectionInterval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [online, visible]);\n\n let storeContext = {\n calendar,\n currency,\n hotel,\n messages: messages\n .filter(({ intent, text }) => !!intent || !!text)\n .map(({ intent, text, response: { form } = {} }) => ({ form, intent, text })),\n occupation,\n origin,\n tags,\n type,\n };\n\n const handleOnline = async () => {\n if (!(components.finder || components.rates)) return;\n\n let next = false;\n const response = await ServiceLisa.status().catch(() => setOnline(next));\n if (response && !online) {\n next = true;\n setOnline(next);\n }\n\n return next;\n };\n\n const handleInput = (input) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n setTimeout(async () => {\n setBusy(true);\n storeContext = { ...storeContext, form: messages[messages.length - 1]?.response?.form };\n const response = await ServiceLisa.message({ context: storeContext, input, locale, session }).catch(handleError);\n if (response) addMessage(response, nextMessages, true);\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleAction = ({ context, form, intent } = {}) => {\n if (intent === 'ACTION_LOGIN') return Event.publish(EVENT.LOGIN, { visible: true });\n setBusy(true);\n\n setTimeout(async () => {\n // ? TODO: Should update messages[] with the answer?\n const nextContext = { ...storeContext, ...context, form };\n const nextMessages = [...messages];\n // const lastMessageIndex = nextContext.length - 1;\n // nextMessages[lastMessageIndex] = {\n // ...nextMessages[lastMessageIndex],\n // response: nextMessages[lastMessageIndex].response\n // ? { ...nextMessages[lastMessageIndex].response, form }\n // : undefined,\n // };\n const response = await ServiceLisa.action({ context: nextContext, intent, locale, session }).catch(handleError);\n\n if (response) {\n // set({ lisa: response });\n // setMessages([...messages, { auto: true, ...response }]);\n // audioNotification();\n addMessage(response, nextMessages, true);\n }\n\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleError = (error) => {\n // eslint-disable-next-line no-console\n console.error('::handleError::', error);\n setOnline(false);\n };\n\n const addMessage = (response = {}, messages = [], notify = false) => {\n if (!response) return;\n\n set({ lisa: response });\n setMessages([...messages, { auto: true, ...response }]);\n\n if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n if (notify) audioNotification();\n };\n\n return !skeleton ? (\n <>\n {React.createElement(\n isMobile ? Modal : View,\n isMobile\n ? { ...others, visible, className: styles(style.container, others.className) }\n : {\n ...others,\n className: styles(style.container, visible && style.visible, others.className),\n 'aria-hidden': visible ? 'false' : 'true',\n },\n <>\n <Header {...{ online }} onClose={() => setVisible(false)} />\n\n <ScrollView scrollTo={scrollTo} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message\n {...message}\n key={`message:${index}`}\n disabled={busy || index < messages.length - 1}\n onAction={handleAction}\n />\n ))}\n {busy && <Message auto busy />}\n </ScrollView>\n\n {online && (\n <>\n <Input disabled={busy} onValue={handleInput} />\n <InputRich onValue={handleAction} />\n </>\n )}\n </>,\n )}\n\n <ButtonAvatar message={messages[0]} visible={visible} onPress={() => setVisible(true)} />\n </>\n ) : null;\n};\n\nChat.displayName = 'Mirai:Core:Chat';\n\nChat.propTypes = {\n name: PropTypes.string,\n};\n\nexport { Chat };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Chat.js","names":["_dataSources","require","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Chat","_Chat2","_Chat3","style","_components","_helpers","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","connectionInterval","Chat","_ref","others","isMobile","useDevice","value","calendar","components","currency","hotel","locale","occupation","origin","session","skeleton","tags","type","useStore","busy","setBusy","useState","messages","setMessages","online","setOnline","scrollTo","setScrollTo","visible","setVisible","useEffect","handleOnline","response","ServiceLisa","welcome","context","catch","handleError","addMessage","Date","getTime","clearInterval","setInterval","storeContext","filter","_ref2","intent","text","map","_ref3","form","finder","rates","next","status","handleInput","input","nextMessages","timestamp","setTimeout","_messages","_messages$response","message","DELAY_RESPONSE","handleAction","undefined","Event","publish","EVENT","LOGIN","nextContext","action","error","console","notify","lisa","auto","INTENT_LOCALE","audioNotification","createElement","Fragment","React","Modal","View","className","styles","container","Header","onClose","ScrollView","snap","index","Message","concat","disabled","onAction","Input","onValue","InputRich","ButtonAvatar","onPress","exports","displayName","propTypes","name","PropTypes","string"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { ServiceLisa } from '@mirai/services';\nimport { Modal, ScrollView, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { ButtonAvatar } from './Chat.ButtonAvatar';\nimport { DELAY_RESPONSE } from './Chat.constants';\nimport { Header } from './Chat.Header';\nimport * as style from './Chat.module.css';\nimport { Input, InputRich, Message } from './components';\nimport { audioNotification } from './helpers';\nimport { EVENT } from '../helpers';\n\nlet connectionInterval;\n\nconst Chat = ({ ...others }) => {\n const { isMobile } = useDevice();\n const {\n set,\n value: { calendar, components, currency, hotel, locale, occupation, origin, session, skeleton = false, tags, type },\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [messages, setMessages] = useState([]);\n const [online, setOnline] = useState(false);\n const [scrollTo, setScrollTo] = useState();\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n if (skeleton) return;\n\n (async () => {\n if (!(await handleOnline())) return;\n const response = await ServiceLisa.welcome({ context: { hotel }, locale, session }).catch(handleError);\n if (response) addMessage(response, messages);\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [skeleton]);\n\n useEffect(() => {\n if (visible) setScrollTo(new Date().getTime());\n }, [busy, messages, visible]);\n\n useEffect(() => {\n // // ! TODO: It's just a demo\n // if (visible && !messages.length) handleInput('I would like to see all my reservations.');\n // if (visible && !messages.length)\n // setTimeout(() => {\n // handleAction({\n // form: {\n // // hotel: '100376538',\n // dates: ['18/12/2024', '20/12/2024'],\n // occupation: [\n // [\n // { ages: [undefined, undefined], amount: 2, type: 2 },\n // { ages: [2, 4], amount: 4, type: 3 },\n // ],\n // ],\n // promocode: '',\n // },\n // intent: 'BOOKING_CREATE',\n // // intent: 'OFFERS',\n // });\n // }, 10);\n\n if (!visible) return clearInterval(connectionInterval);\n\n connectionInterval = setInterval(handleOnline, online ? 60000 : 10000);\n return () => clearInterval(connectionInterval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [online, visible]);\n\n let storeContext = {\n calendar,\n currency,\n hotel,\n messages: messages\n .filter(({ intent, text }) => !!intent || !!text)\n .map(({ intent, text, response: { form } = {} }) => ({ form, intent, text })),\n occupation,\n origin,\n tags,\n type,\n };\n\n const handleOnline = async () => {\n if (!(components.finder || components.rates)) return;\n\n let next = false;\n const response = await ServiceLisa.status().catch(() => setOnline(next));\n if (response && !online) {\n next = true;\n setOnline(next);\n }\n\n return next;\n };\n\n const handleInput = (input) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n setTimeout(async () => {\n setBusy(true);\n storeContext = { ...storeContext, form: messages[messages.length - 1]?.response?.form };\n const response = await ServiceLisa.message({ context: storeContext, input, locale, session }).catch(handleError);\n if (response) addMessage(response, nextMessages, true);\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleAction = ({ context, form, intent } = {}) => {\n if (intent === 'ACTION_LOGIN') return Event.publish(EVENT.LOGIN, { visible: true });\n setBusy(true);\n\n setTimeout(async () => {\n // ? TODO: Should update messages[] with the answer?\n const nextContext = { ...storeContext, ...context, form };\n const nextMessages = [...messages];\n // const lastMessageIndex = nextContext.length - 1;\n // nextMessages[lastMessageIndex] = {\n // ...nextMessages[lastMessageIndex],\n // response: nextMessages[lastMessageIndex].response\n // ? { ...nextMessages[lastMessageIndex].response, form }\n // : undefined,\n // };\n const response = await ServiceLisa.action({ context: nextContext, intent, locale, session }).catch(handleError);\n\n if (response) {\n // set({ lisa: response });\n // setMessages([...messages, { auto: true, ...response }]);\n // audioNotification();\n addMessage(response, nextMessages, true);\n }\n\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleError = (error) => {\n // eslint-disable-next-line no-console\n console.error('::handleError::', error);\n setOnline(false);\n };\n\n const addMessage = (response = {}, messages = [], notify = false) => {\n if (!response) return;\n\n set({ lisa: response });\n setMessages([...messages, { auto: true, ...response }]);\n\n if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n if (notify) audioNotification();\n };\n\n return !skeleton ? (\n <>\n {React.createElement(\n isMobile ? Modal : View,\n isMobile\n ? { ...others, visible, className: styles(style.container, others.className) }\n : {\n ...others,\n className: styles(style.container, visible && style.visible, others.className),\n 'aria-hidden': visible ? 'false' : 'true',\n },\n <>\n <Header {...{ online }} onClose={() => setVisible(false)} />\n\n <ScrollView scrollTo={scrollTo} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message\n {...message}\n key={`message:${index}`}\n disabled={busy || index < messages.length - 1}\n onAction={handleAction}\n />\n ))}\n {busy && <Message auto busy />}\n </ScrollView>\n\n {online && (\n <>\n <Input disabled={busy} onValue={handleInput} />\n <InputRich onValue={handleAction} />\n </>\n )}\n </>,\n )}\n\n <ButtonAvatar message={messages[0]} visible={visible} onPress={() => setVisible(true)} />\n </>\n ) : null;\n};\n\nChat.displayName = 'Mirai:Core:Chat';\n\nChat.propTypes = {\n name: PropTypes.string,\n};\n\nexport { Chat };\n"],"mappings":"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"}
|