| import { createContext, useContext, useState } from 'react' | |
| const ProjectContext = createContext() | |
| export function ProjectProvider({ children }) { | |
| const [projects, setProjects] = useState([]) | |
| const saveProject = (name, nodes, connections) => { | |
| const project = { | |
| id: Date.now(), | |
| name, | |
| nodes, | |
| connections, | |
| createdAt: new Date().toISOString() | |
| } | |
| const updatedProjects = [...projects, project] | |
| setProjects(updatedProjects) | |
| localStorage.setItem('neuroarch-projects', JSON.stringify(updatedProjects)) | |
| } | |
| const loadProject = (projectId) => { | |
| const project = projects.find(p => p.id === projectId) | |
| return project | |
| } | |
| const deleteProject = (projectId) => { | |
| const updatedProjects = projects.filter(p => p.id !== projectId) | |
| setProjects(updatedProjects) | |
| localStorage.setItem('neuroarch-projects', JSON.stringify(updatedProjects)) | |
| } | |
| return ( | |
| <ProjectContext.Provider value={{ projects, saveProject, loadProject, deleteProject }}> | |
| {children} | |
| </ProjectContext.Provider> | |
| ) | |
| } | |
| export function useProject() { | |
| const context = useContext(ProjectContext) | |
| if (!context) { | |
| throw new Error('useProject must be used within ProjectProvider') | |
| } | |
| return context | |
| } |