#Job Vacancy

## feat
- Tampilan user
### No Issuue
This commit is contained in:
2024-02-21 15:17:34 +08:00
parent 44f585a599
commit 7f3196afef
65 changed files with 2216 additions and 448 deletions

View File

@@ -0,0 +1,19 @@
"use client";
import { AppShell } from "@mantine/core";
import React from "react";
import ComponentJob_HeaderTamplate from "../../component/header_tamplate";
export default function LayoutJob_DetailArsip({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
<AppShell header={<ComponentJob_HeaderTamplate title="Detail Arsip" />}>
{children}
</AppShell>
</>
);
}

View File

@@ -0,0 +1,14 @@
"use client";
import { Stack } from "@mantine/core";
import ComponentJob_DetailData from "../../component/detail/detail_data";
export default function Job_DetailArsip() {
return (
<>
<Stack>
<ComponentJob_DetailData />
</Stack>
</>
);
}

View File

@@ -0,0 +1,29 @@
"use client";
import { AppShell } from "@mantine/core";
import React from "react";
import ComponentJob_HeaderTamplate from "../../component/header_tamplate";
import { IconEdit } from "@tabler/icons-react";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
export default function LayoutJob_DetailDraft({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
<AppShell
header={
<ComponentJob_HeaderTamplate
title="Detail Draft"
icon={<IconEdit />}
route2={RouterJob.edit}
/>
}
>
{children}
</AppShell>
</>
);
}

View File

@@ -0,0 +1,92 @@
"use client";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil";
import { Stack, Button, Group, Modal, Paper, Title } from "@mantine/core";
import { useAtom } from "jotai";
import ComponentJob_DetailData from "../../component/detail/detail_data";
import { gs_job_status } from "../../global_state";
import { useRouter } from "next/navigation";
import { useDisclosure } from "@mantine/hooks";
export default function Job_DetailDraft() {
return (
<>
<Stack>
<ComponentJob_DetailData />
<ButtonAction />
</Stack>
</>
);
}
function ButtonAction() {
const router = useRouter();
const [status, setStatus] = useAtom(gs_job_status);
const [opened, { open, close }] = useDisclosure();
async function onAction() {
router.push(RouterJob.status);
setStatus("Review");
ComponentGlobal_NotifikasiBerhasil("Berhasil Diajukan");
}
async function onDelete() {
router.push(RouterJob.status);
setStatus("Draft");
ComponentGlobal_NotifikasiBerhasil("Berhasil Hapus Draft");
}
return (
<>
<Modal opened={opened} onClose={close} centered withCloseButton={false}>
<Paper px={"lg"}>
<Stack>
<Title order={6}>Yakin ingin menghapus ini ?</Title>
<Group grow>
<Button
radius={"xl"}
onClick={() => {
close();
}}
>
Batal
</Button>
<Button
radius={"xl"}
color="red"
onClick={() => {
onDelete();
}}
>
Hapus
</Button>
</Group>
</Stack>
</Paper>
</Modal>
<Group grow mb={50} >
<Button
radius={"xl"}
color="yellow"
onClick={() => {
onAction();
}}
>
Ajukan Review
</Button>
<Button
radius={"xl"}
color="red"
onClick={() => {
open();
}}
>
Hapus
</Button>
</Group>
</>
);
}

View File

@@ -0,0 +1,19 @@
"use client";
import { AppShell } from "@mantine/core";
import React from "react";
import ComponentJob_HeaderTamplate from "../../component/header_tamplate";
export default function LayoutJob_MainDetail({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
<AppShell header={<ComponentJob_HeaderTamplate title=" Detail Job" />}>
{children}
</AppShell>
</>
);
}

View File

@@ -0,0 +1,59 @@
"use client";
import { useRouter } from "next/navigation";
import ComponentJob_DetailData from "../../component/detail/detail_data";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil";
import { Stack, Button, Center } from "@mantine/core";
import { useAtom } from "jotai";
import { gs_job_status, gs_job_hot_menu } from "../../global_state";
import Link from "next/link";
import { IconBrandWhatsapp } from "@tabler/icons-react";
export default function Job_MainDetail() {
return (
<>
<Stack>
<ComponentJob_DetailData />
<ButtonAction />
</Stack>
</>
);
}
function ButtonAction() {
const router = useRouter();
const [status, setStatus] = useAtom(gs_job_status);
const [hotMenu, setHotMenu] = useAtom(gs_job_hot_menu);
async function onAction() {
// router.push(RouterJob.arsip);
// setStatus("Publish");
// setHotMenu(3);
// ComponentGlobal_NotifikasiBerhasil("Berhasil Diarsipkan");
}
return (
<>
<Center>
<Button
radius={"xl"}
color="teal"
mb={30}
leftIcon={<IconBrandWhatsapp />}
onClick={() => {
onAction();
}}
>
<Link
style={{ textDecoration: "none", color: "white" }}
href={`whatsapp://send?text=Job Vacancy HIPMI BADUNG : http://localhost:3000/dev/job/non_user_view`}
// href={`https://t.me/share/url?url={${"http://localhost:3000/dev/job/non_user_view"}}&text={Lowongan Kerja Ini}`}
>
Bagikan ke WhatsApp
</Link>
</Button>
</Center>
</>
);
}

