MCPcopy Create free account
hub / github.com/enowdev/enowX-Coder / loadPersistedData

Function loadPersistedData

src/components/layout/AppShell.tsx:84–121  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

82
83 useEffect(() => {
84 const loadPersistedData = async () => {
85 try {
86 const loadedProjects = await invoke<Project[]>('list_projects');
87 setProjects(loadedProjects);
88
89 if (loadedProjects.length === 0) {
90 setActiveProjectId(null);
91 setSessions([]);
92 setActiveSessionId(null);
93 return;
94 }
95
96 const allSessions = (
97 await Promise.all(
98 loadedProjects.map((p) => invoke<Session[]>('list_sessions', { projectId: p.id }))
99 )
100 ).flat();
101 setSessions(allSessions);
102
103 const activeProject = [...loadedProjects].sort(
104 (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()
105 )[0];
106 setActiveProjectId(activeProject.id);
107
108 const projectSessions = allSessions.filter((s) => s.projectId === activeProject.id);
109 if (projectSessions.length === 0) {
110 setActiveSessionId(null);
111 return;
112 }
113
114 const activeSession = [...projectSessions].sort(
115 (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()
116 )[0];
117 setActiveSessionId(activeSession.id);
118 } catch (error) {
119 console.error('Failed to load projects and sessions:', error);
120 }
121 };
122
123 void loadPersistedData();
124 }, [setProjects, setActiveProjectId, setSessions, setActiveSessionId]);

Callers 1

AppShellFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected