feat: Integrate ProjectStatusDropdown component into ProjectViewPage for dynamic project status updates

This commit is contained in:
Chop
2025-06-04 22:58:39 +02:00
parent 49d49b42f1
commit 931ec3012d
2 changed files with 17 additions and 13 deletions

View File

@@ -11,6 +11,7 @@ import Link from "next/link";
import { differenceInCalendarDays, parseISO } from "date-fns"; import { differenceInCalendarDays, parseISO } from "date-fns";
import PageContainer from "@/components/ui/PageContainer"; import PageContainer from "@/components/ui/PageContainer";
import PageHeader from "@/components/ui/PageHeader"; import PageHeader from "@/components/ui/PageHeader";
import ProjectStatusDropdown from "@/components/ProjectStatusDropdown";
export default function ProjectViewPage({ params }) { export default function ProjectViewPage({ params }) {
const { id } = params; const { id } = params;
@@ -159,7 +160,8 @@ export default function ProjectViewPage({ params }) {
<span className="text-sm font-medium text-gray-500"> <span className="text-sm font-medium text-gray-500">
Status projektu Status projektu
</span> </span>
<p className="text-gray-900"> <div className="flex items-center gap-2 mt-1">
<span className="text-gray-900">
{project.project_status === "registered" {project.project_status === "registered"
? "Zarejestrowany" ? "Zarejestrowany"
: project.project_status === "in_progress_design" : project.project_status === "in_progress_design"
@@ -169,7 +171,9 @@ export default function ProjectViewPage({ params }) {
: project.project_status === "fulfilled" : project.project_status === "fulfilled"
? "Zakończony" ? "Zakończony"
: "-"} : "-"}
</p> </span>
<ProjectStatusDropdown project={project} />
</div>
</div> </div>
</CardContent> </CardContent>
</Card> </Card>

View File

@@ -2,7 +2,7 @@
import { useState } from "react"; import { useState } from "react";
export default function ProjectStatusDropdown({ project, onStatusChange }) { export default function ProjectStatusDropdown({ project }) {
const [status, setStatus] = useState(project.project_status); const [status, setStatus] = useState(project.project_status);
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
@@ -16,7 +16,7 @@ export default function ProjectStatusDropdown({ project, onStatusChange }) {
body: JSON.stringify({ ...project, project_status: newStatus }), body: JSON.stringify({ ...project, project_status: newStatus }),
}); });
setLoading(false); setLoading(false);
if (onStatusChange) onStatusChange(newStatus); window.location.reload();
}; };
return ( return (