"use client"; import { Button } from "@/components/ui/button"; import { Calendar } from "@/components/ui/calendar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; import { CalendarIcon } from "lucide-react"; import React, { useEffect, useState } from "react"; import { format } from "date-fns"; import { cn } from "@/lib/utils"; import { Checkbox } from "@/components/ui/checkbox"; import { Icon } from "@iconify/react/dist/iconify.js"; const Schedule = () => { const city = [ { key: 1, id: "metro-jaya", name: "Polda Metro Jaya", }, { key: 2, id: "jawa-barat", name: "Polda Jawa Barat", }, { key: 3, id: "banten", name: "Polda Banten", }, { key: 4, id: "jawa-tengah", name: "Polda Jawa Tengah", }, { key: 5, id: "daerah-istimewa-yogyakarta", name: "Polda D.I Yogyakarta", }, { key: 6, id: "jawa-timur", name: "Polda Jawa Timur", }, { key: 7, id: "aceh", name: "Polda Aceh", }, { key: 8, id: "sumatera-utara", name: "Polda Sumatera Utara", }, { key: 9, id: "sumatera-barat", name: "Polda Sumatera Barat", }, ]; const days = ["S", "S", "R", "K", "J", "S", "M"]; const months = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"]; const [startDate, setStartDate] = useState(new Date()); const [dateAWeek, setDateAWeek] = useState([]); const [scheduleSearch, setScheduleSearch] = useState(); const [todayList, setTodayList] = useState([]); const curr = new Date(); const startDays = (curr.getDay() + 7 - 1) % 7; curr.setDate(curr.getDate() - startDays); const dateListInit = []; curr.setDate(curr.getDate() - curr.getDay() + 1); for (let i = 0; i < 7; i++) { dateListInit.push(new Date(curr).toISOString().slice(0, 10)); curr.setDate(curr.getDate() + 1); } const [dateList, setDateList] = useState(dateListInit); useEffect(() => { async function initState() { setDateAWeek(dateList); } initState(); }, []); const handleChangeDate = (date: Date | undefined) => { setStartDate(date); const dateListTemp = []; const curr = date; if (curr) { const startDays = (curr.getDay() + 7 - 1) % 7; curr.setDate(curr.getDate() - startDays); curr.setDate(curr.getDate() - curr.getDay() + 1); for (let i = 0; i < 7; i++) { dateListTemp.push(new Date(curr).toISOString().slice(0, 10)); curr.setDate(curr.getDate() + 1); } console.log("Change Date :", dateListTemp); setDateList(dateListTemp); setDateAWeek(dateListTemp); } }; function getLastWeek(today: Date | undefined) { if (today) { return new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7); } } function getNextWeek(today: Date | undefined) { if (today) { return new Date(today.getFullYear(), today.getMonth(), today.getDate() + 7); } } const changeNextWeek = () => { console.log("Today :", startDate); const dayInNextWeek = getNextWeek(startDate); console.log("Next week :", dayInNextWeek); const dateListTemp = []; const curr = dayInNextWeek; if (curr) { const startDays = (curr.getDay() + 7 - 1) % 7; curr.setDate(curr.getDate() - startDays); curr.setDate(curr.getDate() - curr.getDay() + 1); for (let i = 0; i < 7; i++) { const newDate = new Date(curr); if (i == 0) { setStartDate(newDate); } const dateFormatter = Intl.DateTimeFormat("sv-SE"); dateListTemp.push(dateFormatter.format(newDate)); curr.setDate(curr.getDate() + 1); } console.log(dateListTemp); setDateList(dateListTemp); setDateAWeek(dateListTemp); } }; const changePrevWeek = () => { console.log(startDate); const dayInPrevWeek = getLastWeek(startDate); console.log("Prev week :", dayInPrevWeek); console.log(startDate); const dateListTemp = []; const curr = dayInPrevWeek; if (curr) { const startDays = (curr.getDay() + 7 - 1) % 7; curr.setDate(curr.getDate() - startDays); curr.setDate(curr.getDate() - curr.getDay() + 1); for (let i = 0; i < 7; i++) { const newDate = new Date(curr); if (i == 0) { setStartDate(newDate); } const dateFormatter = Intl.DateTimeFormat("sv-SE"); dateListTemp.push(dateFormatter.format(newDate)); curr.setDate(curr.getDate() + 1); } console.log(dateListTemp); setDateList(dateListTemp); setDateAWeek(dateListTemp); } }; const categories = [ { id: 1, title: "POLDA METRO JAYA" }, { id: 2, title: "POLDA JAWA BARAT" }, { id: 3, title: "POLDA BANTEN" }, { id: 4, title: "POLDA JAWA TENGAH" }, { id: 5, title: "POLDA D.I YOGYAKARTA" }, { id: 6, title: "POLDA JAWA TIMUR" }, { id: 7, title: "POLDA ACEH" }, { id: 8, title: "POLDA SUMATERA UTARA" }, { id: 9, title: "POLDA SUMATERA BARAT" }, ]; return ( <> {/* Awal Komponen Kiri */}
{ handleChangeDate(e); }} initialFocus />
Filter
Filter

Region Filter

POLDA METRO JAYA

POLDA METRO JAYA

POLDA METRO JAYA

POLDA METRO JAYA

POLDA METRO JAYA

POLDA METRO JAYA

POLDA METRO JAYA

POLDA METRO JAYA

POLDA METRO JAYA

Time Table changePrevWeek()}> {" "}

{dateAWeek[0]?.split("-")[2]}

Monday

{dateAWeek[1]?.split("-")[2]}
Tuesday
{dateAWeek[2]?.split("-")[2]}
Wednesday
{dateAWeek[3]?.split("-")[2]}
Thursday
{dateAWeek[4]?.split("-")[2]}
Friday
{dateAWeek[5]?.split("-")[2]}
Saturday

{dateAWeek[6]?.split("-")[2]}

Sunday

changeNextWeek()} className="cursor-pointer h-fit p-0 m-0 self-center">
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
24:00
01:00
02:00
03:00
04:00
05:00
); }; export default Schedule;