{"version":3,"file":"static/js/190.9bab7257.chunk.js","mappings":"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","sources":["pages/WebchatFullscreen/styles.js","pages/WebchatFullscreen/index.js"],"sourcesContent":["import styled, { createGlobalStyle } from 'styled-components';\n\nexport const GlobalStyle = createGlobalStyle`\n * {\n box-sizing: border-box;\n }\n\n body {\n margin: 0;\n padding: 0;\n background-color: #f3f5f9;\n height: 100dvh;\n \n\n #rybena-player-div {\n right: 70px !important;\n }\n\n #change-translate-mobile {\n display: none !important;\n }\n\n #change-translate-desktop {\n display: block !important;\n right: 1%;\n }\n\n @media (max-width: 777px) {\n height: 100dvh;\n\n #change-translate-mobile {\n display: block !important;\n }\n\n #change-translate-desktop {\n display: none !important;\n }\n }\n }\n`;\n\nexport const Container = styled.div`\n display: flex;\n justify-content: center;\n padding: 0;\n height: 100dvh;\n\n @media (min-width: 777px) {\n padding: 16px 0;\n }\n`;\n\nexport const Chat = styled.div`\n display: flex;\n flex-direction: column;\n align-content: center;\n\n background-color: #ffffff;\n border-radius: 0px;\n\n max-width: 776px;\n width: 100%;\n padding: 0 0 8px;\n\n @media (min-width: 777px) {\n border-radius: 24px;\n }\n\n & .webchat_interaction_form {\n padding: 8px 16px 0;\n }\n`;\n\nexport const ImageFull = styled.img`\n object-fit: cover;\n max-width: 90vw;\n max-height: 90vh;\n margin: 10px;\n cursor: pointer;\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useSettingsContext } from '../../Context/SettingsContext';\nimport { useChatContext } from '../../Context/ChatContext';\nimport { useMessengerContext } from '../../Context/MessengerContext';\n\nimport { getBotData } from '../../services/getBotData';\nimport { getUrlParams, treatLayoutParams } from '../../utils/getParams';\n\nimport Modal from '../../components/Modal';\nimport Messages from '../../components/Messages';\nimport Settings from '../../components/Settings';\nimport InteractionForm from '../../components/InteractionForm';\nimport Header from '../../components/Header';\nimport Footer from '../../components/Footer';\nimport NotFound from '../NotFound';\nimport ButtonsRybena from '../../components/ButtonsRybena';\n\nimport * as S from './styles';\nimport { messages, setNewArrayMessages } from '../../Context/messagesMemory';\n\nconst WebchatFullscreen = () => {\n const {\n fontSize,\n bot,\n setBot,\n setCustomSettings,\n isNotFound,\n setIsNotFound,\n } = useSettingsContext();\n\n const {\n messageListRef,\n historicMessages,\n fullScreen,\n imgSrc,\n imgTitle,\n conversationIsStarted,\n setConversationIsStarted,\n setAlreadyIntarectedPage,\n alreadyIntarectedPage,\n pageIsOpen,\n setPageIsOpen,\n } = useChatContext();\n\n const {\n handleClickImage,\n handleQuickAccessClick,\n handleCarouselButtonClick,\n handleLoadPreviousMessages,\n handleSubmitMessage,\n handleReset,\n updateStatusMessages,\n connectSocket,\n } = useMessengerContext();\n\n const { botId } = useParams();\n const [settingsIsOpen, setSettingsIsOpen] = useState(false);\n const [hasRybena, setHasRybena] = useState(false);\n\n const setFavIcon = (icon) => {\n const link =\n document.querySelector(\"link[rel*='icon']\") ||\n document.createElement('link');\n link.type = 'image/x-icon';\n link.rel = 'shortcut icon';\n link.href =\n icon || 'https://midias.hmlbots.digitalcontact.cloud/icon_bar_open.svg';\n };\n\n const setHeadTitle = (title) => {\n document.title = title;\n };\n\n useEffect(() => {\n const changeBrowserFocus = () => {\n setPageIsOpen(document.visibilityState === 'visible');\n };\n\n const handleClick = () => {\n if (!alreadyIntarectedPage) {\n setAlreadyIntarectedPage(true);\n }\n };\n\n document.addEventListener('visibilitychange', changeBrowserFocus);\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('click', handleClick);\n document.removeEventListener('visibilitychange', changeBrowserFocus);\n };\n }, []);\n\n useEffect(() => {\n if (botId) {\n (async () => {\n const botData = await getBotData({ botId });\n if (botData && botData?.channel?.isActive) {\n setFavIcon(botData?.channel?.settings?.botFab);\n setHeadTitle(botData?.title);\n\n setBot({\n ...botData,\n _id: botId,\n });\n\n const { layoutParams, variables } = getUrlParams();\n const layout = treatLayoutParams(layoutParams, botData);\n\n setCustomSettings({\n webchatType: 'fullscreen',\n layout,\n variables,\n });\n } else {\n setIsNotFound(true);\n }\n })();\n }\n }, [botId]);\n\n /* UseEffect responsável por caso a página esteja sendo exibida, atualizar os status das mensagens que ainda não estão como 'read' */\n useEffect(() => {\n if (pageIsOpen) {\n const messagesNotRead = messages.filter(\n (message) => message.status === 'delivered'\n );\n\n if (messagesNotRead.length > 0) {\n const updatedMessages = updateStatusMessages(messages);\n setNewArrayMessages(updatedMessages);\n }\n }\n }, [pageIsOpen]);\n\n // UseEffect responsável por fazer o subscribe ao iniciar o webchat\n useEffect(() => {\n if (bot?._id && !conversationIsStarted) {\n setConversationIsStarted(true);\n connectSocket();\n }\n }, [bot]);\n\n useEffect(() => {\n const hasRybenaApi = document.getElementById('import-rybena-api');\n if (hasRybenaApi) {\n setHasRybena(true);\n }\n }, [document.getElementById('import-rybena-api')]);\n\n return (\n <>\n \n {bot?._id && !isNotFound ? (\n \n {hasRybena && }\n \n \n {settingsIsOpen ? (\n \n ) : (\n \n )}\n
\n \n
\n