import React from 'react'; import type {Store} from '@reduxjs/toolkit'; import type {History} from 'history'; import {Helmet} from 'react-helmet-async'; import {FullscreenProvider} from '../../components/Fullscreen/FullscreenContext'; import {uiFactory} from '../../uiFactory/uiFactory'; import {useTypedSelector} from '../../utils/hooks/useTypedSelector'; import type {YDBEmbeddedUISettings} from '../UserSettings/settings'; import {useAppTitle} from './AppTitleContext'; import ContentWrapper, {Content} from './Content'; import {NavigationWrapper} from './NavigationWrapper'; import {Providers} from './Providers'; import './App.scss'; const defaultAppTitle = 'YDB Monitoring'; export interface AppProps { store: Store; history: History; userSettings?: YDBEmbeddedUISettings; children?: React.ReactNode; appTitle?: string; } function App({store, history, children, userSettings, appTitle = defaultAppTitle}: AppProps) { const ChatPanel = uiFactory.renderChatPanel; return ( {children} {ChatPanel && } ); } function AppContent({ userSettings, children, }: { userSettings?: YDBEmbeddedUISettings; children?: React.ReactNode; }) { const {appTitle} = useAppTitle(); const singleClusterMode = useTypedSelector((state) => state.singleClusterMode); const fullscreenRootRef = React.useRef(null); return ( {children}
); } export default App;