File size: 1,250 Bytes
f5acd7a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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
} |