diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..b9c0e9c6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,29 @@ +stages: + - build + - deploy + +build-dev: + stage: build + when: on_success + only: + - main + image: docker:stable + services: + - name: docker:dind + command: ["--insecure-registry=103.82.242.92:8900"] + script: + - docker logout + - docker login -u $DEPLOY_USERNAME -p $DEPLOY_TOKEN 103.82.242.92:8900 + - docker build -t 103.82.242.92:8900/mediahub/new-mediahub-fe:dev . + - docker push 103.82.242.92:8900/mediahub/new-mediahub-fe:dev + +auto-deploy: + stage: deploy + when: on_success + only: + - main + image: curlimages/curl:latest + services: + - docker:dind + script: + - curl --user admin:$JENKINS_PWD http://38.47.180.165:8080/job/auto-deploy-new-mediahub-fe/build?token=autodeploynewmediahub diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..13b638c8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM node:21-alpine + +ENV PORT 3000 + +# Create app directory +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# Installing dependencies +COPY package*.json /usr/src/app/ + +# RUN npm install --force +RUN npm install -g npm@latest +RUN npm install next --legacy-peer-deps + +# Copying source files +COPY . /usr/src/app + +# Building app +RUN npm run build +EXPOSE 3000 + +# Running the app +CMD "npm" "run" "start" diff --git a/app/(root)/page.tsx b/app/(root)/page.tsx deleted file mode 100644 index 5c618e91..00000000 --- a/app/(root)/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from "react"; - -const page = () => { - return
ppp
; -}; - -export default page; diff --git a/app/[locale]/(protected)/agenda-setting/event-modal.tsx b/app/[locale]/(protected)/agenda-setting/event-modal.tsx index 4d698df7..87ebc61f 100644 --- a/app/[locale]/(protected)/agenda-setting/event-modal.tsx +++ b/app/[locale]/(protected)/agenda-setting/event-modal.tsx @@ -1,11 +1,11 @@ -"use client" +"use client"; import React, { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { useForm, Controller } from "react-hook-form"; -import { cn, } from "@/lib/utils"; -import { format } from "date-fns" +import { cn } from "@/lib/utils"; +import { format } from "date-fns"; import { Popover, PopoverContent, @@ -24,23 +24,36 @@ import { z } from "zod"; import { Loader2, CalendarIcon } from "lucide-react"; import DeleteConfirmationDialog from "@/components/delete-confirmation-dialog"; import { CalendarCategory } from "./data"; -import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; const schema = z.object({ title: z.string().min(3, { message: "Required" }), }); -const EventModal = ({ open, onClose, categories, event, selectedDate }: { +const EventModal = ({ + open, + onClose, + categories, + event, + selectedDate, +}: { open: boolean; onClose: () => void; categories: any; event: any; - selectedDate: any + selectedDate: any; }) => { const [startDate, setStartDate] = useState(new Date()); const [endDate, setEndDate] = useState(new Date()); const [isPending, startTransition] = React.useTransition(); - const [calendarProps, setCalendarProps] = React.useState(categories[0].value); + const [calendarProps, setCalendarProps] = React.useState( + categories[0].value + ); // delete modal state const [deleteModalOpen, setDeleteModalOpen] = useState(false); const [eventIdToDelete, setEventIdToDelete] = useState(null); @@ -58,7 +71,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { }); const onSubmit = (data: any) => { - startTransition(async () => { + startTransition(() => { if (!event) { data.start = startDate; data.end = endDate; @@ -91,10 +104,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { const onDeleteEventAction = async () => { try { - - } catch (error) { - - } + } catch (error) {} }; const handleOpenDeleteModal = (eventId: string) => { @@ -112,9 +122,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { defaultToast={false} /> - + {event ? "Edit Event" : "Create Event"} {event?.title} @@ -133,7 +141,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { /> {errors?.title?.message && (
- {typeof errors?.title?.message === 'string' + {typeof errors?.title?.message === "string" ? errors?.title?.message : JSON.stringify(errors?.title?.message)}
diff --git a/app/[locale]/(protected)/app/calendar/event-modal.tsx b/app/[locale]/(protected)/app/calendar/event-modal.tsx index 4d698df7..87ebc61f 100644 --- a/app/[locale]/(protected)/app/calendar/event-modal.tsx +++ b/app/[locale]/(protected)/app/calendar/event-modal.tsx @@ -1,11 +1,11 @@ -"use client" +"use client"; import React, { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { useForm, Controller } from "react-hook-form"; -import { cn, } from "@/lib/utils"; -import { format } from "date-fns" +import { cn } from "@/lib/utils"; +import { format } from "date-fns"; import { Popover, PopoverContent, @@ -24,23 +24,36 @@ import { z } from "zod"; import { Loader2, CalendarIcon } from "lucide-react"; import DeleteConfirmationDialog from "@/components/delete-confirmation-dialog"; import { CalendarCategory } from "./data"; -import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; const schema = z.object({ title: z.string().min(3, { message: "Required" }), }); -const EventModal = ({ open, onClose, categories, event, selectedDate }: { +const EventModal = ({ + open, + onClose, + categories, + event, + selectedDate, +}: { open: boolean; onClose: () => void; categories: any; event: any; - selectedDate: any + selectedDate: any; }) => { const [startDate, setStartDate] = useState(new Date()); const [endDate, setEndDate] = useState(new Date()); const [isPending, startTransition] = React.useTransition(); - const [calendarProps, setCalendarProps] = React.useState(categories[0].value); + const [calendarProps, setCalendarProps] = React.useState( + categories[0].value + ); // delete modal state const [deleteModalOpen, setDeleteModalOpen] = useState(false); const [eventIdToDelete, setEventIdToDelete] = useState(null); @@ -58,7 +71,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { }); const onSubmit = (data: any) => { - startTransition(async () => { + startTransition(() => { if (!event) { data.start = startDate; data.end = endDate; @@ -91,10 +104,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { const onDeleteEventAction = async () => { try { - - } catch (error) { - - } + } catch (error) {} }; const handleOpenDeleteModal = (eventId: string) => { @@ -112,9 +122,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { defaultToast={false} /> - + {event ? "Edit Event" : "Create Event"} {event?.title} @@ -133,7 +141,7 @@ const EventModal = ({ open, onClose, categories, event, selectedDate }: { /> {errors?.title?.message && (
- {typeof errors?.title?.message === 'string' + {typeof errors?.title?.message === "string" ? errors?.title?.message : JSON.stringify(errors?.title?.message)}
diff --git a/app/[locale]/(protected)/blog/page.tsx b/app/[locale]/(protected)/blog/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/blog/page.tsx +++ b/app/[locale]/(protected)/blog/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/communications/account-report/page.tsx b/app/[locale]/(protected)/communications/account-report/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/communications/account-report/page.tsx +++ b/app/[locale]/(protected)/communications/account-report/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/communications/collaboration/page.tsx b/app/[locale]/(protected)/communications/collaboration/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/communications/collaboration/page.tsx +++ b/app/[locale]/(protected)/communications/collaboration/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/communications/forward/page.tsx b/app/[locale]/(protected)/communications/forward/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/communications/forward/page.tsx +++ b/app/[locale]/(protected)/communications/forward/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/communications/internal/page.tsx b/app/[locale]/(protected)/communications/internal/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/communications/internal/page.tsx +++ b/app/[locale]/(protected)/communications/internal/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/communications/questions/page.tsx b/app/[locale]/(protected)/communications/questions/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/communications/questions/page.tsx +++ b/app/[locale]/(protected)/communications/questions/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/content/spit/page.tsx b/app/[locale]/(protected)/content/spit/page.tsx index 75f82a8c..c87af372 100644 --- a/app/[locale]/(protected)/content/spit/page.tsx +++ b/app/[locale]/(protected)/content/spit/page.tsx @@ -1,11 +1,11 @@ "use client"; import { Card, CardContent } from "@/components/ui/card"; import SiteBreadcrumb from "@/components/site-breadcrumb"; -import TableImage from "./table-spit"; +import TableImage from "./table-spit/page"; import { Newspaper, NewspaperIcon, UploadIcon } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Icon } from "@iconify/react/dist/iconify.js"; -import TableSPIT from "./table-spit"; +import TableSPIT from "./table-spit/page"; const ReactTableSPITPage = () => { return ( diff --git a/app/[locale]/(protected)/content/spit/table-spit/index.tsx b/app/[locale]/(protected)/content/spit/table-spit/page.tsx similarity index 97% rename from app/[locale]/(protected)/content/spit/table-spit/index.tsx rename to app/[locale]/(protected)/content/spit/table-spit/page.tsx index f298f706..b343e6a3 100644 --- a/app/[locale]/(protected)/content/spit/table-spit/index.tsx +++ b/app/[locale]/(protected)/content/spit/table-spit/page.tsx @@ -1,5 +1,4 @@ "use client"; - import * as React from "react"; import { ColumnDef, @@ -25,8 +24,6 @@ import { TableRow, } from "@/components/ui/table"; -import { data } from "./data"; -import TablePagination from "./table-pagination"; import { Button } from "@/components/ui/button"; import { format } from "date-fns"; import { @@ -45,12 +42,7 @@ import { import { title } from "process"; import { getCookiesDecrypt } from "@/lib/utils"; -import { - listDataAudio, - listDataImage, - listDataVideo, - listSPIT, -} from "@/service/content/content"; +import { listSPIT } from "@/service/content/content"; import { pages } from "next/dist/build/templates/app-page"; export type CompanyData = { @@ -65,7 +57,7 @@ export type CompanyData = { isDone: string; }; -export const columns: ColumnDef[] = [ +const columns: ColumnDef[] = [ { accessorKey: "no", header: "No", diff --git a/app/[locale]/(protected)/dashboard/routine-task/most-sales.tsx b/app/[locale]/(protected)/dashboard/routine-task/most-sales.tsx index ab78a6fd..c1d320d5 100644 --- a/app/[locale]/(protected)/dashboard/routine-task/most-sales.tsx +++ b/app/[locale]/(protected)/dashboard/routine-task/most-sales.tsx @@ -1,6 +1,6 @@ -"use client" +"use client"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import world from "./world-map.json"; +// import world from "./world-map.json"; import { VectorMap } from "@south-paw/react-vector-maps"; import { useState } from "react"; import { cn } from "@/lib/utils"; @@ -39,7 +39,6 @@ const sales = [ }, ]; - const MostSales = () => { const [filterMap, setFilterMap] = useState("usa"); const t = useTranslations("AnalyticsDashboard"); @@ -63,7 +62,10 @@ const MostSales = () => { setFilterMap("usa")} > @@ -111,7 +113,7 @@ const MostSales = () => {
- + {/* */}
diff --git a/app/[locale]/(protected)/faq/page.tsx b/app/[locale]/(protected)/faq/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/faq/page.tsx +++ b/app/[locale]/(protected)/faq/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/knowledge-base/page.tsx b/app/[locale]/(protected)/knowledge-base/page.tsx index 98fa1cb8..f5995af4 100644 --- a/app/[locale]/(protected)/knowledge-base/page.tsx +++ b/app/[locale]/(protected)/knowledge-base/page.tsx @@ -1,6 +1,5 @@ import SiteBreadcrumb from "@/components/site-breadcrumb"; import { Card, CardContent } from "@/components/ui/card"; -import MediahubTable from "../planning/mediahub/table-mediahub/mediahub-table"; import { Button } from "@/components/ui/button"; import { UploadIcon } from "lucide-react"; import BlogTable from "./table/blog-table"; diff --git a/app/[locale]/(protected)/layout.tsx b/app/[locale]/(protected)/layout.tsx index e8932eb2..e76aca90 100644 --- a/app/[locale]/(protected)/layout.tsx +++ b/app/[locale]/(protected)/layout.tsx @@ -1,30 +1,26 @@ import LayoutProvider from "@/providers/layout.provider"; import LayoutContentProvider from "@/providers/content.provider"; -import DashCodeSidebar from '@/components/partials/sidebar' -import DashCodeFooter from '@/components/partials/footer' -import ThemeCustomize from '@/components/partials/customizer' -import DashCodeHeader from '@/components/partials/header' +import DashCodeSidebar from "@/components/partials/sidebar"; +import DashCodeFooter from "@/components/partials/footer"; +import ThemeCustomize from "@/components/partials/customizer"; +import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; const layout = async ({ children }: { children: React.ReactNode }) => { - const session = await auth(); - - if (!session) { - redirect("/"); - } - return ( - - - - - - {children} - - - - ) - + const session = await auth(); + if (!session) { + redirect("/"); + } + return ( + + + {/* */} + + {children} + {/* */} + + ); }; export default layout; diff --git a/app/[locale]/(protected)/planning/medsos-mediahub/table-medsos/medsos-table.tsx b/app/[locale]/(protected)/planning/medsos-mediahub/table-medsos/medsos-table.tsx index 14eda2a6..104a8d39 100644 --- a/app/[locale]/(protected)/planning/medsos-mediahub/table-medsos/medsos-table.tsx +++ b/app/[locale]/(protected)/planning/medsos-mediahub/table-medsos/medsos-table.tsx @@ -54,7 +54,6 @@ export type CompanyData = { import { data } from "./data"; import { Input } from "@/components/ui/input"; import { InputGroup, InputGroupText } from "@/components/ui/input-group"; -import { listTask } from "@/service/ppid-categories-services"; import page from "../page"; import { getPlanningSentPagination } from "@/service/planning/planning"; diff --git a/app/[locale]/(public)/audio/layout.tsx b/app/[locale]/(public)/audio/layout.tsx index 5eca8060..9670b380 100644 --- a/app/[locale]/(public)/audio/layout.tsx +++ b/app/[locale]/(public)/audio/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/document/layout.tsx b/app/[locale]/(public)/document/layout.tsx index 5eca8060..9670b380 100644 --- a/app/[locale]/(public)/document/layout.tsx +++ b/app/[locale]/(public)/document/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/image/layout.tsx b/app/[locale]/(public)/image/layout.tsx index 5eca8060..9670b380 100644 --- a/app/[locale]/(public)/image/layout.tsx +++ b/app/[locale]/(public)/image/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/indeks/layout.tsx b/app/[locale]/(public)/indeks/layout.tsx index 5eca8060..9670b380 100644 --- a/app/[locale]/(public)/indeks/layout.tsx +++ b/app/[locale]/(public)/indeks/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/schedule/layout.tsx b/app/[locale]/(public)/schedule/layout.tsx index 5eca8060..9670b380 100644 --- a/app/[locale]/(public)/schedule/layout.tsx +++ b/app/[locale]/(public)/schedule/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/(public)/video/layout.tsx b/app/[locale]/(public)/video/layout.tsx index 5eca8060..9670b380 100644 --- a/app/[locale]/(public)/video/layout.tsx +++ b/app/[locale]/(public)/video/layout.tsx @@ -6,8 +6,8 @@ import ThemeCustomize from "@/components/partials/customizer"; import DashCodeHeader from "@/components/partials/header"; import { auth } from "@/lib/auth"; import { redirect } from "@/components/navigation"; -import Navbar from "@/components/landing-page/navbar"; -import Footer from "@/components/landing-page/footer"; +import Footer from "@/components/landing-page/Footer"; +import Navbar from "@/components/landing-page/Navbar"; const layout = async ({ children }: { children: React.ReactNode }) => { return ( diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 52ec5403..a306a852 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -5,10 +5,10 @@ import NewContent from "@/components/landing-page/new-content"; import PopularContent from "@/components/landing-page/popular-content"; import ContentCategory from "@/components/landing-page/content-category"; import Coverage from "@/components/landing-page/coverage"; -import Navbar from "@/components/landing-page/navbar"; -import Hero from "@/components/landing-page/hero"; -import Footer from "@/components/landing-page/footer"; +import Navbar from "@/components/landing-page/Navbar"; import Division from "@/components/landing-page/division"; +import Hero from "@/components/landing-page/Hero"; +import Footer from "@/components/landing-page/Footer"; const Home = ({ params: { locale } }: { params: { locale: string } }) => { return ( @@ -16,8 +16,9 @@ const Home = ({ params: { locale } }: { params: { locale: string } }) => { - - + + + {/* */} diff --git a/components/delete-confirmation-dialog.tsx b/components/delete-confirmation-dialog.tsx index 1e4c4803..5f483093 100644 --- a/components/delete-confirmation-dialog.tsx +++ b/components/delete-confirmation-dialog.tsx @@ -12,7 +12,12 @@ import { import { toast } from "react-hot-toast"; import { Loader2 } from "lucide-react"; -const DeleteConfirmationDialog = ({ open, onClose, onConfirm, defaultToast = true, toastMessage = "Successfully deleted", +const DeleteConfirmationDialog = ({ + open, + onClose, + onConfirm, + defaultToast = true, + toastMessage = "Successfully deleted", }: { open: boolean; onClose: () => void; @@ -22,12 +27,12 @@ const DeleteConfirmationDialog = ({ open, onClose, onConfirm, defaultToast = tru }) => { const [isPending, startTransition] = useTransition(); - const handleConfirm = async () => { + const handleConfirm = () => { if (!onConfirm) { onClose(); return; } - await onConfirm(); + onConfirm(); onClose(); if (defaultToast) { diff --git a/components/form/communication/collaboration-form.tsx b/components/form/communication/collaboration-form.tsx index 768e9cca..fbb02466 100644 --- a/components/form/communication/collaboration-form.tsx +++ b/components/form/communication/collaboration-form.tsx @@ -10,17 +10,7 @@ import * as z from "zod"; import Swal from "sweetalert2"; import withReactContent from "sweetalert2-react-content"; import { useRouter } from "next/navigation"; - -import { Checkbox } from "@/components/ui/checkbox"; -import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import JoditEditor from "jodit-react"; -import { type } from "os"; -import loading from "@/app/[locale]/(protected)/app/projects/loading"; -import { request } from "http"; -import { error } from "@/lib/utils"; -import { createTask } from "@/service/task"; -import { options } from "@fullcalendar/core/preact.js"; -import { setOptions } from "leaflet"; import { getCuratorUser, getTicketingPriority, diff --git a/components/form/communication/internal-form.tsx b/components/form/communication/internal-form.tsx index dc71d180..86ab54a4 100644 --- a/components/form/communication/internal-form.tsx +++ b/components/form/communication/internal-form.tsx @@ -11,16 +11,7 @@ import Swal from "sweetalert2"; import withReactContent from "sweetalert2-react-content"; import { useRouter } from "next/navigation"; -import { Checkbox } from "@/components/ui/checkbox"; -import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import JoditEditor from "jodit-react"; -import { type } from "os"; -import loading from "@/app/[locale]/(protected)/app/projects/loading"; -import { request } from "http"; -import { error } from "@/lib/utils"; -import { createTask } from "@/service/task"; -import { options } from "@fullcalendar/core/preact.js"; -import { setOptions } from "leaflet"; import { getCuratorUser, getTicketingPriority, diff --git a/components/landing-page/Hero.tsx b/components/landing-page/Hero.tsx index 5db61cc1..48f13719 100644 --- a/components/landing-page/Hero.tsx +++ b/components/landing-page/Hero.tsx @@ -1,122 +1,80 @@ -import { textEllipsis } from "@/utils/globals"; +import { formatDateToIndonesian, textEllipsis } from "@/utils/globals"; import React, { useEffect, useState } from "react"; import { Swiper, SwiperSlide } from "swiper/react"; import "swiper/css/bundle"; +import { getHeroData } from "@/service/landing/landing"; +import Link from "next/link"; +import { useParams, usePathname, useRouter } from "next/navigation"; const Hero: React.FC = () => { + const router = useRouter(); + const pathname = usePathname(); + const params = useParams(); + const locale = params?.locale; + + const [heroData, setHeroData] = useState(); + useEffect(() => { + initFetch(); + }, []); + const initFetch = async () => { + const response = await getHeroData(); + console.log(response); + setHeroData(response?.data?.data?.content); + }; return (
{/* Section Gambar Utama */} -
+
console.log("slide change")} onSwiper={(swiper) => console.log(swiper)}> - -
- Gambar Utama -
- Liputan Kegiatan -

Divisi Humas Polri Siap Menuju Zona Integritas

-

15 Maret 2024 14:01 WIB |

+ {heroData?.map((list: any) => ( + +
+ Gambar Utama +
+ {list?.categoryName} + +

{list?.title}

+ + +

+ {formatDateToIndonesian(new Date(list?.createdAt))} {list?.timezone ? list?.timezone : "WIB"}|{" "} + + + {" "} + {list?.clickCount}{" "} +

+
-
- - -
- Gambar Utama -
- Liputan Kegiatan -

Divisi Humas Polri Siap Menuju Zona Integritas

-

15 Maret 2024 14:01 WIB |

-
-
-
- -
- Gambar Utama -
- Liputan Kegiatan -

Divisi Humas Polri Siap Menuju Zona Integritas

-

15 Maret 2024 14:01 WIB |

-
-
-
- -
- Gambar Utama -
- Liputan Kegiatan -

Divisi Humas Polri Siap Menuju Zona Integritas

-

- 15 Maret 2024 14:01 WIB |{" "} - - - {" "} - 633{" "} -

-
-
-
+ + ))}
{/* Section Kanan */}
); diff --git a/components/partials/header/index.tsx b/components/partials/header/index.tsx index 9d21b981..2d48037a 100644 --- a/components/partials/header/index.tsx +++ b/components/partials/header/index.tsx @@ -1,42 +1,39 @@ -import React from 'react' -import HeaderContent from './header-content' -import HeaderSearch from './header-search' -import ProfileInfo from './profile-info' -import Notifications from './notifications' -import Messages from "./messages" -import { Cart } from './cart' -import ThemeSwitcher from './theme-switcher' -import { SidebarToggle } from '@/components/partials/sidebar/sidebar-toggle' -import { SheetMenu } from '@/components/partials/sidebar/menu/sheet-menu' -import HorizontalMenu from "./horizontal-menu" -import LocalSwitcher from './locale-switcher' -import HeaderLogo from "./header-logo" - +import React from "react"; +import HeaderContent from "./header-content"; +import HeaderSearch from "./header-search"; +import ProfileInfo from "./profile-info"; +import Notifications from "./notifications"; +import Messages from "./messages"; +import { Cart } from "./cart"; +import ThemeSwitcher from "./theme-switcher"; +import { SidebarToggle } from "@/components/partials/sidebar/sidebar-toggle"; +import { SheetMenu } from "@/components/partials/sidebar/menu/sheet-menu"; +import HorizontalMenu from "./horizontal-menu"; +import LocalSwitcher from "./locale-switcher"; +import HeaderLogo from "./header-logo"; const DashCodeHeader = async () => { + return ( + <> + +
+ + + +
+
+ + + + + + {/* */} + +
+
+ + + ); +}; - - return ( - <> - -
- - - -
-
- - - - - - - -
-
- - - ) -} - -export default DashCodeHeader \ No newline at end of file +export default DashCodeHeader; diff --git a/components/partials/header/profile-info.tsx b/components/partials/header/profile-info.tsx index 2ad6ac6c..097272f5 100644 --- a/components/partials/header/profile-info.tsx +++ b/components/partials/header/profile-info.tsx @@ -1,4 +1,3 @@ - import { DropdownMenu, DropdownMenuContent, @@ -12,23 +11,20 @@ import { DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import { Icon } from "@/components/ui/icon" +import { Icon } from "@/components/ui/icon"; import { signOut, auth } from "@/lib/auth"; import Image from "next/image"; -import { Link } from '@/i18n/routing'; +import { Link } from "@/i18n/routing"; import { Button } from "@/components/ui/button"; const ProfileInfo = async () => { const session = await auth(); - - return (
- {session?.user?.name?.charAt(0) { - {session?.user?.name?.charAt(0) { { name: "profile", icon: "heroicons:user", - href: "/user-profile" + href: "/user-profile", }, { name: "Billing", icon: "heroicons:megaphone", - href: "/dashboard" + href: "/dashboard", }, { name: "Settings", icon: "heroicons:paper-airplane", - href: "/dashboard" + href: "/dashboard", }, { name: "Keyboard shortcuts", icon: "heroicons:language", - href: "/dashboard" + href: "/dashboard", }, ].map((item, index) => ( { - - +
{ - "use server"; - await signOut(); - }} + // action={async () => { + // "use server"; + // await signOut(); + // }} > - diff --git a/package-lock.json b/package-lock.json index 71f0e2e6..b0f71d05 100644 --- a/package-lock.json +++ b/package-lock.json @@ -298,9 +298,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.3.tgz", - "integrity": "sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.3", @@ -360,9 +360,9 @@ } }, "node_modules/@dnd-kit/core": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.0.tgz", - "integrity": "sha512-1PZxmnH+hQFwcaVRCe4SrtBn4cZ9S0trGtxHE13iLGEEZFhiFe+Sxg4ZUlwirYsXJCejqUYDi85PQC7J8/AINg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -465,9 +465,9 @@ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "node_modules/@emotion/cache": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.5.tgz", - "integrity": "sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", "dependencies": { "@emotion/memoize": "^0.9.0", "@emotion/sheet": "^1.4.0", @@ -492,15 +492,15 @@ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.5.tgz", - "integrity": "sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.13.5", + "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" @@ -537,9 +537,9 @@ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "peerDependencies": { "react": ">=16.8.0" } @@ -678,46 +678,47 @@ "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" }, "node_modules/@formatjs/ecma402-abstract": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.4.tgz", - "integrity": "sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.1.tgz", + "integrity": "sha512-Ip9uV+/MpLXWRk03U/GzeJMuPeOXpJBSB5V1tjA6kJhvqssye5J5LoYLc7Z5IAHb7nR62sRoguzrFiVCP/hnzw==", "dependencies": { - "@formatjs/fast-memoize": "2.2.3", - "@formatjs/intl-localematcher": "0.5.8", + "@formatjs/fast-memoize": "2.2.5", + "@formatjs/intl-localematcher": "0.5.9", + "decimal.js": "10", "tslib": "2" } }, "node_modules/@formatjs/fast-memoize": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.3.tgz", - "integrity": "sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.5.tgz", + "integrity": "sha512-6PoewUMrrcqxSoBXAOJDiW1m+AmkrAj0RiXnOMD59GRaswjXhm3MDhgepXPBgonc09oSirAJTsAggzAGQf6A6g==", "dependencies": { "tslib": "2" } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.4.tgz", - "integrity": "sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg==", + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.7.tgz", + "integrity": "sha512-cuEHyRM5VqLQobANOjtjlgU7+qmk9Q3fDQuBiRRJ3+Wp3ZoZhpUPtUfuimZXsir6SaI2TaAJ+SLo9vLnV5QcbA==", "dependencies": { - "@formatjs/ecma402-abstract": "2.2.4", - "@formatjs/icu-skeleton-parser": "1.8.8", + "@formatjs/ecma402-abstract": "2.3.1", + "@formatjs/icu-skeleton-parser": "1.8.11", "tslib": "2" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.8.tgz", - "integrity": "sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA==", + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.11.tgz", + "integrity": "sha512-8LlHHE/yL/zVJZHAX3pbKaCjZKmBIO6aJY1mkVh4RMSEu/2WRZ4Ysvv3kKXJ9M8RJLBHdnk1/dUQFdod1Dt7Dw==", "dependencies": { - "@formatjs/ecma402-abstract": "2.2.4", + "@formatjs/ecma402-abstract": "2.3.1", "tslib": "2" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.8.tgz", - "integrity": "sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.9.tgz", + "integrity": "sha512-8zkGu/sv5euxbjfZ/xmklqLyDGQSxsLqg8XOq88JW3cmJtzhCP8EtSJXlaKZnVO4beEaoiT9wj4eIoCQ9smwxA==", "dependencies": { "tslib": "2" } @@ -849,9 +850,9 @@ "dev": true }, "node_modules/@iconify/react": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@iconify/react/-/react-5.0.2.tgz", - "integrity": "sha512-wtmstbYlEbo4NDxFxBJkhkf9gJBDqMGr7FaqLrAUMneRV3Z+fVHLJjOhWbkAF8xDQNFC/wcTYdrWo1lnRhmagQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-5.1.0.tgz", + "integrity": "sha512-vj2wzalywy23DR37AnsogMPIkDa1nKEqITjxpH4z44tiLV869Mh7VyydD4/t0yJLEs9tsxlrPWtXvMOe1Lcd5g==", "dependencies": { "@iconify/types": "^2.0.0" }, @@ -1612,9 +1613,9 @@ } }, "node_modules/@next/bundle-analyzer": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-15.0.3.tgz", - "integrity": "sha512-x7ZNvpoQPO0C5ZG//qVp21Qs3v6+C8LBJmdu9DKj4/NmjlnwoQ7dqRZ/nKZcwVhkFT7BHf+Qd5FaeHq9IDJvDQ==", + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-15.0.4.tgz", + "integrity": "sha512-0If3/mxqUWYC0lAdV5cChGA1Xs1BENjaLyJkdqpI2df86HqprcDZagiB2IU1xc5ph7xZHRdi5mT2cY7VkyibTQ==", "dev": true, "dependencies": { "webpack-bundle-analyzer": "4.10.1" @@ -3379,9 +3380,9 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.10.9", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.10.9.tgz", - "integrity": "sha512-OXO2uBjFqA4Ibr2O3y0YMnkrRWGVNqcvHQXmGvMu6IK8chZl3PrDxFXdGZ2iZkSrKh3/qUYoFqYe+Rx23RoU0g==", + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.1.tgz", + "integrity": "sha512-orn2QNe5tF6SqjucHJ6cKTKcRDe3GG7bcYqPNn72Yejj7noECdzgAyRfGt2pGDPemhYim3d1HIR/dgruCnLfUA==", "dependencies": { "@tanstack/virtual-core": "3.10.9" }, @@ -3390,8 +3391,8 @@ "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@tanstack/table-core": { @@ -3543,9 +3544,9 @@ } }, "node_modules/@types/geojson": { - "version": "7946.0.14", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", + "version": "7946.0.15", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", + "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", "dev": true }, "node_modules/@types/google.maps": { @@ -3633,9 +3634,9 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" }, "node_modules/@types/qs": { "version": "6.9.17", @@ -3643,9 +3644,9 @@ "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==" }, "node_modules/@types/react": { - "version": "18.3.13", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.13.tgz", - "integrity": "sha512-ii/gswMmOievxAJed4PAHT949bpYjPKXvXo1v6cRB/kqc2ZR4n+SgyCyvyc5Fec5ez8VnUumI1Vk7j6fRyRogg==", + "version": "18.3.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.14.tgz", + "integrity": "sha512-NzahNKvjNhVjuPBQ+2G7WlxstQ+47kXZNHlUvFakDViuIEfGY926GqhMueQFZ7woG+sPiQKlF36XfrIUVSUfFg==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -3835,9 +3836,9 @@ } }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", + "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==" }, "node_modules/@vercel/analytics": { "version": "1.4.1", @@ -4361,15 +4362,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -4378,6 +4378,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -4396,9 +4408,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001686", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", - "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", "funding": [ { "type": "opencollective", @@ -5255,9 +5267,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dependencies": { "ms": "^2.1.3" }, @@ -5270,6 +5282,11 @@ } } }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, "node_modules/decimal.js-light": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", @@ -5492,6 +5509,19 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dunder-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz", + "integrity": "sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -5651,12 +5681,9 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "engines": { "node": ">= 0.4" } @@ -6603,9 +6630,9 @@ } }, "node_modules/framer-motion": { - "version": "11.13.1", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.13.1.tgz", - "integrity": "sha512-F40tpGTHByhn9h3zdBQPcEro+pSLtzARcocbNqAyfBI+u9S+KZuHH/7O9+z+GEkoF3eqFxfvVw0eBDytohwqmQ==", + "version": "11.13.3", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.13.3.tgz", + "integrity": "sha512-3ZSNuYpDFeNxqVKUyYipOm5A1fXSbMje1XIfEWxKTJ4ughl5FEjvkp6gKmFHLjzwijCVU/PjsMNlTMVCmi+Twg==", "dependencies": { "motion-dom": "^11.13.0", "motion-utils": "^11.13.0", @@ -6692,15 +6719,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.5.tgz", + "integrity": "sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -7023,11 +7053,12 @@ } }, "node_modules/has-proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", - "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, "dependencies": { - "call-bind": "^1.0.7" + "dunder-proto": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -7552,9 +7583,9 @@ "dev": true }, "node_modules/html-react-parser": { - "version": "5.1.19", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.1.19.tgz", - "integrity": "sha512-ecjQg5KDhM+Yv3tRRfdp0fYSdSYHI1FQEDqou0g8NO7mXuoK8ksbYGRjeslqWO6QWX3PKREVWnC8VS1FSZaFHA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.2.0.tgz", + "integrity": "sha512-t5IkGKTBYnjmYUzEV1RBT5twACepcf20u6Q0TylXQkb6NQKaBFSMebb/S/joxXrg8IHc+ROLirQIZc5DkD23hA==", "dependencies": { "domhandler": "5.0.3", "html-dom-parser": "5.0.11", @@ -7562,8 +7593,8 @@ "style-to-js": "1.1.16" }, "peerDependencies": { - "@types/react": "0.14 || 15 || 16 || 17 || 18", - "react": "0.14 || 15 || 16 || 17 || 18" + "@types/react": "0.14 || 15 || 16 || 17 || 18 || 19", + "react": "0.14 || 15 || 16 || 17 || 18 || 19" }, "peerDependenciesMeta": { "@types/react": { @@ -7706,13 +7737,13 @@ "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==" }, "node_modules/intl-messageformat": { - "version": "10.7.7", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.7.tgz", - "integrity": "sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA==", + "version": "10.7.10", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.10.tgz", + "integrity": "sha512-hp7iejCBiJdW3zmOe18FdlJu8U/JsADSDiBPQhfdSeI8B9POtvPRvPh3nMlvhYayGMKLv6maldhR7y3Pf1vkpw==", "dependencies": { - "@formatjs/ecma402-abstract": "2.2.4", - "@formatjs/fast-memoize": "2.2.3", - "@formatjs/icu-messageformat-parser": "2.9.4", + "@formatjs/ecma402-abstract": "2.3.1", + "@formatjs/fast-memoize": "2.2.5", + "@formatjs/icu-messageformat-parser": "2.9.7", "tslib": "2" } }, @@ -8450,9 +8481,9 @@ } }, "node_modules/katex": { - "version": "0.16.11", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", - "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", + "version": "0.16.15", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.15.tgz", + "integrity": "sha512-yE9YJIEAk2aZ+FL/G8r+UGw0CTUzEA8ZFy6E+8tc3spHUKq3qBnzCkI1CQwGoI9atJhVyFPEypQsTY7mJ1Pi9w==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -10383,9 +10414,9 @@ } }, "node_modules/next-intl": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/next-intl/-/next-intl-3.25.3.tgz", - "integrity": "sha512-3VQ+OZdU9Z2enx5uWLYfmd/eb/gZN6QIfj59ROE/R+MTSD7ZAOPsGFnKqj5wwqm4EISGviYenkSuxypyYnhomA==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/next-intl/-/next-intl-3.26.0.tgz", + "integrity": "sha512-gkamnHIANQzeW8xpTGRxd0xiOCztQhY8GDp79fgdlw0GioqrjTEfSWLhHkgaAtvHRbuh/ByJdwiEY5eNK9bUSQ==", "funding": [ { "type": "individual", @@ -10395,11 +10426,11 @@ "dependencies": { "@formatjs/intl-localematcher": "^0.5.4", "negotiator": "^1.0.0", - "use-intl": "^3.25.3" + "use-intl": "^3.26.0" }, "peerDependencies": { "next": "^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0" } }, "node_modules/next-mdx-remote": { @@ -11497,9 +11528,9 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/react-hook-form": { - "version": "7.53.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.2.tgz", - "integrity": "sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==", + "version": "7.54.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.0.tgz", + "integrity": "sha512-PS05+UQy/IdSbJNojBypxAo9wllhHgGmyr8/dyGQcPoiMf3e7Dfb9PWYVRco55bLbxH9S+1yDDJeTdlYCSxO3A==", "engines": { "node": ">=18.0.0" }, @@ -11839,18 +11870,19 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/reflect.getprototypeof": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", - "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz", + "integrity": "sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", + "dunder-proto": "^1.0.0", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "which-builtin-type": "^1.1.4" + "gopd": "^1.2.0", + "which-builtin-type": "^1.2.0" }, "engines": { "node": ">= 0.4" @@ -12565,9 +12597,9 @@ } }, "node_modules/sonner": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.0.tgz", - "integrity": "sha512-W6dH7m5MujEPyug3lpI2l3TC3Pp1+LTgK0Efg+IHDrBbtEjyCmCHHo6yfNBOsf1tFZ6zf+jceWwB38baC8yO9g==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.1.tgz", + "integrity": "sha512-b6LHBfH32SoVasRFECrdY8p8s7hXPDn3OHUFbZZbiB1ctLS9Gdh6rpX2dVrpQA0kiL5jcRzDDldwwLkSKk3+QQ==", "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" @@ -13802,23 +13834,23 @@ } }, "node_modules/use-intl": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/use-intl/-/use-intl-3.25.3.tgz", - "integrity": "sha512-zF+GHRx7auT1qpmiPMN+RnzSad6W5ZjhOpgC5Li/TByqCkMs4SP3xcd8C0jWxT8YI8Ucl518bnkS+gvKIvrXjw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/use-intl/-/use-intl-3.26.0.tgz", + "integrity": "sha512-HGXmpjGlbEv1uFZPfm557LK8p/hv0pKF9UwnrJeHUTxQx6bUGzMgpmPRLCVY3zkr7hfjy4LPwQJfk4Fhnn+dIg==", "dependencies": { "@formatjs/fast-memoize": "^2.2.0", "intl-messageformat": "^10.5.14" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0" } }, "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", + "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -13856,11 +13888,11 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util-deprecate": { diff --git a/service/http-config/http-base-service.ts b/service/http-config/http-base-service.ts index d1f22381..3fb234c7 100644 --- a/service/http-config/http-base-service.ts +++ b/service/http-config/http-base-service.ts @@ -4,53 +4,27 @@ import axios from "axios"; import Cookies from "js-cookie"; import qs from "qs"; -// export async function httpPost(pathUrl: any, headers: any, data?: any) { -// const response = await axiosBaseInstance -// .post(pathUrl, data, { headers }) -// .catch(function (error: any) { -// console.log(error); -// return error.response; -// }); -// console.log("Response base svc : ", response); -// if (response?.status == 200 || response?.status == 201) { -// return { -// error: false, -// message: "success", -// data: response?.data, -// }; -// } else { -// return { -// error: true, -// message: response?.data?.message || response?.data || null, -// data: null, -// }; -// } -// } - -const baseURL = "https://netidhub.com/api/"; -const tokenAuth = Cookies.get("access_token") - ? Cookies.get("access_token") - : null; - -export async function postAPI(url: any, data: any) { - const headers = { - Authorization: `Bearer ${tokenAuth}`, - }; - const response = await axiosInstance - .post(url, qs.stringify(data), { headers }) - .catch((error) => error.response); - if (response?.status > 300) { - return { - error: true, - message: response?.data.error_description, - data: null, - }; - } - return { - error: false, - message: "success", - data: response?.data, - }; +export async function httpPost(pathUrl: any, headers: any, data?: any) { + const response = await axiosBaseInstance + .post(pathUrl, data, { headers }) + .catch(function (error: any) { + console.log(error); + return error.response; + }); + console.log("Response base svc : ", response); + if (response?.status == 200 || response?.status == 201) { + return { + error: false, + message: "success", + data: response?.data, + }; + } else { + return { + error: true, + message: response?.data?.message || response?.data || null, + data: null, + }; + } } export async function httpGet(pathUrl: any, headers: any) { diff --git a/service/landing/landing.ts b/service/landing/landing.ts new file mode 100644 index 00000000..1176bed4 --- /dev/null +++ b/service/landing/landing.ts @@ -0,0 +1,13 @@ +import { httpGetInterceptor } from "../http-config/http-interceptor-service"; + +export async function getHeroData() { + return await httpGetInterceptor(`media/public/list?enablePage=1&sort=desc&sortBy=createdAt&size=5&page=0&typeId=1&title=&categoryId=&fileFormats=&tags=&group=&startDate=&endDate=&month=&year=`); +} + +export async function getCategoryData() { + return await httpGetInterceptor(`media/categories/list/publish?enablePage=1&sort=desc&sortBy=updatedAt&size=12&type=`); +} + +export async function getListContent(data:{sortBy: string, contentTypeId: string}) { + return await httpGetInterceptor(`media/public/list?enablePage=1&sort=desc&sortBy=${data.sortBy}&size=5&page=0&typeId=${data.contentTypeId}&title=&categoryId=&fileFormats=&tags=&group=&startDate=&endDate=&month=&year=`); +} diff --git a/service/ppid-categories-services.ts b/service/ppid-categories-services.ts deleted file mode 100644 index bf7ceac7..00000000 --- a/service/ppid-categories-services.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { httpGet, httpPost } from "./http-config/http-base-service"; -import { - httpDeleteInterceptor, - httpGetInterceptor, - httpPostInterceptor, - httpPutInterceptor, -} from "./http-config/http-interceptor-service"; - -export async function getPublicListPpidData(categoryId: number) { - const headers = { - "content-type": "application/json", - }; - return await httpGet(`/ppid-datas?categoryId=${categoryId}`, headers); -} - -export async function getListCategories(size: number, page: number) { - return await httpGetInterceptor( - `/ppid-data-categories?page=${page}&size=${size}&isOnlyTop=true` - ); -} - -export async function updateCategoryPosition(category: any) { - const pathUrl = `/ppid-data-categories/position`; - return await httpPostInterceptor(pathUrl, category); -} - -export async function getListSubCategories( - size: number, - page: number, - parentId: number -) { - const headers = { - "content-type": "application/json", - }; - return await httpGetInterceptor( - `/ppid-data-categories?page=${page}&size=${size}&parentId=${parentId}` - ); -} - -export async function getPublicListCategoriesByParentId( - id: any, - limit: number, - levelGroup?: string -) { - const headers = { - "content-type": "application/json", - }; - return await httpGet( - `/ppid-data-categories?parentId=${id}&isPpidDataIncluded=true&sort=asc&sortBy=position&limit=${limit}${ - levelGroup ? `&levelGroup=${levelGroup}` : "" - }`, - headers - ); -} - -export async function getListCategoriesByParentId( - id: any, - limit: number, - levelGroup?: string -) { - const headers = { - "content-type": "application/json", - }; - return await httpGetInterceptor( - `/ppid-data-categories?parentId=${id}&isPpidDataIncluded=true&sort=asc&sortBy=position&limit=${limit}${ - levelGroup ? `&levelGroup=${levelGroup}` : "" - }` - ); -} - -export async function getListCategoriesById(id: any) { - const headers = { - "content-type": "application/json", - }; - return await httpGetInterceptor(`/ppid-data-categories/${id}`); -} - -export async function getListCategoriesBySlug(slug: any) { - const headers = { - "content-type": "application/json", - }; - return await httpGetInterceptor(`/ppid-data-categories/slug/${slug}`); -} - -export async function getPublicListCategoriesBySlug(slug: any) { - const headers = { - "content-type": "application/json", - }; - return await httpGet(`/ppid-data-categories/slug/${slug}`, headers); -} - -export async function getList(categoryId: number) { - const headers = { - "content-type": "application/json", - }; - return await httpGetInterceptor(`/ppid-datas?categoryId=1`); -} - -export async function createArticle(data: any) { - const pathUrl = `/articles`; - return await httpPostInterceptor(pathUrl, data); -} - -export async function createPublicCategory(request: any) { - const pathUrl = `/ppid-data-categories`; - return await httpPostInterceptor(pathUrl, request); -} - -export async function uploadPublicThumbnail(id: number, data: any) { - const headers = { - "Content-Type": "multipart/form-data", - }; - const pathUrl = `ppid-data-categories/thumbnail/${id}`; - return await httpPost(pathUrl, headers, data); -} - -export async function getPublicCategoryById(id: any) { - const headers = { - "content-type": "application/json", - }; - return await httpGetInterceptor(`/ppid-data-categories/${id}`); -} - -export async function updatePublicCategory(id: any, request: any) { - const headers = { - "content-type": "application/json", - }; - return await httpPutInterceptor(`/ppid-data-categories/${id}`, request); -} - -export async function deletePublicCategory(id: any) { - const headers = { - "content-type": "application/json", - }; - return await httpDeleteInterceptor(`/ppid-data-categories/${id}`); -} - -export async function getParentCategories() { - const headers = { - "content-type": "application/json", - }; - return await httpGet(`ppid-data-categories?isOnlyTop=true`, headers); -} diff --git a/utils/globals.tsx b/utils/globals.tsx index cde194da..2d7e5386 100644 --- a/utils/globals.tsx +++ b/utils/globals.tsx @@ -1,3 +1,8 @@ +import { format } from "date-fns"; +import { id, tr } from "date-fns/locale"; + + + export const generateLocalizedPath = (href: string, locale: string): string => { if (href.startsWith(`/${locale}`)) { return href; @@ -16,4 +21,13 @@ export function textEllipsis(str: string, maxLength: number, { side = "end", ell } } return str; +}; + +export function formatDateToIndonesian(d: Date) { + try { + const dateString = format(d, "d MMMM yyyy HH:mm", { locale: id }); + return dateString; + } catch (error) { + return ""; + } }