@mirai/core 0.4.186 → 0.4.188
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/build/components/Chat/Chat.js +7 -3
- package/build/components/Chat/Chat.js.map +1 -1
- package/build/components/Chat/components/Message/Message.Action.js +1 -1
- package/build/components/Chat/components/Message/Message.Action.js.map +1 -1
- package/build/components/Chat/components/Message/Message.js +1 -0
- package/build/components/Chat/components/Message/Message.js.map +1 -1
- package/build/components/Chat/components/Message/components/Card.js +1 -1
- package/build/components/Chat/components/Message/components/Card.js.map +1 -1
- package/package.json +1 -1
|
@@ -49,7 +49,10 @@ const Chat = _ref => {
|
|
|
49
49
|
}
|
|
50
50
|
} = (0, _dataSources.useStore)();
|
|
51
51
|
const [busy, setBusy] = (0, _react.useState)(false);
|
|
52
|
-
const [messages, setMessages] = (0, _react.useState)(storage.get((0, _helpers.getStorageDomain)(components)) || [])
|
|
52
|
+
const [messages, setMessages] = (0, _react.useState)((storage.get((0, _helpers.getStorageDomain)(components)) || []).map(item => ({
|
|
53
|
+
...item,
|
|
54
|
+
storage: true
|
|
55
|
+
})));
|
|
53
56
|
const [online, setOnline] = (0, _react.useState)(false);
|
|
54
57
|
const [visible, setVisible] = (0, _react.useState)(true);
|
|
55
58
|
(0, _react.useEffect)(() => {
|
|
@@ -87,11 +90,12 @@ const Chat = _ref => {
|
|
|
87
90
|
hotel,
|
|
88
91
|
messages: messages.filter(_ref2 => {
|
|
89
92
|
let {
|
|
93
|
+
storage,
|
|
90
94
|
intent,
|
|
91
95
|
text
|
|
92
96
|
} = _ref2;
|
|
93
|
-
return
|
|
94
|
-
}).map(_ref3 => {
|
|
97
|
+
return !storage && (intent || text);
|
|
98
|
+
}).slice(-4).map(_ref3 => {
|
|
95
99
|
let {
|
|
96
100
|
intent,
|
|
97
101
|
text,
|
|
@@ -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","storage","Storage","adapter","LocalAdapter","cache","CHAT_STORAGE_CACHE","connectionInterval","Chat","_ref","others","isMobile","useDevice","value","calendar","components","currency","hotel","locale","occupation","origin","session","skeleton","tags","type","useStore","busy","setBusy","useState","messages","setMessages","getStorageDomain","online","setOnline","visible","setVisible","useEffect","handleOnline","response","ServiceLisa","welcome","context","catch","handleError","addMessage","lisa","slice","clearInterval","setInterval","storeContext","filter","_ref2","intent","text","map","_ref3","form","finder","rates","next","status","handleInput","input","nextMessages","timestamp","Date","getTime","setTimeout","_messages","_messages$response","message","DELAY_RESPONSE","handleAction","undefined","Event","publish","EVENT","LOGIN","nextContext","action","error","console","handleRetry","pop","notify","auto","INTENT_LOCALE","audioNotification","createElement","Fragment","React","Modal","View","className","styles","container","Header","onClose","ScrollView","scrollTo","snap","index","_messages2","Message","concat","disabled","onAction","onRetry","Input","onValue","InputRich","ButtonAvatar","ready","onPress","exports","displayName","propTypes","name","PropTypes","string"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, LocalAdapter, Storage, 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 { CHAT_STORAGE_CACHE, 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, getStorageDomain } from './helpers';\nimport { EVENT } from '../helpers';\n\nconst storage = new Storage({ adapter: LocalAdapter, cache: CHAT_STORAGE_CACHE });\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(storage.get(getStorageDomain(components)) || []);\n const [online, setOnline] = useState(false);\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) {\n if (!messages.length) return addMessage(response, messages);\n set({ lisa: messages[messages.length - 1] });\n }\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [skeleton]);\n\n useEffect(() => {\n storage.set(getStorageDomain(components), messages?.slice(-32) || []);\n }, [components, messages]);\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 const nextContext = { ...storeContext, ...context, form };\n const response = await ServiceLisa.action({ context: nextContext, intent, locale, session }).catch(handleError);\n if (response) addMessage(response, messages, true);\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 handleRetry = async () => {\n setBusy(true);\n\n const nextMessages = [...messages];\n nextMessages.pop();\n\n setMessages(nextMessages);\n const { text: input, response: { form } = {} } = nextMessages[nextMessages.length - 1] || {};\n storeContext = { ...storeContext, 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 };\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 const { response: { form } = {} } = messages.filter((message) => message.auto).pop() || [];\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 {...{ form, online }} onClose={() => setVisible(false)} />\n\n <ScrollView scrollTo={new Date().getTime()} 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 onRetry={index === messages.length - 1 && messages[index - 1]?.text ? handleRetry : undefined}\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 ready={!!messages.length} 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","storage","Storage","adapter","LocalAdapter","cache","CHAT_STORAGE_CACHE","connectionInterval","Chat","_ref","others","isMobile","useDevice","value","calendar","components","currency","hotel","locale","occupation","origin","session","skeleton","tags","type","useStore","busy","setBusy","useState","messages","setMessages","getStorageDomain","map","item","online","setOnline","visible","setVisible","useEffect","handleOnline","response","ServiceLisa","welcome","context","catch","handleError","addMessage","lisa","slice","clearInterval","setInterval","storeContext","filter","_ref2","intent","text","_ref3","form","finder","rates","next","status","handleInput","input","nextMessages","timestamp","Date","getTime","setTimeout","_messages","_messages$response","message","DELAY_RESPONSE","handleAction","undefined","Event","publish","EVENT","LOGIN","nextContext","action","error","console","handleRetry","pop","notify","auto","INTENT_LOCALE","audioNotification","createElement","Fragment","React","Modal","View","className","styles","container","Header","onClose","ScrollView","scrollTo","snap","index","_messages2","Message","concat","disabled","onAction","onRetry","Input","onValue","InputRich","ButtonAvatar","ready","onPress","exports","displayName","propTypes","name","PropTypes","string"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, LocalAdapter, Storage, 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 { CHAT_STORAGE_CACHE, 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, getStorageDomain } from './helpers';\nimport { EVENT } from '../helpers';\n\nconst storage = new Storage({ adapter: LocalAdapter, cache: CHAT_STORAGE_CACHE });\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 (storage.get(getStorageDomain(components)) || []).map((item) => ({ ...item, storage: true })),\n );\n const [online, setOnline] = useState(false);\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) {\n if (!messages.length) return addMessage(response, messages);\n set({ lisa: messages[messages.length - 1] });\n }\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [skeleton]);\n\n useEffect(() => {\n storage.set(getStorageDomain(components), messages?.slice(-32) || []);\n }, [components, messages]);\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(({ storage, intent, text }) => !storage && (intent || text))\n .slice(-4)\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 const nextContext = { ...storeContext, ...context, form };\n const response = await ServiceLisa.action({ context: nextContext, intent, locale, session }).catch(handleError);\n if (response) addMessage(response, messages, true);\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 handleRetry = async () => {\n setBusy(true);\n\n const nextMessages = [...messages];\n nextMessages.pop();\n\n setMessages(nextMessages);\n const { text: input, response: { form } = {} } = nextMessages[nextMessages.length - 1] || {};\n storeContext = { ...storeContext, 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 };\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 const { response: { form } = {} } = messages.filter((message) => message.auto).pop() || [];\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 {...{ form, online }} onClose={() => setVisible(false)} />\n\n <ScrollView scrollTo={new Date().getTime()} 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 onRetry={index === messages.length - 1 && messages[index - 1]?.text ? handleRetry : undefined}\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 ready={!!messages.length} 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.Action.js","names":["_dataSources","require","_locale","_propTypes","_interopRequireDefault","_react","_components","_helpers","_helpers2","_Chat","obj","__esModule","default","DATE_FORMAT","weekday","month","day","Action","_ref","disabled","intent","image","requirement","type","url","value","onPress","onResponse","props","dateFormat","translate","useLocale","hotel","accommodationType","lisa","useStore","handlePress","context","response","form","text","name","Event","publish","EVENT","INPUT_COMPONENT","onSubmit","nextForm","dates","from","to","occupation","rooms","map","_ref2","offerId","caption","_ref3","join","concat","parseDate","length","getAccommodationLabel","plural","createElement","Card","href","icon","getActionIcon","option","exports","propTypes","PropTypes","string","bool","shape","required","oneOf","any","func"],"sources":["../../../../../src/components/Chat/components/Message/Message.Action.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Card } from './components';\nimport { getActionIcon } from './helpers';\nimport { getAccommodationLabel } from '../../../helpers';\nimport { EVENT } from '../../Chat.constants';\n\nconst DATE_FORMAT = { weekday: 'short', month: 'short', day: 'numeric' };\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Action = ({ disabled, intent, image, requirement, type, url, value, onPress, onResponse, ...props }) => {\n const { dateFormat, translate } = useLocale();\n const {\n value: { hotel: { accommodationType } = {}, lisa },\n } = useStore();\n\n const handlePress = () => {\n if (intent) return onPress({ intent, context: value });\n else if (requirement) {\n const { intent, response: { form = {}, value: context = {} } = {} } = lisa;\n if (requirement.value) {\n onResponse({ text, value: requirement.value });\n onPress({\n context,\n intent,\n form: { ...form, [requirement.name]: requirement.value },\n });\n } else Event.publish(EVENT.INPUT_COMPONENT, { requirement, onSubmit: onResponse });\n } else if (type && value) {\n const { intent, response: { form = {}, value: context = {} } = {} } = lisa;\n\n const nextForm = { ...form };\n if (type === 'calendar') nextForm.dates = [value.from, value.to];\n else if (type === 'occupation') nextForm.occupation = value.rooms.map(({ occupation }) => occupation);\n else if (type === 'offer') nextForm.offerId = value;\n\n onResponse({ image, caption, text });\n onPress({ context, intent, form: nextForm });\n }\n };\n\n const caption = type === 'occupation' ? value.rooms.map(({ name }) => name).join(' + ') : props.caption;\n const text =\n type === 'calendar'\n ? `${dateFormat(parseDate(value.from), DATE_FORMAT)} ─ ${dateFormat(parseDate(value.to), DATE_FORMAT)}`\n : type === 'occupation'\n ? `${value.rooms.length} ${getAccommodationLabel(\n { plural: value.rooms.length > 1, type: accommodationType },\n translate,\n )}`\n : props.text;\n\n return (\n <Card\n {...{ caption, disabled, image, text }}\n disabled={intent && disabled}\n href={url}\n icon={getActionIcon(url)}\n option={!image && !disabled && !url}\n onPress={handlePress}\n />\n );\n};\n\nAction.propTypes = {\n caption: PropTypes.string,\n disabled: PropTypes.bool,\n image: PropTypes.string,\n intent: PropTypes.string,\n requirement: PropTypes.shape({\n name: PropTypes.string,\n required: PropTypes.bool,\n text: PropTypes.string,\n type: PropTypes.oneOf(['calendar', 'list', 'occupation', 'offer', 'text']),\n value: PropTypes.any,\n }),\n text: PropTypes.string,\n type: PropTypes.oneOf(['calendar', 'occupation', 'offer']),\n url: PropTypes.string,\n value: PropTypes.any,\n onPress: PropTypes.func,\n onResponse: PropTypes.func,\n};\n\nexport { Action };\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Message.Action.js","names":["_dataSources","require","_locale","_propTypes","_interopRequireDefault","_react","_components","_helpers","_helpers2","_Chat","obj","__esModule","default","DATE_FORMAT","weekday","month","day","Action","_ref","disabled","intent","image","requirement","type","url","value","onPress","onResponse","props","dateFormat","translate","useLocale","hotel","accommodationType","lisa","useStore","handlePress","context","response","form","text","name","Event","publish","EVENT","INPUT_COMPONENT","onSubmit","nextForm","dates","from","to","occupation","rooms","map","_ref2","offerId","caption","_ref3","join","concat","parseDate","length","getAccommodationLabel","plural","createElement","Card","href","icon","getActionIcon","option","undefined","exports","propTypes","PropTypes","string","bool","shape","required","oneOf","any","func"],"sources":["../../../../../src/components/Chat/components/Message/Message.Action.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Card } from './components';\nimport { getActionIcon } from './helpers';\nimport { getAccommodationLabel } from '../../../helpers';\nimport { EVENT } from '../../Chat.constants';\n\nconst DATE_FORMAT = { weekday: 'short', month: 'short', day: 'numeric' };\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Action = ({ disabled, intent, image, requirement, type, url, value, onPress, onResponse, ...props }) => {\n const { dateFormat, translate } = useLocale();\n const {\n value: { hotel: { accommodationType } = {}, lisa },\n } = useStore();\n\n const handlePress = () => {\n if (intent) return onPress({ intent, context: value });\n else if (requirement) {\n const { intent, response: { form = {}, value: context = {} } = {} } = lisa;\n if (requirement.value) {\n onResponse({ text, value: requirement.value });\n onPress({\n context,\n intent,\n form: { ...form, [requirement.name]: requirement.value },\n });\n } else Event.publish(EVENT.INPUT_COMPONENT, { requirement, onSubmit: onResponse });\n } else if (type && value) {\n const { intent, response: { form = {}, value: context = {} } = {} } = lisa;\n\n const nextForm = { ...form };\n if (type === 'calendar') nextForm.dates = [value.from, value.to];\n else if (type === 'occupation') nextForm.occupation = value.rooms.map(({ occupation }) => occupation);\n else if (type === 'offer') nextForm.offerId = value;\n\n onResponse({ image, caption, text });\n onPress({ context, intent, form: nextForm });\n }\n };\n\n const caption = type === 'occupation' ? value.rooms.map(({ name }) => name).join(' + ') : props.caption;\n const text =\n type === 'calendar'\n ? `${dateFormat(parseDate(value.from), DATE_FORMAT)} ─ ${dateFormat(parseDate(value.to), DATE_FORMAT)}`\n : type === 'occupation'\n ? `${value.rooms.length} ${getAccommodationLabel(\n { plural: value.rooms.length > 1, type: accommodationType },\n translate,\n )}`\n : props.text;\n\n return (\n <Card\n {...{ caption, disabled, image, text }}\n disabled={intent && disabled}\n href={url}\n icon={getActionIcon(url)}\n option={!image && !disabled && !url}\n onPress={!disabled ? handlePress : undefined}\n />\n );\n};\n\nAction.propTypes = {\n caption: PropTypes.string,\n disabled: PropTypes.bool,\n image: PropTypes.string,\n intent: PropTypes.string,\n requirement: PropTypes.shape({\n name: PropTypes.string,\n required: PropTypes.bool,\n text: PropTypes.string,\n type: PropTypes.oneOf(['calendar', 'list', 'occupation', 'offer', 'text']),\n value: PropTypes.any,\n }),\n text: PropTypes.string,\n type: PropTypes.oneOf(['calendar', 'occupation', 'offer']),\n url: PropTypes.string,\n value: PropTypes.any,\n onPress: PropTypes.func,\n onResponse: PropTypes.func,\n};\n\nexport { Action };\n"],"mappings":"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"}
|
|
@@ -73,6 +73,7 @@ const Message = _ref => {
|
|
|
73
73
|
option: false
|
|
74
74
|
}, cardResponse)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, actions.map((action, index) => /*#__PURE__*/_react.default.createElement(_Message.Action, _extends({}, action, {
|
|
75
75
|
key: "chat.message:action:".concat(index),
|
|
76
|
+
disabled: disabled,
|
|
76
77
|
onPress: onAction,
|
|
77
78
|
onResponse: setCardResponse
|
|
78
79
|
}))))), onRetry && auto && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","names":["_dataSources","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Message","_Message2","style","_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","Message","_ref","auto","busy","intent","response","text","timestamp","onRetry","others","value","urlParams","useStore","cardResponse","setCardResponse","useState","actions","disabled","testId","onAction","createElement","View","wide","Text","light","small","className","getTime","row","styles","message","content","lisa","Environment","spinner","INTENT","React","action","Card","option","Fragment","map","index","Action","concat","onPress","onResponse","Tooltip","Pressable","Icon","_paragraph","ICON","REFRESH","exports","propTypes","PropTypes","bool","string","shape","arrayOf","requirements","oneOf","array","number","func"],"sources":["../../../../../src/components/Chat/components/Message/Message.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { Icon, Pressable, styles, Text, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { Card, Environment } from './components';\nimport { getTime } from './helpers';\nimport { Action } from './Message.Action';\nimport { INTENT } from './Message.constants';\nimport * as style from './Message.module.css';\nimport { ICON } from '../../../helpers';\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Message = ({ auto, busy = false, intent, response = {}, text, timestamp, onRetry, ...others }) => {\n const { value: { urlParams = {} } = {} } = useStore();\n\n const [cardResponse, setCardResponse] = useState();\n\n const { actions = [] } = response;\n const { disabled, testId, onAction } = others;\n\n return (\n <View testId={testId} wide>\n {timestamp && (\n <Text light small className={style.timestamp}>\n {getTime(timestamp)}\n </Text>\n )}\n <View row wide className={styles(style.message, auto && style.auto)}>\n <View className={styles(style.content, auto && style.auto, busy && style.busy)}>\n {!busy && auto && intent && urlParams.lisa === 'environment' && (\n <Environment {...{ intent, ...others, ...response }} />\n )}\n\n {busy ? (\n <View className={style.spinner} />\n ) : INTENT[intent] ? (\n React.createElement(INTENT[intent], { intent, response, ...others })\n ) : text || response.text ? (\n <Text action className={style.text}>\n {text || response.text}\n </Text>\n ) : null}\n\n {cardResponse ? (\n <Card disabled={disabled} option={false} {...cardResponse} />\n ) : (\n <>\n {actions.map((action, index) => (\n <Action\n {...action}\n key={`chat.message:action:${index}`}\n onPress={onAction}\n onResponse={setCardResponse}\n />\n ))}\n </>\n )}\n </View>\n\n {onRetry && auto && (\n <View className={style.actions}>\n <Tooltip text=\"Retry\">\n <Pressable onPress={onRetry}>\n <Icon light _paragraph value={ICON.REFRESH} />\n </Pressable>\n </Tooltip>\n </View>\n )}\n </View>\n </View>\n );\n};\n\nMessage.propTypes = {\n auto: PropTypes.bool,\n busy: PropTypes.bool,\n disabled: PropTypes.bool,\n intent: PropTypes.string,\n response: PropTypes.shape({\n actions: PropTypes.arrayOf(PropTypes.shape({})),\n requirements: PropTypes.shape({}),\n text: PropTypes.string,\n value: PropTypes.oneOf([PropTypes.array, PropTypes.shape({})]),\n }),\n text: PropTypes.string,\n timestamp: PropTypes.number,\n onAction: PropTypes.func,\n onRetry: PropTypes.func,\n};\n\nexport { Message };\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Message.js","names":["_dataSources","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Message","_Message2","style","_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","Message","_ref","auto","busy","intent","response","text","timestamp","onRetry","others","value","urlParams","useStore","cardResponse","setCardResponse","useState","actions","disabled","testId","onAction","createElement","View","wide","Text","light","small","className","getTime","row","styles","message","content","lisa","Environment","spinner","INTENT","React","action","Card","option","Fragment","map","index","Action","concat","onPress","onResponse","Tooltip","Pressable","Icon","_paragraph","ICON","REFRESH","exports","propTypes","PropTypes","bool","string","shape","arrayOf","requirements","oneOf","array","number","func"],"sources":["../../../../../src/components/Chat/components/Message/Message.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { Icon, Pressable, styles, Text, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { Card, Environment } from './components';\nimport { getTime } from './helpers';\nimport { Action } from './Message.Action';\nimport { INTENT } from './Message.constants';\nimport * as style from './Message.module.css';\nimport { ICON } from '../../../helpers';\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Message = ({ auto, busy = false, intent, response = {}, text, timestamp, onRetry, ...others }) => {\n const { value: { urlParams = {} } = {} } = useStore();\n\n const [cardResponse, setCardResponse] = useState();\n\n const { actions = [] } = response;\n const { disabled, testId, onAction } = others;\n\n return (\n <View testId={testId} wide>\n {timestamp && (\n <Text light small className={style.timestamp}>\n {getTime(timestamp)}\n </Text>\n )}\n <View row wide className={styles(style.message, auto && style.auto)}>\n <View className={styles(style.content, auto && style.auto, busy && style.busy)}>\n {!busy && auto && intent && urlParams.lisa === 'environment' && (\n <Environment {...{ intent, ...others, ...response }} />\n )}\n\n {busy ? (\n <View className={style.spinner} />\n ) : INTENT[intent] ? (\n React.createElement(INTENT[intent], { intent, response, ...others })\n ) : text || response.text ? (\n <Text action className={style.text}>\n {text || response.text}\n </Text>\n ) : null}\n\n {cardResponse ? (\n <Card disabled={disabled} option={false} {...cardResponse} />\n ) : (\n <>\n {actions.map((action, index) => (\n <Action\n {...action}\n key={`chat.message:action:${index}`}\n disabled={disabled}\n onPress={onAction}\n onResponse={setCardResponse}\n />\n ))}\n </>\n )}\n </View>\n\n {onRetry && auto && (\n <View className={style.actions}>\n <Tooltip text=\"Retry\">\n <Pressable onPress={onRetry}>\n <Icon light _paragraph value={ICON.REFRESH} />\n </Pressable>\n </Tooltip>\n </View>\n )}\n </View>\n </View>\n );\n};\n\nMessage.propTypes = {\n auto: PropTypes.bool,\n busy: PropTypes.bool,\n disabled: PropTypes.bool,\n intent: PropTypes.string,\n response: PropTypes.shape({\n actions: PropTypes.arrayOf(PropTypes.shape({})),\n requirements: PropTypes.shape({}),\n text: PropTypes.string,\n value: PropTypes.oneOf([PropTypes.array, PropTypes.shape({})]),\n }),\n text: PropTypes.string,\n timestamp: PropTypes.number,\n onAction: PropTypes.func,\n onRetry: PropTypes.func,\n};\n\nexport { Message };\n"],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ const Card = function () {
|
|
|
40
40
|
const pressable = !!onPress || !!href;
|
|
41
41
|
return /*#__PURE__*/_react.default.createElement(_ui.Pressable, _extends({}, others, {
|
|
42
42
|
disabled: disabled || !pressable,
|
|
43
|
-
onPress: pressable ? handlePress : undefined,
|
|
43
|
+
onPress: pressable && !disabled ? handlePress : undefined,
|
|
44
44
|
className: (0, _ui.styles)(style.card, checked && style.checked, disabled && !checked && style.disabled, offset && style.offset, pressable && !disabled && style.pressable, others.className)
|
|
45
45
|
}), onPress && option && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
46
46
|
action: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","names":["_ui","require","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_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","Card","caption","children","disabled","href","icon","image","offset","option","text","onPress","others","undefined","checked","setChecked","useState","handlePress","page","window","open","document","title","pressable","createElement","Pressable","className","styles","card","Text","action","View","backgroundImage","concat","Icon","value","bold","wide","small","exports","propTypes","PropTypes","string","any","bool","selected","type","oneOf","func"],"sources":["../../../../../../src/components/Chat/components/Message/components/Card.jsx"],"sourcesContent":["import { Icon, Text, Pressable, styles, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport * as style from './Card.module.css';\n\nconst Card = ({\n caption,\n children,\n disabled = false,\n href,\n icon,\n image,\n offset = true,\n option = true,\n text,\n // type,\n onPress,\n ...others\n} = {}) => {\n const [checked, setChecked] = useState(false);\n\n const handlePress = () => {\n if (href) {\n const page = window.open(href, '_blank');\n page.document.title = 'Loading...';\n } else {\n if (option) setChecked(true);\n onPress();\n }\n };\n\n const pressable = !!onPress || !!href;\n\n return (\n <Pressable\n {...others}\n disabled={disabled || !pressable}\n onPress={pressable ? handlePress : undefined}\n className={styles(\n style.card,\n checked && style.checked,\n disabled && !checked && style.disabled,\n offset && style.offset,\n pressable && !disabled && style.pressable,\n others.className,\n )}\n >\n {onPress && option && <Text action>{checked ? '●' : '○'}</Text>}\n {image && <View className={style.image} style={{ backgroundImage: `url(${image})` }} />}\n {icon && <Icon value={icon} />}\n {(text || caption) && (\n <View>\n {text && (\n <Text action bold wide>\n {text}\n </Text>\n )}\n {caption && <Text small>{caption}</Text>}\n </View>\n )}\n\n {children && <View wide>{children}</View>}\n </Pressable>\n );\n};\n\nCard.propTypes = {\n caption: PropTypes.string,\n children: PropTypes.any,\n disabled: PropTypes.bool,\n href: PropTypes.string,\n icon: PropTypes.string,\n image: PropTypes.string,\n offset: PropTypes.bool,\n option: PropTypes.bool,\n selected: PropTypes.bool,\n text: PropTypes.string,\n type: PropTypes.oneOf(['calendar', 'occupation', 'offer']),\n onPress: PropTypes.func,\n};\n\nexport { Card };\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Card.js","names":["_ui","require","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","_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","Card","caption","children","disabled","href","icon","image","offset","option","text","onPress","others","undefined","checked","setChecked","useState","handlePress","page","window","open","document","title","pressable","createElement","Pressable","className","styles","card","Text","action","View","backgroundImage","concat","Icon","value","bold","wide","small","exports","propTypes","PropTypes","string","any","bool","selected","type","oneOf","func"],"sources":["../../../../../../src/components/Chat/components/Message/components/Card.jsx"],"sourcesContent":["import { Icon, Text, Pressable, styles, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport * as style from './Card.module.css';\n\nconst Card = ({\n caption,\n children,\n disabled = false,\n href,\n icon,\n image,\n offset = true,\n option = true,\n text,\n // type,\n onPress,\n ...others\n} = {}) => {\n const [checked, setChecked] = useState(false);\n\n const handlePress = () => {\n if (href) {\n const page = window.open(href, '_blank');\n page.document.title = 'Loading...';\n } else {\n if (option) setChecked(true);\n onPress();\n }\n };\n\n const pressable = !!onPress || !!href;\n\n return (\n <Pressable\n {...others}\n disabled={disabled || !pressable}\n onPress={pressable && !disabled ? handlePress : undefined}\n className={styles(\n style.card,\n checked && style.checked,\n disabled && !checked && style.disabled,\n offset && style.offset,\n pressable && !disabled && style.pressable,\n others.className,\n )}\n >\n {onPress && option && <Text action>{checked ? '●' : '○'}</Text>}\n {image && <View className={style.image} style={{ backgroundImage: `url(${image})` }} />}\n {icon && <Icon value={icon} />}\n {(text || caption) && (\n <View>\n {text && (\n <Text action bold wide>\n {text}\n </Text>\n )}\n {caption && <Text small>{caption}</Text>}\n </View>\n )}\n\n {children && <View wide>{children}</View>}\n </Pressable>\n );\n};\n\nCard.propTypes = {\n caption: PropTypes.string,\n children: PropTypes.any,\n disabled: PropTypes.bool,\n href: PropTypes.string,\n icon: PropTypes.string,\n image: PropTypes.string,\n offset: PropTypes.bool,\n option: PropTypes.bool,\n selected: PropTypes.bool,\n text: PropTypes.string,\n type: PropTypes.oneOf(['calendar', 'occupation', 'offer']),\n onPress: PropTypes.func,\n};\n\nexport { Card };\n"],"mappings":"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"}
|