/* eslint-disable react/no-danger */ /* eslint-disable react/no-unescaped-entities */ import { Layout } from 'antd'; import { useRecoilState, useRecoilValue } from 'recoil'; import Head from 'next/head'; import { FC, useEffect, useRef } from 'react'; import { ClientConfigStore, isChatAvailableSelector, clientConfigStateAtom, fatalErrorStateAtom, isMobileAtom, } from '../stores/ClientConfigStore'; import { Content } from '../ui/Content/Content'; import { Header } from '../ui/Header/Header'; import { ClientConfig } from '../../interfaces/client-config.model'; import { DisplayableError } from '../../types/displayable-error'; import { FatalErrorStateModal } from '../modals/FatalErrorStateModal/FatalErrorStateModal'; import setupNoLinkReferrer from '../../utils/no-link-referrer'; import { TitleNotifier } from '../TitleNotifier/TitleNotifier'; import { ServerRenderedHydration } from '../ServerRendered/ServerRenderedHydration'; import Footer from '../ui/Footer/Footer'; import { Theme } from '../theme/Theme'; export const Main: FC = () => { const [isMobile] = useRecoilState(isMobileAtom); const clientConfig = useRecoilValue(clientConfigStateAtom); const { name, title, customStyles, version } = clientConfig; const isChatAvailable = useRecoilValue(isChatAvailableSelector); const fatalError = useRecoilValue(fatalErrorStateAtom); const layoutRef = useRef(null); const { chatDisabled } = clientConfig; useEffect(() => { setupNoLinkReferrer(layoutRef.current); }, []); const isProduction = process.env.NODE_ENV === 'production'; return ( <> {isProduction && } {isProduction ? ( {name ? {name} : {`{{.Name}}`}} ) : ( {name} )}
{fatalError && ( )} {!isMobile &&