UNPKG

projecthor

Version:

Save, manage, and run project setup commands automatically from the CLI.

28 lines (27 loc) 985 B
import React, { useContext } from "react"; import { createContext, useState } from "react"; const ProjectContext = createContext(undefined); function ProjectProvider({ children }) { const [project, setProject] = useState({ name: "", folder: "", setupCommands: [] }); function setName(name) { setProject(project => ({ ...project, name })); } function setFolder(folder) { setProject(project => ({ ...project, folder })); } function addCommand(command) { setProject(project => ({ ...project, setupCommands: [...project.setupCommands, command] })); } return (React.createElement(ProjectContext.Provider, { value: { project, setName, setFolder, addCommand } }, children)); } function useProject() { const result = useContext(ProjectContext); if (!result) throw new Error("'useProject' can't be used outside 'ProjectProvider'."); return result; } export { ProjectProvider, useProject };