diff --git a/frontend/app/components/Client/Projects/ProjectForm.tsx b/frontend/app/components/Client/Projects/ProjectForm.tsx index 03fa26a70..fc366e44a 100644 --- a/frontend/app/components/Client/Projects/ProjectForm.tsx +++ b/frontend/app/components/Client/Projects/ProjectForm.tsx @@ -16,37 +16,39 @@ function ProjectForm(props: Props) { const { onClose } = props; const { projectsStore } = useStore(); // const project = projectsStore.instance as Project; - const project = props.project || new Project(); + // const project = new Project(props.project || {}); + const [project, setProject] = React.useState(new Project(props.project || {})); const loading = projectsStore.loading; const canDelete = projectsStore.list.length > 1; const pathname = window.location.pathname; const mstore = useStore(); - useEffect(() => { - if (props.project) { - projectsStore.initProject(props.project); - } else { - projectsStore.initProject({}); - } - }, [props.project]); + // useEffect(() => { + // if (project) { + // projectsStore.initProject(project); + // } else { + // projectsStore.initProject({}); + // } + // }, [project]); const handleEdit = ({ target: { name, value } }: ChangeEvent) => { - projectsStore.editInstance({ [name]: value }); + // projectsStore.editInstance({ [name]: value }); + setProject((prev: Project) => (new Project({ ...prev, [name]: value }))); }; const onSubmit = (e: FormEvent) => { if (!projectsStore.instance) return; - if (projectsStore.instance.id && projectsStore.instance.exists()) { + if (project.id && project.exists()) { projectsStore - .updateProject(projectsStore.instance.id, project) + .updateProject(project.id, project) .then((response: any) => { if (!response || !response.errors || response.errors.size === 0) { if (onClose) { onClose(null); } - if (!pathname.includes('onboarding')) { - void projectsStore.fetchList(); - } + // if (!pathname.includes('onboarding')) { + // void projectsStore.fetchList(); + // } toast.success('Project updated successfully'); } else { toast.error(response.errors[0]); @@ -54,14 +56,16 @@ function ProjectForm(props: Props) { }); } else { projectsStore - .save(projectsStore.instance!) - .then(() => { + .save(project!) + .then((resp: Project) => { toast.success('Project created successfully'); onClose?.(null); mstore.searchStore.clearSearch(); mstore.searchStoreLive.clearSearch(); mstore.initClient(); + + projectsStore.setConfigProject(parseInt(resp.id!)); }) .catch((error: string) => { toast.error(error || 'An error occurred while creating the project'); @@ -124,7 +128,8 @@ function ProjectForm(props: Props) { ]} value={project.platform} onChange={(value) => { - projectsStore.editInstance({ platform: value }); + // projectsStore.editInstance({ platform: value }); + setProject((prev: Project) => (new Project({ ...prev, platform: value }))); }} /> diff --git a/frontend/app/components/Client/Projects/ProjectList.tsx b/frontend/app/components/Client/Projects/ProjectList.tsx index fdba1d86e..8d5e9774f 100644 --- a/frontend/app/components/Client/Projects/ProjectList.tsx +++ b/frontend/app/components/Client/Projects/ProjectList.tsx @@ -27,7 +27,9 @@ const ProjectList: React.FC = () => { }; const projectEditHandler = (e: React.MouseEvent, project: Project) => { - e.stopPropagation(); + // e.stopPropagation(); + + projectsStore.initProject(project); openModal(, { title: 'Edit Project' @@ -38,8 +40,8 @@ const ProjectList: React.FC = () => { const menuItems: MenuItem[] = filteredProjects.map((project) => ({ key: project.id + '', label: {project.name}, - extra: