@@ -2,7 +2,6 @@ import React from 'react';
22import Prism from 'prismjs' ;
33import { Provider , useDispatch , useSelector } from 'react-redux' ;
44import { RootState , store } from './store' ;
5- import { isArchive } from './services/appConfig' ;
65import { setConnectionStatus } from './store/slices/connectionSlice' ;
76import ErrorBoundary from './components/ErrorBoundary/ErrorBoundary' ;
87import ErrorFallback from './components/ErrorBoundary/ErrorFallback' ;
@@ -47,8 +46,8 @@ Prism.manual = true;
4746
4847
4948// Add function to extract archived messages
50- const getArchivedMessages = ( ) => {
51- if ( ! isArchive ) return null ;
49+ const getArchivedMessages = ( isArchiveMode : boolean ) => {
50+ if ( ! isArchiveMode ) return null ;
5251 try {
5352 const messagesEl = document . getElementById ( 'archived-messages' ) ;
5453 if ( ! messagesEl || ! messagesEl . textContent ) {
@@ -61,12 +60,17 @@ const getArchivedMessages = () => {
6160 return [ ] ;
6261 }
6362} ;
63+ // Interface for App props
64+ interface AppProps {
65+ isArchive ?: boolean ;
66+ }
6467
6568
6669
6770// Create a separate component for the app content
68- const AppContent : React . FC = ( ) => {
69- if ( ! isArchive ) {
71+ const AppContent : React . FC < AppProps > = ( { isArchive } ) => {
72+ const isArchiveMode = isArchive || false ;
73+ if ( ! isArchiveMode ) {
7074 console . info ( `${ LOG_PREFIX } Initializing application v${ APP_VERSION } ` ) ;
7175 } else {
7276 console . info ( `${ LOG_PREFIX } Initializing application v${ APP_VERSION } in archive mode` ) ;
@@ -79,6 +83,8 @@ const AppContent: React.FC = () => {
7983 const { isConnected, error } = useSelector ( ( state : RootState ) => state . connection ) ;
8084 // Update connection status in Redux store when websocket status changes
8185 React . useEffect ( ( ) => {
86+ if ( isArchiveMode ) return ; // Skip websocket setup in archive mode
87+
8288 const handleConnectionChange = ( connected : boolean ) => {
8389 dispatch ( setConnectionStatus ( connected ) ) ;
8490 } ;
@@ -108,44 +114,44 @@ const AppContent: React.FC = () => {
108114 websocket . removeConnectionHandler ( handleConnectionChange ) ;
109115 websocket . removeErrorHandler ( handleError ) ;
110116 } ;
111- } , [ dispatch ] ) ;
117+ } , [ dispatch , isArchiveMode ] ) ;
112118
113119 // Load archived messages on mount if in archive mode
114120 React . useEffect ( ( ) => {
115- if ( isArchive && ! archivedMessagesLoaded ) {
116- const archivedMessages = getArchivedMessages ( ) ;
121+ if ( isArchiveMode && ! archivedMessagesLoaded ) {
122+ const archivedMessages = getArchivedMessages ( isArchiveMode ) ;
117123 if ( archivedMessages ) {
118124 archivedMessages . forEach ( ( msg : Message ) => dispatch ( addMessage ( msg ) ) ) ;
119125 setArchivedMessagesLoaded ( true ) ;
120126 }
121127 }
122- } , [ dispatch , archivedMessagesLoaded ] ) ;
128+ } , [ dispatch , archivedMessagesLoaded , isArchiveMode ] ) ;
123129
124130
125131
126132 // Only get sessionId if not in archive mode
127133 const sessionId = React . useMemo ( ( ) => {
128- if ( isArchive ) return '' ;
134+ if ( isArchiveMode ) return '' ;
129135 return websocket . getSessionId ( ) ;
130- } , [ isArchive ] ) ;
136+ } , [ isArchiveMode ] ) ;
131137
132138 React . useEffect ( ( ) => {
133139 // Skip websocket setup if loading from archive
134- if ( isArchive ) {
140+ if ( isArchiveMode ) {
135141 return ;
136142 }
137143
138144 if ( appConfig . applicationName ) {
139145 document . title = appConfig . applicationName ;
140146 }
141- } , [ appConfig . applicationName ] ) ;
147+ } , [ appConfig . applicationName , isArchiveMode ] ) ;
142148
143149 // Only log websocket disconnected if not in archive mode
144150 React . useEffect ( ( ) => {
145- if ( ! isArchive && ! isConnected ) {
151+ if ( ! isArchiveMode && ! isConnected ) {
146152 console . warn ( `${ LOG_PREFIX } WebSocket disconnected - sessionId: ${ sessionId } ` ) ;
147153 }
148- } , [ isConnected , sessionId ] ) ;
154+ } , [ isConnected , sessionId , isArchiveMode ] ) ;
149155 // Log WebSocket errors for debugging
150156 React . useEffect ( ( ) => {
151157 if ( error ) {
@@ -168,21 +174,18 @@ const AppContent: React.FC = () => {
168174 } , [ ] ) ;
169175 // Add debug information to help diagnose rendering issues
170176 React . useEffect ( ( ) => {
171- console . log ( `${ LOG_PREFIX } Rendering AppContent component. isArchive:` , isArchive ) ;
177+ console . log ( `${ LOG_PREFIX } Rendering AppContent component. isArchive:` , isArchiveMode ) ;
172178 console . log ( `${ LOG_PREFIX } Connection status:` , isConnected ? 'Connected' : 'Disconnected' ) ;
173179 // Check if the DOM is properly rendering
174180 const rootElement = document . getElementById ( 'root' ) ;
175181 console . log ( `${ LOG_PREFIX } Root element:` , rootElement ) ;
176182 console . log ( `${ LOG_PREFIX } Root element children:` , rootElement ?. childNodes ?. length ) ;
177- } , [ isArchive , isConnected ] ) ;
183+ } , [ isArchiveMode , isConnected ] ) ;
178184
179185
180186 return (
181187 < ThemeProvider >
182188 < div className = "App" >
183- < div style = { { padding : '20px' , display : 'flex' , flexDirection : 'column' , alignItems : 'center' } } >
184- < h1 > SimiaCryptus AI Assistant</ h1 >
185- </ div >
186189 < Menu />
187190 < ChatInterface
188191 sessionId = { sessionId }
@@ -195,13 +198,13 @@ const AppContent: React.FC = () => {
195198 ) ;
196199} ;
197200// Create the main App component that provides the Redux store
198- const App : React . FC = ( ) => {
201+ const App : React . FC < AppProps > = ( { isArchive } ) => {
199202 // Add console log to verify App component is rendering
200203 console . log ( `${ LOG_PREFIX } Rendering App component` ) ;
201204 return (
202205 < ErrorBoundary FallbackComponent = { ErrorFallback } >
203206 < Provider store = { store } >
204- < AppContent />
207+ < AppContent isArchive = { isArchive } />
205208 </ Provider >
206209 </ ErrorBoundary >
207210 ) ;
0 commit comments