feat: Integrate ProjectStatusDropdown component into ProjectViewPage for dynamic project status updates
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
Reference in New Issue
Block a user