import React, { useState, useEffect } from 'react'; import axios from '../utils/axios'; import { MindMapData } from '../utils/jsonUtils'; import styles from './MindMapList.module.css'; import MindMapItem from './MindMapItem'; interface MindMap { id: string; name: string; updatedAt: string; nodes: any[]; edges: any[]; } interface MindMapListProps { isCollapsed: boolean; onSelectMindMap: (mindMap: MindMapData) => void; onNewMindMap: () => void; onDeleteMindMap: (id: string) => void; } const MindMapList: React.FC = ({ isCollapsed, onSelectMindMap, onNewMindMap, onDeleteMindMap, }) => { const [mindMaps, setMindMaps] = useState([]); const [selectedId, setSelectedId] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const fetchMindMaps = async () => { setLoading(true); setError(null); try { const res = await axios.get('/api/workflows'); setMindMaps(res.data); } catch (err: any) { setError('Failed to load mind maps'); } finally { setLoading(false); } }; useEffect(() => { fetchMindMaps(); }, []); const handleDelete = async (id: string) => { try { await axios.delete(`/api/workflows/${id}`); await fetchMindMaps(); if (selectedId === id) setSelectedId(null); onDeleteMindMap(id); } catch { setError('Failed to delete mind map'); } }; const handleRename = async (id: string, newName: string) => { try { await axios.put(`/api/workflows/${id}`, { name: newName }); await fetchMindMaps(); } catch { setError('Failed to rename mind map'); } }; return (

Your Mind Maps

{loading &&
Loading...
} {error &&
{error}
} {!loading && !error && mindMaps.length === 0 && (
No mind maps found.
)} {!loading && !error && mindMaps.map((mindMap) => ( { setSelectedId(mindMap.id); onSelectMindMap(mindMap); }} onDelete={() => handleDelete(mindMap.id)} onRename={(newName) => handleRename(mindMap.id, newName)} onShare={() => {}} /> ))}
); }; export default MindMapList;