Deskripsi:
- Fix router status job
- Fix hapus job beserta image di server
This commit is contained in:
2024-10-29 16:59:53 +08:00
parent 9bb68b216f
commit 30743b02ae
29 changed files with 301 additions and 420 deletions

View File

@@ -33,7 +33,7 @@ export default function LayoutJob_Main({
{
id: 2,
name: "Status",
path: RouterJob.status,
path: RouterJob.status({ id: "1" }),
icon: <IconReservedLine />,
},
{

View File

@@ -1,103 +0,0 @@
"use client";
import { Tabs, Stack } from "@mantine/core";
import { useAtom } from "jotai";
import { gs_job_status } from "../../global_state";
import Job_Draft from "./draft";
import Job_Publish from "./publish";
import Job_Reject from "./reject";
import Job_Review from "./review";
import {
AccentColor,
MainColor,
} from "@/app_modules/_global/color/color_pallet";
export default function Job_UiStatus({
listPublish,
listReview,
listDraft,
listReject,
}: {
listPublish: any[];
listReview: any[];
listDraft: any[];
listReject: any[];
}) {
const [tabsStatus, setTabsStatus] = useAtom(gs_job_status);
const listTabs = [
{
id: 1,
path: <Job_Publish listPublish={listPublish} />,
value: "Publish",
},
{
id: 2,
path: <Job_Review listReview={listReview} />,
value: "Review",
},
{
id: 3,
path: <Job_Draft listDraft={listDraft} />,
value: "Draft",
},
{
id: 4,
path: <Job_Reject listReject={listReject} />,
value: "Reject",
},
];
return (
<>
<Tabs
mt={1}
color="yellow"
variant="pills"
radius={"xl"}
defaultValue={"Publish"}
value={tabsStatus}
onTabChange={setTabsStatus}
styles={{
tabsList: {
backgroundColor: MainColor.darkblue,
position: "sticky",
top: 0,
zIndex: 99,
},
panel: {
paddingTop: 10
}
}}
>
<Stack>
<Tabs.List grow>
{listTabs.map((e) => (
<Tabs.Tab
key={e.id}
value={e.value}
fw={"bold"}
color={tabsStatus === e.value ? "black" : "white"}
style={{
transition: "0.5s",
backgroundColor:
tabsStatus === e.value ? MainColor.yellow : "white",
border:
tabsStatus === e.value
? `1px solid ${AccentColor.yellow}`
: `1px solid white`,
}}
>
{e.value}
</Tabs.Tab>
))}
</Tabs.List>
{listTabs.map((e) => (
<Tabs.Panel key={e.id} value={e.value}>
{e.path}
</Tabs.Panel>
))}
</Stack>
</Tabs>
</>
);
}

View File

@@ -1,24 +1,107 @@
import Job_UiStatus from "./ui_status";
"use client";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { AccentColor, MainColor } from "@/app_modules/_global/color";
import { MODEL_NEW_DEFAULT_MASTER } from "@/app_modules/model_global/interface";
import { Stack, Tabs } from "@mantine/core";
import { useRouter } from "next/navigation";
import { useState } from "react";
import Job_Draft from "./draft";
import Job_Publish from "./publish";
import Job_Reject from "./reject";
import Job_Review from "./review";
export default function Job_ViewStatus({
listPublish,
listReview,
listDraft,
listReject,
statusId,
dataJob,
listStatus,
}: {
listPublish: any[];
listReview: any[];
listDraft: any[];
listReject: any[];
statusId: string;
dataJob: any[];
listStatus: MODEL_NEW_DEFAULT_MASTER[];
}) {
const router = useRouter();
const [changeStatus, setChangeStatus] = useState(statusId);
// const listTabs = [
// {
// id: 1,
// path: <Job_Publish listPublish={listPublish} />,
// value: "Publish",
// },
// {
// id: 2,
// path: <Job_Review listReview={listReview} />,
// value: "Review",
// },
// {
// id: 3,
// path: <Job_Draft listDraft={listDraft} />,
// value: "Draft",
// },
// {
// id: 4,
// path: <Job_Reject listReject={listReject} />,
// value: "Reject",
// },
// ];
async function onChangeStatus({ statusId }: { statusId: string }) {
router.replace(RouterJob.status({ id: statusId }));
}
return (
<>
<Job_UiStatus
listPublish={listPublish}
listDraft={listDraft}
listReject={listReject}
listReview={listReview}
/>
<Tabs
mt={1}
color="yellow"
variant="pills"
radius={"xl"}
value={changeStatus}
onTabChange={(val: any) => {
setChangeStatus(val);
onChangeStatus({ statusId: val });
}}
styles={{
tabsList: {
backgroundColor: MainColor.darkblue,
position: "sticky",
top: 0,
zIndex: 99,
},
panel: {
paddingTop: 10,
},
}}
>
<Stack>
<Tabs.List grow>
{listStatus.map((e) => (
<Tabs.Tab
key={e.id}
value={e.id}
fw={"bold"}
color={statusId === e.id ? "black" : "white"}
style={{
transition: "0.5s",
backgroundColor:
statusId === e.id ? MainColor.yellow : "white",
border:
statusId === e.id
? `1px solid ${AccentColor.yellow}`
: `1px solid white`,
}}
>
{e.name}
</Tabs.Tab>
))}
</Tabs.List>
{statusId === "1" && <Job_Publish listPublish={dataJob} />}
{statusId === "2" && <Job_Review listReview={dataJob} />}
{statusId === "3" && <Job_Draft listDraft={dataJob} />}
{statusId === "4" && <Job_Reject listReject={dataJob} />}
</Stack>
</Tabs>
</>
);
}