View File

@@ -0,0 +1,19 @@
"use client";
import { AppShell } from "@mantine/core";
import React from "react";
import ComponentJob_HeaderTamplate from "../../component/header_tamplate";
export default function LayoutJob_DetailPublish({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
<AppShell header={<ComponentJob_HeaderTamplate title="Detail Publish" />}>
{children}
</AppShell>
</>
);
}

View File

@@ -0,0 +1,46 @@
"use client";
import { useRouter } from "next/navigation";
import ComponentJob_DetailData from "../../component/detail/detail_data";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil";
import { Stack, Button } from "@mantine/core";
import { useAtom } from "jotai";
import { gs_job_hot_menu, gs_job_status } from "../../global_state";
export default function Job_DetailPublish() {
return (
<>
<Stack>
<ComponentJob_DetailData />
<ButtonAction />
</Stack>
</>
);
}
function ButtonAction() {
const router = useRouter();
const [status, setStatus] = useAtom(gs_job_status);
const [hotMenu, setHotMenu] = useAtom(gs_job_hot_menu)
async function onAction() {
router.push(RouterJob.arsip);
setStatus("Publish");
setHotMenu(3)
ComponentGlobal_NotifikasiBerhasil("Berhasil Diarsipkan");
}
return (
<>
<Button
radius={"xl"}
color="green"
mb={30}
onClick={() => {
onAction();
}}
>
Arsipkan
</Button>
</>
);
}

View File

@@ -0,0 +1,19 @@
"use client";
import { AppShell } from "@mantine/core";
import React from "react";
import ComponentJob_HeaderTamplate from "../../component/header_tamplate";
export default function LayoutJob_DetailReject({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
<AppShell header={<ComponentJob_HeaderTamplate title="Detail Reject" />}>
{children}
</AppShell>
</>
);
}

View File

@@ -0,0 +1,94 @@
"use client";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil";
import { Stack, Button, Group, Modal, Paper, Title } from "@mantine/core";
import { useAtom } from "jotai";
import ComponentJob_DetailData from "../../component/detail/detail_data";
import { gs_job_status } from "../../global_state";
import { useRouter } from "next/navigation";
import { useDisclosure } from "@mantine/hooks";
import ComponentJob_NotedBox from "../../component/detail/noted_box";
export default function Job_DetailReject() {
return (
<>
<Stack>
<ComponentJob_NotedBox informasi="Alasan reject"/>
<ComponentJob_DetailData />
<ButtonAction />
</Stack>
</>
);
}
function ButtonAction() {
const router = useRouter();
const [status, setStatus] = useAtom(gs_job_status);
const [opened, { open, close }] = useDisclosure();
async function onAction() {
router.push(RouterJob.status);
setStatus("Draft");
ComponentGlobal_NotifikasiBerhasil("Masuk Draft");
}
async function onDelete() {
router.push(RouterJob.status);
setStatus("Reject");
ComponentGlobal_NotifikasiBerhasil("Berhasil Hapus Job");
}
return (
<>
<Modal opened={opened} onClose={close} centered withCloseButton={false}>
<Paper px={"lg"}>
<Stack>
<Title order={6}>Yakin ingin menghapus ini ?</Title>
<Group grow>
<Button
radius={"xl"}
onClick={() => {
close();
}}
>
Batal
</Button>
<Button
radius={"xl"}
color="red"
onClick={() => {
onDelete();
}}
>
Hapus
</Button>
</Group>
</Stack>
</Paper>
</Modal>
<Group grow mb={50}>
<Button
radius={"xl"}
color="orange"
onClick={() => {
onAction();
}}
>
Edit Kembali
</Button>
<Button
radius={"xl"}
color="red"
onClick={() => {
open();
}}
>
Hapus
</Button>
</Group>
</>
);
}

View File

@@ -0,0 +1,19 @@
"use client";
import { AppShell } from "@mantine/core";
import React from "react";
import ComponentJob_HeaderTamplate from "../../component/header_tamplate";
export default function LayoutJob_DetailReview({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
<AppShell header={<ComponentJob_HeaderTamplate title="Detail Review" />}>
{children}
</AppShell>
</>
);
}

View File

@@ -0,0 +1,44 @@
"use client";
import { Button, Card, Image, Skeleton, Stack, Text } from "@mantine/core";
import ComponentJob_DetailData from "../../component/detail/detail_data";
import { useRouter } from "next/navigation";
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { useAtom } from "jotai";
import { gs_job_status } from "../../global_state";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/component_global/notif_global/notifikasi_berhasil";
export default function Job_DetailReview() {
return (
<>
<Stack>
<ComponentJob_DetailData />
<ButtonAction />
</Stack>
</>
);
}
function ButtonAction() {
const router = useRouter();
const [status, setStatus] = useAtom(gs_job_status);
async function onAction() {
router.push(RouterJob.status);
setStatus("Draft");
ComponentGlobal_NotifikasiBerhasil("Berhasil Dibatalkan");
}
return (
<>
<Button
radius={"xl"}
color="red"
mb={50}
onClick={() => {
onAction();
}}
>
Batalkan Review
</Button>
</>
);
}