@d19n/webchat 1.1.0 → 1.1.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.
Files changed (53) hide show
  1. package/dist/TwilioChat/components/styled/ChatContent.d.ts +1 -2
  2. package/dist/TwilioChat/components/styled/ChatContentList.d.ts +1 -2
  3. package/dist/TwilioChat/components/styled/ChatWrapper.d.ts +1 -2
  4. package/dist/TwilioChat/components/styled/EventPost.d.ts +1 -2
  5. package/dist/TwilioChat/components/styled/Header.d.ts +1 -2
  6. package/dist/TwilioChat/components/styled/InputForm.d.ts +1 -2
  7. package/dist/TwilioChat/components/styled/MyPost.d.ts +1 -2
  8. package/dist/TwilioChat/components/styled/Splitter.d.ts +1 -2
  9. package/dist/TwilioChat/components/styled/WidgetButton.d.ts +1 -2
  10. package/dist/TwilioChat/components/styled/YFPost.d.ts +1 -2
  11. package/dist/_virtual/hoist-non-react-statics.cjs.js +2 -0
  12. package/dist/_virtual/hoist-non-react-statics.cjs.js.map +1 -0
  13. package/dist/_virtual/index11.js +1 -1
  14. package/dist/_virtual/index12.js +2 -0
  15. package/dist/_virtual/index12.js.map +1 -0
  16. package/dist/_virtual/index6.js +1 -1
  17. package/dist/_virtual/index7.js +1 -1
  18. package/dist/_virtual/index8.js +1 -1
  19. package/dist/index.js +4 -9
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +4 -9
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +2 -0
  24. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -0
  25. package/dist/node_modules/@emotion/unitless/dist/unitless.browser.esm.js +2 -0
  26. package/dist/node_modules/@emotion/unitless/dist/unitless.browser.esm.js.map +1 -0
  27. package/dist/node_modules/attr-accept/dist/es/index.js +1 -1
  28. package/dist/node_modules/classnames/index.js +1 -1
  29. package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +2 -0
  30. package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js.map +1 -0
  31. package/dist/node_modules/mdast-util-gfm-autolink-literal/to-markdown.js +1 -1
  32. package/dist/node_modules/mdast-util-gfm-autolink-literal/to-markdown.js.map +1 -1
  33. package/dist/node_modules/mdast-util-gfm-strikethrough/from-markdown.js +1 -1
  34. package/dist/node_modules/mdast-util-gfm-strikethrough/to-markdown.js +1 -1
  35. package/dist/node_modules/mdast-util-gfm-strikethrough/to-markdown.js.map +1 -1
  36. package/dist/node_modules/mdast-util-gfm-table/from-markdown.js +1 -1
  37. package/dist/node_modules/micromark-extension-gfm-autolink-literal/syntax.js +1 -1
  38. package/dist/node_modules/micromark-extension-gfm-autolink-literal/syntax.js.map +1 -1
  39. package/dist/node_modules/micromark-extension-gfm-table/syntax.js +1 -1
  40. package/dist/node_modules/micromark-extension-gfm-task-list-item/syntax.js +1 -1
  41. package/dist/node_modules/micromark-extension-gfm-task-list-item/syntax.js.map +1 -1
  42. package/dist/node_modules/prop-types/index.js +1 -1
  43. package/dist/node_modules/react-bootstrap/esm/Col.js +1 -1
  44. package/dist/node_modules/react-bootstrap/esm/Row.js +1 -1
  45. package/dist/node_modules/react-dropzone/dist/es/utils/index.js +1 -1
  46. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +1 -1
  47. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -1
  48. package/dist/package.json/package.json +2 -6
  49. package/dist/src/TwilioChat/components/ChatHeader.js +1 -1
  50. package/dist/src/TwilioChat/components/ChatHeader.js.map +1 -1
  51. package/dist/src/TwilioChat/components/Message.js +1 -1
  52. package/dist/src/TwilioChat/components/Message.js.map +1 -1
  53. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sources":["../../../../src/TwilioChat/components/Message.tsx"],"sourcesContent":["import React, { useContext, useState, useEffect, memo, useRef } from \"react\";\nimport ChatGlobalContext from \"../../context/ChatGlobalContext\";\nimport icoYouFibre from '../../assets/images/favicon.svg';\nimport linkifyHtml from 'linkify-html';\nimport { Col, Row } from 'react-bootstrap';\nimport { DebounceInput } from 'react-debounce-input';\nimport { BsFiletypePdf } from \"react-icons/bs\";\nimport { BsFiletypeTxt } from \"react-icons/bs\";\nimport { BsFiletypeMp4 } from \"react-icons/bs\";\nimport { BsFiletypeMp3 } from \"react-icons/bs\";\n\nimport moment from 'moment';\nimport { validateForm, validateFormInput } from \"../../utils/validate\";\nimport { chatLocalStorage, loadZipCodesAsync } from \"../../services/chatService\";\nimport EventPost from \"./styled/EventPost\";\nimport MyPost from \"./styled/MyPost\";\nimport YFPost from \"./styled/YFPost\";\n\ninterface Item {\n createdAt: string;\n from?: string | null;\n files?: string | null;\n message: string | null;\n form: FormType | null;\n messageId: string;\n fromId: string;\n senderType: string;\n}\n\ninterface FormType {\n type: string;\n value: Array<{ title: string; action: string; placeholder?: string | null; type?: string; required?: boolean; options?:object }>;\n}\n\ntype Props = {\n item: Item,\n buttonAction: any,\n setChatForm: any,\n};\n\ninterface Result {\n available: boolean | null;\n salesStatus: boolean | null;\n loading: boolean;\n data: Array<{ label: string; value: string; }> | null;\n}\n\nconst Message = ({item, buttonAction, setChatForm }:Props) => {\n const gContext: any = useContext(ChatGlobalContext);\n \n const formRef = useRef<any>(null);\n let [formValues, setFormValues] = useState({});\n const [postCode, setPostCode] = useState('');\n const [postCodeAddress, setPostCodeAddress] = useState('');\n const [invalidFields, setInvalidFields] =useState<Set<string>>(new Set());\n const [searchResult, setSearchResult] = useState<Result>({\n available: false,\n salesStatus: null,\n loading: false,\n data: null,\n });\n \n useEffect(() => { \n setFormValues({});\n setPostCode('');\n formRef.current = null;\n setSearchResult({\n ...searchResult,\n data: null,\n loading: false,\n });\n }, [item]);\n \n useEffect(() => { \n postCode.length > 0\n ? loadOptionsAsync(postCode)\n : setSearchResult({\n ...searchResult,\n data: null,\n });\n }, [postCode]);\n\n const loadOptionsAsync = async(input) => {\n setSearchResult({\n ...searchResult,\n data: null,\n loading: true,\n });\n updateFormValues('address', 'text', null);\n try {\n const zipList = await loadZipCodesAsync(input); \n setSearchResult({\n ...searchResult,\n loading: false,\n data: zipList,\n });\n } catch (error) { console.error('Error fetching ZIP codes:', error); }\n };\n\n const updateFormValues = (action, type, value) => {\n formValues[action] = value;\n const tmpInvalidFields = invalidFields;\n validateFormInput(type, value)?tmpInvalidFields.delete(action):tmpInvalidFields.add(action); \n setInvalidFields(tmpInvalidFields); \n setFormValues({...formValues});\n setChatForm({...formValues});\n };\n\n const getIcon = (url:string) => {\n if(url && typeof window !== 'undefined'){\n const extension = url.split('.').pop()?.toLocaleLowerCase();\n switch(extension){\n case 'pdf': return <BsFiletypePdf className='file' onClick={() => window.open(url,'_blank')}/>; break;\n case 'txt': return <BsFiletypeTxt className='file' onClick={() => window.open(url,'_blank')}/>; break;\n case 'mp4': return <BsFiletypeMp4 className='file' onClick={() => window.open(url,'_blank')}/>; break;\n case 'mp3': return <BsFiletypeMp3 className='file' onClick={() => window.open(url,'_blank')}/>; break;\n case 'svg': return <InlineSvg className='file' url={url} onClick={() => window.open(url,'_blank')} />; break;\n default: return <img className='file' src={url} onClick={() => gContext?.goSetTwilioChat({...gContext?.twilioChat, lightboxUrl: url})} />; break;\n }\n }\n };\n\n const InlineSvg = ({ url, ...props }) => {\n const [svgContent, setSvgContent] = useState<string | null>(null); \n useEffect(() => {\n const fetchSvg = async () => {\n try {\n const response = await fetch(url);\n const svgText = await response.text();\n setSvgContent(svgText);\n } catch (error) {\n console.error(\"Error loading SVG:\", error);\n }\n }; \n fetchSvg();\n }, [url]); \n return (\n <div {...props}\n dangerouslySetInnerHTML={{ __html: svgContent || \"\" }}\n aria-hidden=\"true\"\n />\n );\n };\n\n const agentMessage = (item) => {\n return <>\n <YFPost key={item.messageId}>\n <img src={icoYouFibre} />\n <Col className='p-0 m-0'>\n <div>\n {item.message && <span dangerouslySetInnerHTML={{ __html: linkifyHtml(item.message, { target: \"_blank\" }).replaceAll(/\\r\\n|\\n/g, \"<br />\") }} />}\n </div>\n {Array.isArray(item.files) && item.files.length > 0 && <div className='files'>\n {item.files.map((file) => getIcon(file.url))}\n </div>}\n <Row className='flex justify-between w-100 p-0 m-0 mt-1'>\n <small dangerouslySetInnerHTML={{ __html: item.from }} />\n { item.createdAt && <small className='pt-1'>{moment(item.createdAt).format('HH:mm')}</small> }\n </Row>\n </Col>\n </YFPost>\n </>\n };\n \n const customerMessage = (item) => {\n return <>\n <MyPost key={item.messageId}>\n { !item.form && <>\n {item.message && <span dangerouslySetInnerHTML={{ __html: linkifyHtml(item.message, { target: \"_blank\" }).replaceAll(/\\r\\n|\\n/g, \"<br />\") }} />}\n {Array.isArray(item.files) && item.files.length > 0 && <div className='files'>\n {item.files.map((file) => getIcon(file.url))}\n </div>}\n <Row className='flex justify-between w-100 p-0 m-0'>\n {item.from === 'Client' ? <small>Client</small> : <small dangerouslySetInnerHTML={{ __html: item.from }} /> }\n { item.createdAt && <small className='pt-1'>{moment(item.createdAt).format('HH:mm')}</small> }\n </Row></>}\n { item.form?.type === \"buttons\" && <>\n { item.form?.value.map((itm, i) => <button key={i} onClick={() => buttonAction(itm.action)} dangerouslySetInnerHTML={{ __html: itm.title }} />)}\n </>}\n { item.form?.type === \"form\" && <form ref={formRef} method='get' action='javascript:void(0);'>\n <div className='flex flex-column gap-5'>\n { item.form?.value.map((itm, i) => <> \n { itm?.type !== 'button' ? <><div dangerouslySetInnerHTML={{ __html: itm.title }} className='mt-7 mb-2' />\n { (itm?.type === 'number' || itm?.type === 'email' || itm?.type === 'text') && \n <input\n onChange={(e) => updateFormValues(itm.action, itm?.type, e.target.value)}\n value={formValues[itm.action]}\n placeholder={itm.placeholder}\n maxLength={250}\n {...(itm?.required && { required: true })}\n {...(invalidFields.has(itm.action) && { className: 'invalid' })}\n {...(itm?.type === 'number' && { step: \"0.01\", min: 0, max: 1000000 })}\n type={itm?.type}\n key={i}\n />}\n { itm?.type === 'zip' && <>\n <DebounceInput\n required\n type=\"text\"\n placeholder={itm.placeholder}\n debounceTimeout={700}\n value={postCode}\n onChange={e => {\n setPostCode(e.target.value);\n setPostCodeAddress('');\n updateFormValues(itm.action, 'text', '/');\n }}\n />\n {postCode && <select\n required\n disabled={searchResult.data === null}\n defaultValue={itm.action}\n value={postCodeAddress}\n onChange={(e) => {\n setPostCodeAddress((e.target as HTMLSelectElement).value);\n updateFormValues(itm.action, 'select', (e.target as HTMLSelectElement).value);\n }}\n className={`mt-1 ${invalidFields.has(itm.action) && 'invalid'}`} key={i}>\n <option value={''} disabled selected>{searchResult.loading ? \"Loading...\" : !searchResult.data ? \"\" : \"Select your Address\"}</option>\n {searchResult.data && searchResult.data.map(item => (\n <option value={item.label}>\n {item.label as String}\n </option>\n ))}\n </select>}\n </>\n }\n { itm?.type === 'select' && <select required onChange={(e) => updateFormValues(itm.action, itm?.type, e.target.value)} defaultValue={formValues[itm.action]} value={formValues[itm.action]} key={i}>\n <option disabled selected hidden></option>\n {itm?.options && Object.entries(itm?.options).map(([key, title]) => (\n <option key={key} value={key}>\n {title as String}\n </option>\n ))}\n </select>\n }\n </> : \n <button type='submit' {...(invalidFields.size > 0 ? { disabled: true } : {disabled: false})} style={{marginTop: '15px'}}\n onClick={(e) => {\n const valid:boolean = validateForm(item.form?.value, formValues) || false;\n invalidFields.size === 0 && buttonAction(itm.action);\n const target = e.target as HTMLButtonElement\n target.disabled = valid;\n }} >Start Chat</button>}\n \n </>)}\n </div>\n </form>}\n </MyPost>\n </>\n };\n \n const eventMessage = (item) => {\n return <>\n <EventPost key={item.messageId}>\n <img src={icoYouFibre} /> {item.message && <span dangerouslySetInnerHTML={{ __html: item.message.replaceAll(/\\r\\n|\\n/g, \"<br />\") }} />}\n </EventPost>\n </>\n };\n\n switch(item.senderType){\n case \"AGENT\": return agentMessage(item);\n case \"CUSTOMER\": return customerMessage(item);\n case \"EVENT\": return eventMessage(item);\n default: return customerMessage(item);\n }\n};\n\nexport default Message;"],"names":["Message","_a","item","buttonAction","setChatForm","gContext","useContext","ChatGlobalContext","formRef","useRef","_b","useState","formValues","setFormValues","_c","postCode","setPostCode","_d","postCodeAddress","setPostCodeAddress","_e","Set","invalidFields","setInvalidFields","_f","available","salesStatus","loading","data","searchResult","setSearchResult","useEffect","current","__assign","length","loadOptionsAsync","input","__awaiter","updateFormValues","loadZipCodesAsync","zipList","sent","console","error","error_1","action","type","value","tmpInvalidFields","validateFormInput","delete","add","getIcon","url","window","split","pop","toLocaleLowerCase","React","createElement","BsFiletypePdf","className","onClick","open","BsFiletypeTxt","BsFiletypeMp4","BsFiletypeMp3","InlineSvg","src","goSetTwilioChat","twilioChat","lightboxUrl","props","__rest","svgContent","setSvgContent","fetch","text","svgText","error_2","dangerouslySetInnerHTML","__html","customerMessage","Fragment","MyPost","key","messageId","form","message","linkifyHtml","target","replaceAll","Array","isArray","files","map","file","Row","from","createdAt","moment","format","itm","i","title","ref","method","onChange","e","placeholder","maxLength","required","has","step","min","max","DebounceInput","debounceTimeout","disabled","defaultValue","selected","label","hidden","options","Object","entries","size","style","marginTop","valid","validateForm","senderType","YFPost","icoYouFibre","Col","agentMessage","EventPost","eventMessage"],"mappings":"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"}
