MCPcopy Index your code
hub / github.com/chartbrew/chartbrew / ProjectForm

Function ProjectForm

client/src/components/ProjectForm.jsx:30–265  ·  view source on GitHub ↗
(props)

Source from the content-addressed store, hash-verified

28 Contains the project creation functionality
29*/
30function ProjectForm(props) {
31 const {
32 onComplete = () => {},
33 hideType = false,
34 onClose,
35 open,
36 } = props;
37
38 const [loading, setLoading] = useState(false);
39 const [newProject, setNewProject] = useState({});
40 const [error, setError] = useState("");
41 const [activeMenu, setActiveMenu] = useState("empty");
42 const [createdProject, setCreatedProject] = useState(null);
43 const modalDialogClassName = useMemo(() => {
44 if (activeMenu === "empty") return "sm:max-w-xl";
45 return "sm:max-w-5xl";
46 }, [activeMenu]);
47 const [communityTemplate, setCommunityTemplate] = useState("");
48
49 const team = useSelector(selectTeam);
50 const connections = useSelector(selectConnections);
51
52 const dispatch = useDispatch();
53
54 const _onCreateProject = (noRedirect) => {
55 setLoading(true);
56 return dispatch(createProject({ data: newProject }))
57 .then((project) => {
58 setLoading(false);
59 setNewProject({});
60 setCreatedProject(project.payload);
61
62 if (noRedirect) return project.payload;
63
64 return onComplete(project.payload);
65 })
66 .catch((error) => {
67 setLoading(false);
68 setError(error);
69 });
70 };
71
72 const _onCompleteTemplate = () => {
73 setTimeout(() => {
74 onComplete(createdProject, false);
75 }, 1000);
76 };
77
78 return (
79 <Modal>
80 <Modal.Backdrop isOpen={open} onOpenChange={onClose}>
81 <Modal.Container scroll="inside">
82 <Modal.Dialog className={modalDialogClassName}>
83 <Modal.CloseTrigger />
84 <Modal.Header>
85 <Modal.Heading className="text-2xl font-semibold">
86 Create a new dashboard
87 </Modal.Heading>

Callers

nothing calls this directly

Calls 1

_onCreateProjectFunction · 0.85

Tested by

no test coverage detected