akhaliq HF Staff commited on
Commit
106a0d6
·
1 Parent(s): 31713bf
Files changed (1) hide show
  1. frontend/src/app/page.tsx +30 -1
frontend/src/app/page.tsx CHANGED
@@ -11,7 +11,23 @@ import { isAuthenticated as checkIsAuthenticated, getStoredToken } from '@/lib/a
11
  import type { Message, Language, CodeGenerationRequest } from '@/types';
12
 
13
  export default function Home() {
14
- const [messages, setMessages] = useState<Message[]>([]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  const [generatedCode, setGeneratedCode] = useState('');
16
  const [selectedLanguage, setSelectedLanguage] = useState<Language>('html');
17
  const [selectedModel, setSelectedModel] = useState('gemini-3.0-pro');
@@ -23,6 +39,14 @@ export default function Home() {
23
  // Mobile view state: 'chat', 'editor', or 'settings'
24
  const [mobileView, setMobileView] = useState<'chat' | 'editor' | 'settings'>('editor');
25
 
 
 
 
 
 
 
 
 
26
  useEffect(() => {
27
  checkAuth();
28
  // Check auth status every second to catch OAuth redirects
@@ -309,6 +333,11 @@ export default function Home() {
309
  if (confirm('Clear all messages and code?')) {
310
  setMessages([]);
311
  setGeneratedCode('');
 
 
 
 
 
312
  }
313
  };
314
 
 
11
  import type { Message, Language, CodeGenerationRequest } from '@/types';
12
 
13
  export default function Home() {
14
+ // Load messages from localStorage on mount (CRITICAL FOR IMPORT/DEPLOY TRACKING!)
15
+ const [messages, setMessages] = useState<Message[]>(() => {
16
+ if (typeof window !== 'undefined') {
17
+ const saved = localStorage.getItem('anycoder_messages');
18
+ if (saved) {
19
+ try {
20
+ const parsed = JSON.parse(saved);
21
+ console.log('[localStorage] Loaded messages from localStorage:', parsed.length, 'messages');
22
+ return parsed;
23
+ } catch (e) {
24
+ console.error('[localStorage] Failed to parse saved messages:', e);
25
+ }
26
+ }
27
+ }
28
+ return [];
29
+ });
30
+
31
  const [generatedCode, setGeneratedCode] = useState('');
32
  const [selectedLanguage, setSelectedLanguage] = useState<Language>('html');
33
  const [selectedModel, setSelectedModel] = useState('gemini-3.0-pro');
 
39
  // Mobile view state: 'chat', 'editor', or 'settings'
40
  const [mobileView, setMobileView] = useState<'chat' | 'editor' | 'settings'>('editor');
41
 
42
+ // Save messages to localStorage whenever they change (CRITICAL FOR PERSISTENCE!)
43
+ useEffect(() => {
44
+ if (typeof window !== 'undefined') {
45
+ localStorage.setItem('anycoder_messages', JSON.stringify(messages));
46
+ console.log('[localStorage] Saved', messages.length, 'messages to localStorage');
47
+ }
48
+ }, [messages]);
49
+
50
  useEffect(() => {
51
  checkAuth();
52
  // Check auth status every second to catch OAuth redirects
 
333
  if (confirm('Clear all messages and code?')) {
334
  setMessages([]);
335
  setGeneratedCode('');
336
+ // Clear localStorage to remove import history
337
+ if (typeof window !== 'undefined') {
338
+ localStorage.removeItem('anycoder_messages');
339
+ console.log('[localStorage] Cleared messages from localStorage');
340
+ }
341
  }
342
  };
343