1
+ {"version":3,"file":"Message.js","sources":["../../../../src/TwilioChat/components/Message.tsx"],"sourcesContent":["import React, { useContext, useState, useEffect, memo, useRef } from \"react\";\nimport ChatGlobalContext from \"../../context/ChatGlobalContext\";\nimport icoYouFibre from '../../assets/images/favicon.svg';\nimport linkifyHtml from 'linkify-html';\nimport { Col, Row } from 'react-bootstrap';\nimport { DebounceInput } from 'react-debounce-input';\nimport { BsFiletypePdf } from \"react-icons/bs\";\nimport { BsFiletypeTxt } from \"react-icons/bs\";\nimport { BsFiletypeMp4 } from \"react-icons/bs\";\nimport { BsFiletypeMp3 } from \"react-icons/bs\";\n\nimport moment from 'moment';\nimport { validateForm, validateFormInput } from \"../../utils/validate\";\nimport { chatLocalStorage, loadZipCodesAsync } from \"../../services/chatService\";\nimport EventPost from \"./styled/EventPost\";\nimport MyPost from \"./styled/MyPost\";\nimport YFPost from \"./styled/YFPost\";\n\ninterface Item {\n createdAt: string;\n from?: string | null;\n files?: string | null;\n message: string | null;\n form: FormType | null;\n messageId: string;\n fromId: string;\n senderType: string;\n}\n\ninterface FormType {\n type: string;\n value: Array<{ title: string; action: string; placeholder?: string | null; type?: string; required?: boolean; options?:object }>;\n}\n\ntype Props = {\n item: Item,\n buttonAction: any,\n setChatForm: any,\n};\n\ninterface Result {\n available: boolean | null;\n salesStatus: boolean | null;\n loading: boolean;\n data: Array<{ label: string; value: string; }> | null;\n}\n\nconst Message = ({item, buttonAction, setChatForm }:Props) => {\n const gContext: any = useContext(ChatGlobalContext);\n \n const formRef = useRef<any>(null);\n let [formValues, setFormValues] = useState({});\n const [postCode, setPostCode] = useState('');\n const [postCodeAddress, setPostCodeAddress] = useState('');\n const [invalidFields, setInvalidFields] =useState<Set<string>>(new Set());\n const [searchResult, setSearchResult] = useState<Result>({\n available: false,\n salesStatus: null,\n loading: false,\n data: null,\n });\n \n useEffect(() => { \n setFormValues({});\n setPostCode('');\n formRef.current = null;\n setSearchResult({\n ...searchResult,\n data: null,\n loading: false,\n });\n }, [item]);\n \n useEffect(() => { \n postCode.length > 0\n ? loadOptionsAsync(postCode)\n : setSearchResult({\n ...searchResult,\n data: null,\n });\n }, [postCode]);\n\n const loadOptionsAsync = async(input) => {\n setSearchResult({\n ...searchResult,\n data: null,\n loading: true,\n });\n updateFormValues('address', 'text', null);\n try {\n const zipList = await loadZipCodesAsync(input); \n setSearchResult({\n ...searchResult,\n loading: false,\n data: zipList,\n });\n } catch (error) { console.error('Error fetching ZIP codes:', error); }\n };\n\n const updateFormValues = (action, type, value) => {\n formValues[action] = value;\n const tmpInvalidFields = invalidFields;\n validateFormInput(type, value)?tmpInvalidFields.delete(action):tmpInvalidFields.add(action); \n setInvalidFields(tmpInvalidFields); \n setFormValues({...formValues});\n setChatForm({...formValues});\n };\n\n const getIcon = (url:string) => {\n if(url && typeof window !== 'undefined'){\n const extension = url.split('.').pop()?.toLocaleLowerCase();\n const openFile = () => {\n if (typeof window !== 'undefined') {\n window.open(url,'_blank');\n }\n };\n switch(extension){\n case 'pdf': return <BsFiletypePdf className='file' onClick={openFile}/>; break;\n case 'txt': return <BsFiletypeTxt className='file' onClick={openFile}/>; break;\n case 'mp4': return <BsFiletypeMp4 className='file' onClick={openFile}/>; break;\n case 'mp3': return <BsFiletypeMp3 className='file' onClick={openFile}/>; break;\n case 'svg': return <InlineSvg className='file' url={url} onClick={openFile} />; break;\n default: return <img className='file' src={url} onClick={() => gContext?.goSetTwilioChat({...gContext?.twilioChat, lightboxUrl: url})} />; break;\n }\n }\n };\n\n const InlineSvg = ({ url, ...props }) => {\n const [svgContent, setSvgContent] = useState<string | null>(null); \n useEffect(() => {\n const fetchSvg = async () => {\n try {\n const response = await fetch(url);\n const svgText = await response.text();\n setSvgContent(svgText);\n } catch (error) {\n console.error(\"Error loading SVG:\", error);\n }\n }; \n fetchSvg();\n }, [url]); \n return (\n <div {...props}\n dangerouslySetInnerHTML={{ __html: svgContent || \"\" }}\n aria-hidden=\"true\"\n />\n );\n };\n\n const agentMessage = (item) => {\n return <>\n <YFPost key={item.messageId}>\n <img src={icoYouFibre} />\n <Col className='p-0 m-0'>\n <div>\n {item.message && <span dangerouslySetInnerHTML={{ __html: linkifyHtml(item.message, { target: \"_blank\" }).replaceAll(/\\r\\n|\\n/g, \"<br />\") }} />}\n </div>\n {Array.isArray(item.files) && item.files.length > 0 && <div className='files'>\n {item.files.map((file) => getIcon(file.url))}\n </div>}\n <Row className='flex justify-between w-100 p-0 m-0 mt-1'>\n <small dangerouslySetInnerHTML={{ __html: item.from }} />\n { item.createdAt && <small className='pt-1'>{moment(item.createdAt).format('HH:mm')}</small> }\n </Row>\n </Col>\n </YFPost>\n </>\n };\n \n const customerMessage = (item) => {\n return <>\n <MyPost key={item.messageId}>\n { !item.form && <>\n {item.message && <span dangerouslySetInnerHTML={{ __html: linkifyHtml(item.message, { target: \"_blank\" }).replaceAll(/\\r\\n|\\n/g, \"<br />\") }} />}\n {Array.isArray(item.files) && item.files.length > 0 && <div className='files'>\n {item.files.map((file) => getIcon(file.url))}\n </div>}\n <Row className='flex justify-between w-100 p-0 m-0'>\n {item.from === 'Client' ? <small>Client</small> : <small dangerouslySetInnerHTML={{ __html: item.from }} /> }\n { item.createdAt && <small className='pt-1'>{moment(item.createdAt).format('HH:mm')}</small> }\n </Row></>}\n { item.form?.type === \"buttons\" && <>\n { item.form?.value.map((itm, i) => <button key={i} onClick={() => buttonAction(itm.action)} dangerouslySetInnerHTML={{ __html: itm.title }} />)}\n </>}\n { item.form?.type === \"form\" && <form ref={formRef} method='get' action='javascript:void(0);'>\n <div className='flex flex-column gap-5'>\n { item.form?.value.map((itm, i) => <> \n { itm?.type !== 'button' ? <><div dangerouslySetInnerHTML={{ __html: itm.title }} className='mt-7 mb-2' />\n { (itm?.type === 'number' || itm?.type === 'email' || itm?.type === 'text') && \n <input\n onChange={(e) => updateFormValues(itm.action, itm?.type, e.target.value)}\n value={formValues[itm.action]}\n placeholder={itm.placeholder}\n maxLength={250}\n {...(itm?.required && { required: true })}\n {...(invalidFields.has(itm.action) && { className: 'invalid' })}\n {...(itm?.type === 'number' && { step: \"0.01\", min: 0, max: 1000000 })}\n type={itm?.type}\n key={i}\n />}\n { itm?.type === 'zip' && <>\n <DebounceInput\n required\n type=\"text\"\n placeholder={itm.placeholder}\n debounceTimeout={700}\n value={postCode}\n onChange={e => {\n setPostCode(e.target.value);\n setPostCodeAddress('');\n updateFormValues(itm.action, 'text', '/');\n }}\n />\n {postCode && <select\n required\n disabled={searchResult.data === null}\n defaultValue={itm.action}\n value={postCodeAddress}\n onChange={(e) => {\n setPostCodeAddress((e.target as HTMLSelectElement).value);\n updateFormValues(itm.action, 'select', (e.target as HTMLSelectElement).value);\n }}\n className={`mt-1 ${invalidFields.has(itm.action) && 'invalid'}`} key={i}>\n <option value={''} disabled selected>{searchResult.loading ? \"Loading...\" : !searchResult.data ? \"\" : \"Select your Address\"}</option>\n {searchResult.data && searchResult.data.map(item => (\n <option value={item.label}>\n {item.label as String}\n </option>\n ))}\n </select>}\n </>\n }\n { itm?.type === 'select' && <select required onChange={(e) => updateFormValues(itm.action, itm?.type, e.target.value)} defaultValue={formValues[itm.action]} value={formValues[itm.action]} key={i}>\n <option disabled selected hidden></option>\n {itm?.options && Object.entries(itm?.options).map(([key, title]) => (\n <option key={key} value={key}>\n {title as String}\n </option>\n ))}\n </select>\n }\n </> : \n <button type='submit' {...(invalidFields.size > 0 ? { disabled: true } : {disabled: false})} style={{marginTop: '15px'}}\n onClick={(e) => {\n const valid:boolean = validateForm(item.form?.value, formValues) || false;\n invalidFields.size === 0 && buttonAction(itm.action);\n const target = e.target as HTMLButtonElement\n target.disabled = valid;\n }} >Start Chat</button>}\n \n </>)}\n </div>\n </form>}\n </MyPost>\n </>\n };\n \n const eventMessage = (item) => {\n return <>\n <EventPost key={item.messageId}>\n <img src={icoYouFibre} /> {item.message && <span dangerouslySetInnerHTML={{ __html: item.message.replaceAll(/\\r\\n|\\n/g, \"<br />\") }} />}\n </EventPost>\n </>\n };\n\n switch(item.senderType){\n case \"AGENT\": return agentMessage(item);\n case \"CUSTOMER\": return customerMessage(item);\n case \"EVENT\": return eventMessage(item);\n default: return customerMessage(item);\n }\n};\n\nexport default Message;"],"names":["Message","_a","item","buttonAction","setChatForm","gContext","useContext","ChatGlobalContext","formRef","useRef","_b","useState","formValues","setFormValues","_c","postCode","setPostCode","_d","postCodeAddress","setPostCodeAddress","_e","Set","invalidFields","setInvalidFields","_f","available","salesStatus","loading","data","searchResult","setSearchResult","useEffect","current","__assign","length","loadOptionsAsync","input","__awaiter","updateFormValues","loadZipCodesAsync","zipList","sent","console","error","error_1","action","type","value","tmpInvalidFields","validateFormInput","delete","add","getIcon","url","window","openFile","open","split","pop","toLocaleLowerCase","React","createElement","BsFiletypePdf","className","onClick","BsFiletypeTxt","BsFiletypeMp4","BsFiletypeMp3","InlineSvg","src","goSetTwilioChat","twilioChat","lightboxUrl","props","__rest","svgContent","setSvgContent","fetch","text","svgText","error_2","dangerouslySetInnerHTML","__html","customerMessage","Fragment","MyPost","key","messageId","form","message","linkifyHtml","target","replaceAll","Array","isArray","files","map","file","Row","from","createdAt","moment","format","itm","i","title","ref","method","onChange","e","placeholder","maxLength","required","has","step","min","max","DebounceInput","debounceTimeout","disabled","defaultValue","selected","label","hidden","options","Object","entries","size","style","marginTop","valid","validateForm","senderType","YFPost","icoYouFibre","Col","agentMessage","EventPost","eventMessage"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d19n/webchat",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "D19N WebChat package",
5
5
  "author": "@d19n",
6
6
  "license": "ISC",
@@ -54,7 +54,7 @@
54
54
  "sass": "^1.87.0",
55
55
  "sass-loader": "^10.5.2",
56
56
  "socket.io-client": "^4.7.5",
57
- "styled-components": "^6.1.8",
57
+ "styled-components": "^5.3.11",
58
58
  "ts-node": "^10.9.2",
59
59
  "use-debounce": "^10.0.5",
60
60
  "uuid": "^11.1.0"