projecthor
Version:
Save, manage, and run project setup commands automatically from the CLI.
28 lines (27 loc) • 985 B
JavaScript
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 };