From 7dca6969c8d5cff2507b5e6051c86159ad1977dd Mon Sep 17 00:00:00 2001
From: sabdayagra
Date: Thu, 2 Jan 2025 09:58:01 +0700
Subject: [PATCH 1/7] feat: add satker section
---
.../(public)/satker/[satker_name]/page.tsx | 21 +++
app/[locale]/(public)/satker/layout.tsx | 22 ++++
components/landing-page/division.tsx | 85 ++++++------
.../landing-page/header-banner-satker.tsx | 121 ++++++++++++++++++
components/landing-page/welcome-polda.tsx | 1 -
components/landing-page/welcome-satker.tsx | 109 ++++++++++++++++
6 files changed, 316 insertions(+), 43 deletions(-)
create mode 100644 app/[locale]/(public)/satker/[satker_name]/page.tsx
create mode 100644 app/[locale]/(public)/satker/layout.tsx
create mode 100644 components/landing-page/header-banner-satker.tsx
create mode 100644 components/landing-page/welcome-satker.tsx
diff --git a/app/[locale]/(public)/satker/[satker_name]/page.tsx b/app/[locale]/(public)/satker/[satker_name]/page.tsx
new file mode 100644
index 00000000..e0864a5a
--- /dev/null
+++ b/app/[locale]/(public)/satker/[satker_name]/page.tsx
@@ -0,0 +1,21 @@
+"use client";
+
+import ContentCategory from "@/components/landing-page/content-category";
+import HeaderBannerSatker from "@/components/landing-page/header-banner-satker";
+import NewContent from "@/components/landing-page/new-content";
+import WelcomeSatker from "@/components/landing-page/welcome-satker";
+import React from "react";
+
+const page = () => {
+ return (
+
+
+
+
+
+
+
+ );
+};
+
+export default page;
diff --git a/app/[locale]/(public)/satker/layout.tsx b/app/[locale]/(public)/satker/layout.tsx
new file mode 100644
index 00000000..fab820cf
--- /dev/null
+++ b/app/[locale]/(public)/satker/layout.tsx
@@ -0,0 +1,22 @@
+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 { redirect } from "@/components/navigation";
+import Footer from "@/components/landing-page/footer";
+import Navbar from "@/components/landing-page/navbar";
+
+const layout = async ({ children }: { children: React.ReactNode }) => {
+ return (
+ <>
+
+ {children}
+
+ >
+ );
+};
+
+export default layout;
diff --git a/components/landing-page/division.tsx b/components/landing-page/division.tsx
index 6b59a642..9fd77d2a 100644
--- a/components/landing-page/division.tsx
+++ b/components/landing-page/division.tsx
@@ -2,50 +2,51 @@ import React, { useState } from "react";
import { Button } from "../ui/button";
import { Reveal } from "./Reveal";
import { Icon } from "@iconify/react/dist/iconify.js";
+import { Link } from "@/i18n/routing";
const Division = () => {
const [searchTerm, setSearchTerm] = useState("");
const [seeAllValue, setSeeAllValue] = useState(false);
const regions = [
- { name: "SIBER", logo: "/assets/satker/siber.png" },
- { name: "DIVKUM", logo: "/assets/satker/divkum.png" },
- { name: "PUSKEU", logo: "/assets/satker/puskeu.png" },
- { name: "SSDM", logo: "/assets/satker/ssdm.png" },
- { name: "ITWASUM", logo: "/assets/satker/itwasum.png" },
- { name: "STIK-PTIK", logo: "/assets/satker/stik-ptik.png" },
- { name: "SATUAN KERJA POLRI", logo: "/assets/satker/satuan-kerja-polri.png" },
- { name: "BRIMOB", logo: "/assets/satker/brimob.png" },
- { name: "DIV HUMAS", logo: "/assets/satker/div-humas.png" },
- { name: "PUSLITBANG", logo: "/assets/satker/puslitbang.png" },
- { name: "BINMAS", logo: "/assets/satker/binmas.png" },
- { name: "DIV TIK", logo: "/assets/satker/div-tik.png" },
- { name: "SPRIPIM", logo: "/assets/satker/spripim.png" },
- { name: "DIVPROPRAM", logo: "/assets/satker/div-propram.png" },
- { name: "KORPS SABHARA BAHARKAM", logo: "/assets/satker/khorp-sabhara-baharkam.png" },
- { name: "PUSDOKKES", logo: "/assets/satker/pusdokkes.png" },
- { name: "BAHARKAM", logo: "/assets/satker/baharkam.png" },
- { name: "POLAIRUD", logo: "/assets/satker/polairud.png" },
- { name: "POLAIR", logo: "/assets/satker/polair.png" },
- { name: "POLUDARA", logo: "/assets/satker/poludara.png" },
- { name: "LEMDIKLAT", logo: "/assets/satker/lemdiklat.png" },
- { name: "AKPOL", logo: "/assets/satker/akpol.png" },
- { name: "KORLANTAS", logo: "/assets/satker/korlantas.png" },
- { name: "PUSINAFIS", logo: "/assets/satker/pusinafis.png" },
- { name: "PUSJARAH", logo: "/assets/satker/pusjarah.png" },
- { name: "PUSIKNAS", logo: "/assets/satker/pusiknas.png" },
- { name: "SLOG", logo: "/assets/satker/slog.png" },
- { name: "BAINTELKAM", logo: "/assets/satker/baintelkam.jpg" },
- { name: "BARESKRIM", logo: "/assets/satker/bareskrim.png" },
- { name: "DIVHUBINTER", logo: "/assets/satker/divhubinter.png" },
- { name: "SETUM", logo: "/assets/satker/setum.png" },
- { name: "PUSLABFOR", logo: "/assets/satker/puslabfor.png" },
- { name: "DENSUS 88", logo: "/assets/satker/densus88.png" },
- { name: "SAHLI KAPOLRI", logo: "/assets/satker/sahli-kapolri.png" },
- { name: "SOPS", logo: "/assets/satker/sops.png" },
- { name: "SRENA", logo: "/assets/satker/srena.png" },
- { name: "SESPIM POLRI", logo: "/assets/satker/sespim-polri.png" },
- { name: "SETUPA POLRI", logo: "/assets/satker/setupa-polri.png" },
+ { name: "SIBER", slug: "siber", logo: "/assets/satker/siber.png" },
+ { name: "DIVKUM", slug: "divkum", logo: "/assets/satker/divkum.png" },
+ { name: "PUSKEU", slug: "puskeu", logo: "/assets/satker/puskeu.png" },
+ { name: "SSDM", slug: "ssdm", logo: "/assets/satker/ssdm.png" },
+ { name: "ITWASUM", slug: "itwasum", logo: "/assets/satker/itwasum.png" },
+ { name: "STIK-PTIK", slug: "stik-ptik", logo: "/assets/satker/stik-ptik.png" },
+ { name: "SATUAN KERJA POLRI", slug: "satuan-kerja-polri", logo: "/assets/satker/satuan-kerja-polri.png" },
+ { name: "BRIMOB", slug: "brimob", logo: "/assets/satker/brimob.png" },
+ { name: "DIV HUMAS", slug: "div-humas", logo: "/assets/satker/div-humas.png" },
+ { name: "PUSLITBANG", slug: "puslitbang", logo: "/assets/satker/puslitbang.png" },
+ { name: "BINMAS", slug: "binmas", logo: "/assets/satker/binmas.png" },
+ { name: "DIV TIK", slug: "div-tik", logo: "/assets/satker/div-tik.png" },
+ { name: "SPRIPIM", slug: "spripim", logo: "/assets/satker/spripim.png" },
+ { name: "DIVPROPRAM", slug: "divpropram", logo: "/assets/satker/div-propram.png" },
+ { name: "KORPS SABHARA BAHARKAM", slug: "korps-sabhara-baharkam", logo: "/assets/satker/khorp-sabhara-baharkam.png" },
+ { name: "PUSDOKKES", slug: "pusdokkes", logo: "/assets/satker/pusdokkes.png" },
+ { name: "BAHARKAM", slug: "baharkam", logo: "/assets/satker/baharkam.png" },
+ { name: "POLAIRUD", slug: "polairud", logo: "/assets/satker/polairud.png" },
+ { name: "POLAIR", slug: "polair", logo: "/assets/satker/polair.png" },
+ { name: "POLUDARA", slug: "poludara", logo: "/assets/satker/poludara.png" },
+ { name: "LEMDIKLAT", slug: "lemdiklat", logo: "/assets/satker/lemdiklat.png" },
+ { name: "AKPOL", slug: "akpol", logo: "/assets/satker/akpol.png" },
+ { name: "KORLANTAS", slug: "korlantas", logo: "/assets/satker/korlantas.png" },
+ { name: "PUSINAFIS", slug: "pusinafis", logo: "/assets/satker/pusinafis.png" },
+ { name: "PUSJARAH", slug: "pusjarah", logo: "/assets/satker/pusjarah.png" },
+ { name: "PUSIKNAS", slug: "pusiknas", logo: "/assets/satker/pusiknas.png" },
+ { name: "SLOG", slug: "slog", logo: "/assets/satker/slog.png" },
+ { name: "BAINTELKAM", slug: "baintelkam", logo: "/assets/satker/baintelkam.jpg" },
+ { name: "BARESKRIM", slug: "bareskrim", logo: "/assets/satker/bareskrim.png" },
+ { name: "DIVHUBINTER", slug: "divhubinter", logo: "/assets/satker/divhubinter.png" },
+ { name: "SETUM", slug: "setum", logo: "/assets/satker/setum.png" },
+ { name: "PUSLABFOR", slug: "puslabfor", logo: "/assets/satker/puslabfor.png" },
+ { name: "DENSUS 88", slug: "densus-88", logo: "/assets/satker/densus88.png" },
+ { name: "SAHLI KAPOLRI", slug: "sahli-kapolri", logo: "/assets/satker/sahli-kapolri.png" },
+ { name: "SOPS", slug: "sops", logo: "/assets/satker/sops.png" },
+ { name: "SRENA", slug: "srena", logo: "/assets/satker/srena.png" },
+ { name: "SESPIM POLRI", slug: "sespim-polri", logo: "/assets/satker/sespim-polri.png" },
+ { name: "SETUPA POLRI", slug: "setupa-polri", logo: "/assets/satker/setupa-polri.png" },
];
return (
@@ -70,22 +71,22 @@ const Division = () => {
{regions.map((region, index) =>
!seeAllValue ? (
index < 7 ? (
-
+
) : (
""
)
) : (
-
+
)
)}
diff --git a/components/landing-page/header-banner-satker.tsx b/components/landing-page/header-banner-satker.tsx
new file mode 100644
index 00000000..d0a3ba7c
--- /dev/null
+++ b/components/landing-page/header-banner-satker.tsx
@@ -0,0 +1,121 @@
+"use client";
+import { listData } from "@/service/landing/landing";
+import { useParams, usePathname, useRouter } from "next/navigation";
+import React, { useEffect, useState } from "react";
+import Skeleton, { SkeletonTheme } from "react-loading-skeleton";
+import { Link } from "@/i18n/routing";
+import { getPublicLocaleTimestamp } from "@/utils/globals";
+import { Icon } from "@iconify/react/dist/iconify.js";
+import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "@/components/ui/carousel";
+
+const HeaderBannerSatker = () => {
+ const router = useRouter();
+ const params = useParams();
+ const satkerName: any = params?.satker_name;
+ const asPath: any = usePathname();
+ const [content, setContent] = useState([]);
+
+ const [isBannerLoading, setIsBannerLoading] = useState(true);
+ const [centerPadding, setCenterPadding] = useState();
+
+ useEffect(() => {
+ // async function initState() {
+ // const res = await listCarousel();
+ // setContent(res.data?.data);
+ // setCenterPadding(`${Math.trunc(Number(window.innerWidth) / 10 + 40)}px`);
+ // }
+
+ async function fetchData() {
+ const res = await listData("1", "", "", 5, 0, "createdAt", "", "", satkerName);
+ let data = res?.data?.data?.content;
+ setContent(data);
+ setCenterPadding(`${Math.trunc(Number(window.innerWidth) / 10 + 40)}px`);
+ setIsBannerLoading(false);
+ console.log("Done");
+ }
+
+ fetchData();
+ }, [params?.page]);
+
+ const settings = {
+ className: "center",
+ // centerMode: true,
+ infinite: true,
+ centerPadding,
+ slidesToShow: 2,
+ autoplay: true,
+ speed: 1500,
+ autoplaySpeed: 15_000,
+ focusOnSelect: true,
+ responsive: [
+ {
+ breakpoint: 768,
+ settings: {
+ arrows: false,
+ centerMode: true,
+ centerPadding: "60px",
+ slidesToShow: 1,
+ },
+ },
+ {
+ breakpoint: 480,
+ settings: {
+ arrows: false,
+ centerMode: true,
+ centerPadding: "20px",
+ slidesToShow: 1,
+ },
+ },
+ ],
+ };
+ return (
+
+ {/* Header */}
+
+ {isBannerLoading ? (
+
+
+
+ ) : (
+
+
+
+ {content?.map((row: any) => (
+
+
+

+
+
{row?.categoryName}
+
+
{row.title}
+
+
+ {getPublicLocaleTimestamp(new Date(row?.createdAt))} WIB {" | "}
+ {row?.clickCount}
+
+
+
+
+ ))}
+
+
+
+
+
+ )}
+
+
+ );
+};
+
+export default HeaderBannerSatker;
diff --git a/components/landing-page/welcome-polda.tsx b/components/landing-page/welcome-polda.tsx
index 41236231..fa78b17f 100644
--- a/components/landing-page/welcome-polda.tsx
+++ b/components/landing-page/welcome-polda.tsx
@@ -3,7 +3,6 @@ import React, { useEffect, useState } from "react";
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
import { FiFile, FiImage, FiMusic, FiYoutube } from "react-icons/fi";
import { Icon } from "@iconify/react/dist/iconify.js";
-import { capitalize } from "@/utils/globals";
const WelcomePolda = () => {
const router = useRouter();
diff --git a/components/landing-page/welcome-satker.tsx b/components/landing-page/welcome-satker.tsx
new file mode 100644
index 00000000..4febc618
--- /dev/null
+++ b/components/landing-page/welcome-satker.tsx
@@ -0,0 +1,109 @@
+"use client";
+
+import { useParams, usePathname, useRouter } from "next/navigation";
+import React, { useEffect, useState } from "react";
+import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
+import { FiFile, FiImage, FiMusic, FiYoutube } from "react-icons/fi";
+import { Icon } from "@iconify/react/dist/iconify.js";
+import { capitalize } from "@/utils/globals";
+
+const WelcomeSatker = () => {
+ const router = useRouter();
+ const asPath: any = usePathname();
+ const params = useParams();
+ const satkerName: any = params?.satker_name;
+ const [categorySelect, setCategorySelect] = useState("0");
+ const [search, setSearch] = useState();
+
+ useEffect(() => {
+ function initState() {
+ console.log(categorySelect);
+ }
+
+ initState();
+ }, [categorySelect]);
+
+ return (
+
+
+ {/* Heading */}
+
+ Selamat Datang di Satker {satkerName.replace("-", " ")}
+
+
+
+ Liputan resmi yang bersumber dari kegiatan Polri di Satker {satkerName.replace("-", " ")}
+
+
+ {/* Search Form */}
+
+ {/* Dropdown */}
+
+
+
+
+
+ Konten
+
+
+
+
+
+
+
+ Audio Visual
+
+
+
+
+
+ Audio
+
+
+
+
+
+ Foto
+
+
+
+
+
+ Teks
+
+
+
+
+
+
+
+ {/* Search Input */}
+
+ {/* Button */}
+
+
+
+
+ );
+};
+
+export default WelcomeSatker;
From a6a8bca7ce3caba1098d81423663733e696f5ada Mon Sep 17 00:00:00 2001
From: hanif salafi
Date: Thu, 2 Jan 2025 11:00:27 +0700
Subject: [PATCH 2/7] feat: add preview in detail image
---
components/form/content/image-detail-form.tsx | 91 ++++++++++++++++++-
1 file changed, 90 insertions(+), 1 deletion(-)
diff --git a/components/form/content/image-detail-form.tsx b/components/form/content/image-detail-form.tsx
index ae78ece7..b9545af0 100644
--- a/components/form/content/image-detail-form.tsx
+++ b/components/form/content/image-detail-form.tsx
@@ -79,9 +79,10 @@ export default function FormImageDetail() {
const [categories, setCategories] = useState([]);
const [selectedCategory, setSelectedCategory] = useState();
const [tags, setTags] = useState([]);
- const [detail, setDetail] = useState();
+ const [detail, setDetail] = useState();
const [refresh, setRefresh] = useState(false);
const [selectedPublishers, setSelectedPublishers] = useState([]);
+ const [main, setMain] = useState([]);
const [selectedTarget, setSelectedTarget] = useState("");
const [unitSelection, setUnitSelection] = useState({
@@ -175,6 +176,12 @@ export default function FormImageDetail() {
const details = response.data?.data;
setDetail(details);
+ setMain({
+ type: details?.fileType.name,
+ url: details?.files[0]?.url,
+ names: details?.files[0]?.fileName,
+ format: details?.files[0]?.format,
+ });
if (details.publishedForObject) {
const publisherIds = details.publishedForObject.map(
@@ -245,6 +252,18 @@ export default function FormImageDetail() {
});
};
+ const handleMain = (type: string, url: string, names: string, format: string) => {
+ console.log("Test 3 :", type, url, names, format);
+ setMain({
+ type,
+ url,
+ names,
+ format,
+ });
+ return false;
+ };
+
+
return (
)}
+
+
+
+ {/* Preview Image */}
+
+

+
+
+ {/* Thumbnail Container with Navigation */}
+
+ {/* Scroll Left Button */}
+ {/*
*/}
+
+ {/* Scrollable Thumbnail Container */}
+
+
+ {detail?.files?.map((list: any, index: number) => (
+
+ ))}
+
+
+
+ {/* Scroll Right Button */}
+ {/*
*/}
+
+
From 0fc38f879ea26f79488eae5560b2ce71c4857e30 Mon Sep 17 00:00:00 2001
From: hanif salafi
Date: Thu, 2 Jan 2025 11:00:46 +0700
Subject: [PATCH 3/7] feat: fixing error
---
components/form/content/image-detail-form.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/form/content/image-detail-form.tsx b/components/form/content/image-detail-form.tsx
index b9545af0..6caa44f6 100644
--- a/components/form/content/image-detail-form.tsx
+++ b/components/form/content/image-detail-form.tsx
@@ -450,7 +450,7 @@ export default function FormImageDetail() {
- {detail?.tags?.split(",").map((tag, index) => (
+ {detail?.tags?.split(",").map((tag: string, index: number) => (
Date: Thu, 2 Jan 2025 11:02:03 +0700
Subject: [PATCH 4/7] feat: update pnpm lockfile
---
pnpm-lock.yaml | 129 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 129 insertions(+)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a72f02cb..9b499e23 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -374,6 +374,9 @@ importers:
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.17)
+ tus-js-client:
+ specifier: ^4.2.3
+ version: 4.2.3
use-places-autocomplete:
specifier: ^4.0.1
version: 4.0.1(react@18.3.1)
@@ -2144,6 +2147,9 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
@@ -2257,6 +2263,9 @@ packages:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
+ combine-errors@3.0.3:
+ resolution: {integrity: sha512-C8ikRNRMygCwaTx+Ek3Yr+OuZzgZjduCOfSQBjbM8V3MfgcjSTeto/GXP6PAwKvJz/v15b7GHZvx5rOlczFw/Q==}
+
combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
@@ -2320,6 +2329,9 @@ packages:
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ custom-error-instance@2.1.1:
+ resolution: {integrity: sha512-p6JFxJc3M4OTD2li2qaHkDCw9SfMw82Ldr6OC9Je1aXiGfhx2W8p3GaoeaGrPJTUN9NirTM/KTxHWMUdR1rsUg==}
+
cytoscape-cose-bilkent@4.1.0:
resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==}
peerDependencies:
@@ -3394,6 +3406,10 @@ packages:
resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
engines: {node: '>=0.10.0'}
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
is-string@1.1.1:
resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
engines: {node: '>= 0.4'}
@@ -3466,6 +3482,9 @@ packages:
jquery@2.2.4:
resolution: {integrity: sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q==}
+ js-base64@3.7.7:
+ resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
+
js-cookie@3.0.5:
resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
engines: {node: '>=14'}
@@ -3573,6 +3592,24 @@ packages:
lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ lodash._baseiteratee@4.7.0:
+ resolution: {integrity: sha512-nqB9M+wITz0BX/Q2xg6fQ8mLkyfF7MU7eE+MNBNjTHFKeKaZAPEzEg+E8LWxKWf1DQVflNEn9N49yAuqKh2mWQ==}
+
+ lodash._basetostring@4.12.0:
+ resolution: {integrity: sha512-SwcRIbyxnN6CFEEK4K1y+zuApvWdpQdBHM/swxP962s8HIxPO3alBH5t3m/dl+f4CMUug6sJb7Pww8d13/9WSw==}
+
+ lodash._baseuniq@4.6.0:
+ resolution: {integrity: sha512-Ja1YevpHZctlI5beLA7oc5KNDhGcPixFhcqSiORHNsp/1QTv7amAXzw+gu4YOvErqVlMVyIJGgtzeepCnnur0A==}
+
+ lodash._createset@4.0.3:
+ resolution: {integrity: sha512-GTkC6YMprrJZCYU3zcqZj+jkXkrXzq3IPBcF/fIPpNEAB4hZEtXU8zp/RwKOvZl43NUmwDbyRk3+ZTbeRdEBXA==}
+
+ lodash._root@3.0.1:
+ resolution: {integrity: sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==}
+
+ lodash._stringtopath@4.8.0:
+ resolution: {integrity: sha512-SXL66C731p0xPDC5LZg4wI5H+dJo/EO4KTqOMwLYCH3+FmmfAKJEZCm6ohGpI+T1xwsDsJCfL4OnhorllvlTPQ==}
+
lodash.clonedeep@4.5.0:
resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
@@ -3588,6 +3625,12 @@ packages:
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ lodash.throttle@4.1.1:
+ resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+
+ lodash.uniqby@4.5.0:
+ resolution: {integrity: sha512-IRt7cfTtHy6f1aRVA5n7kT8rgN3N1nH6MOWLcHfpWG2SH19E3JksLK38MktLxZDhlAjCP9jpIXkOnRXlu6oByQ==}
+
lodash@2.4.2:
resolution: {integrity: sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==}
engines: {'0': node, '1': rhino}
@@ -4208,6 +4251,9 @@ packages:
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ proper-lockfile@4.1.2:
+ resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+
property-expr@2.0.6:
resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==}
@@ -4234,6 +4280,9 @@ packages:
resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==}
engines: {node: '>=0.6'}
+ querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -4549,6 +4598,9 @@ packages:
remove-accents@0.5.0:
resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==}
+ requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+
resize-observer-polyfill@1.5.1:
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
@@ -4572,6 +4624,10 @@ packages:
resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
hasBin: true
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
+
reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -4977,6 +5033,10 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+ tus-js-client@4.2.3:
+ resolution: {integrity: sha512-UkQUCeDWKh5AwArcasIJWcL5EP66XPypKQtsdPu82wNnTea8eAUHdpDx3DcfZgDERAiCII895zMYkXri4M1wzw==}
+ engines: {node: '>=18'}
+
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -5084,6 +5144,9 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+
use-callback-ref@1.3.3:
resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
engines: {node: '>=10'}
@@ -7023,6 +7086,8 @@ snapshots:
dependencies:
fill-range: 7.1.1
+ buffer-from@1.1.2: {}
+
busboy@1.6.0:
dependencies:
streamsearch: 1.1.0
@@ -7144,6 +7209,11 @@ snapshots:
color-convert: 2.0.1
color-string: 1.9.1
+ combine-errors@3.0.3:
+ dependencies:
+ custom-error-instance: 2.1.1
+ lodash.uniqby: 4.5.0
+
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
@@ -7198,6 +7268,8 @@ snapshots:
csstype@3.1.3: {}
+ custom-error-instance@2.1.1: {}
+
cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.4):
dependencies:
cose-base: 1.0.3
@@ -8496,6 +8568,8 @@ snapshots:
is-stream@1.1.0: {}
+ is-stream@2.0.1: {}
+
is-string@1.1.1:
dependencies:
call-bound: 1.0.3
@@ -8568,6 +8642,8 @@ snapshots:
jquery@2.2.4: {}
+ js-base64@3.7.7: {}
+
js-cookie@3.0.5: {}
js-tokens@4.0.0: {}
@@ -8657,6 +8733,25 @@ snapshots:
lodash-es@4.17.21: {}
+ lodash._baseiteratee@4.7.0:
+ dependencies:
+ lodash._stringtopath: 4.8.0
+
+ lodash._basetostring@4.12.0: {}
+
+ lodash._baseuniq@4.6.0:
+ dependencies:
+ lodash._createset: 4.0.3
+ lodash._root: 3.0.1
+
+ lodash._createset@4.0.3: {}
+
+ lodash._root@3.0.1: {}
+
+ lodash._stringtopath@4.8.0:
+ dependencies:
+ lodash._basetostring: 4.12.0
+
lodash.clonedeep@4.5.0: {}
lodash.debounce@4.0.8: {}
@@ -8667,6 +8762,13 @@ snapshots:
lodash.merge@4.6.2: {}
+ lodash.throttle@4.1.1: {}
+
+ lodash.uniqby@4.5.0:
+ dependencies:
+ lodash._baseiteratee: 4.7.0
+ lodash._baseuniq: 4.6.0
+
lodash@2.4.2: {}
lodash@4.17.21: {}
@@ -9603,6 +9705,12 @@ snapshots:
object-assign: 4.1.1
react-is: 16.13.1
+ proper-lockfile@4.1.2:
+ dependencies:
+ graceful-fs: 4.2.11
+ retry: 0.12.0
+ signal-exit: 3.0.7
+
property-expr@2.0.6: {}
property-information@5.6.0:
@@ -9623,6 +9731,8 @@ snapshots:
dependencies:
side-channel: 1.1.0
+ querystringify@2.2.0: {}
+
queue-microtask@1.2.3: {}
quill-delta@5.1.0:
@@ -10029,6 +10139,8 @@ snapshots:
remove-accents@0.5.0: {}
+ requires-port@1.0.0: {}
+
resize-observer-polyfill@1.5.1: {}
resolve-from@4.0.0: {}
@@ -10049,6 +10161,8 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
+ retry@0.12.0: {}
+
reusify@1.0.4: {}
rich-text@1.0.3:
@@ -10502,6 +10616,16 @@ snapshots:
tslib@2.8.1: {}
+ tus-js-client@4.2.3:
+ dependencies:
+ buffer-from: 1.1.2
+ combine-errors: 3.0.3
+ is-stream: 2.0.1
+ js-base64: 3.7.7
+ lodash.throttle: 4.1.1
+ proper-lockfile: 4.1.2
+ url-parse: 1.5.10
+
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
@@ -10656,6 +10780,11 @@ snapshots:
dependencies:
punycode: 2.3.1
+ url-parse@1.5.10:
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+
use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1):
dependencies:
react: 18.3.1
From 15967c8bff458aaa0db0017582d07acab5a6b6c9 Mon Sep 17 00:00:00 2001
From: Rama Priyanto
Date: Thu, 2 Jan 2025 11:53:30 +0700
Subject: [PATCH 5/7] feat:approval content
---
.../routine-task/components/columns.tsx | 5 +-
components/form/content/image-detail-form.tsx | 373 ++++++++++++++----
service/content/content.ts | 15 +-
3 files changed, 323 insertions(+), 70 deletions(-)
diff --git a/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx b/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx
index 3e16b258..61cbd6c9 100644
--- a/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx
+++ b/app/[locale]/(protected)/dashboard/routine-task/components/columns.tsx
@@ -11,6 +11,7 @@ import {
} from "@/components/ui/dropdown-menu";
import { Button } from "@/components/ui/button";
import { format } from "date-fns";
+import { Link } from "@/i18n/routing";
const columns: ColumnDef[] = [
{
@@ -154,12 +155,12 @@ const columns: ColumnDef[] = [
-
+
View
-
+
Delete
diff --git a/components/form/content/image-detail-form.tsx b/components/form/content/image-detail-form.tsx
index ae78ece7..3d679af1 100644
--- a/components/form/content/image-detail-form.tsx
+++ b/components/form/content/image-detail-form.tsx
@@ -27,10 +27,23 @@ import {
createMedia,
getTagsBySubCategoryId,
listEnableCategory,
+ rejectFiles,
+ submitApproval,
} from "@/service/content/content";
import { detailMedia } from "@/service/curated-content/curated-content";
import { Badge } from "@/components/ui/badge";
import { MailIcon } from "lucide-react";
+import { Icon } from "@iconify/react/dist/iconify.js";
+import { getCookiesDecrypt } from "@/lib/utils";
+import {
+ Dialog,
+ DialogContent,
+ DialogFooter,
+ DialogHeader,
+ DialogTitle,
+} from "@/components/ui/dialog";
+import { Textarea } from "@/components/ui/textarea";
+import { error, loading } from "@/config/swal";
const imageSchema = z.object({
title: z.string().min(1, { message: "Judul diperlukan" }),
@@ -46,6 +59,13 @@ type Category = {
name: string;
};
+type FileType = {
+ id: number;
+ url: string;
+ thumbnailFileUrl: string;
+ fileName: string;
+};
+
type Detail = {
id: string;
title: string;
@@ -60,12 +80,20 @@ type Detail = {
thumbnailLink: string;
tags: string;
statusName: string;
+ isPublish: boolean;
+ needApprovalFromLevel: number;
+ files: FileType[];
+ uploadedById: number;
};
export default function FormImageDetail() {
const MySwal = withReactContent(Swal);
const router = useRouter();
+ const userId = getCookiesDecrypt("uie");
+ const userLevelId = getCookiesDecrypt("ulie");
+ const roleId = getCookiesDecrypt("urie");
+ const [modalOpen, setModalOpen] = useState(false);
const { id } = useParams() as { id: string };
console.log(id);
const editor = useRef(null);
@@ -75,21 +103,18 @@ export default function FormImageDetail() {
const taskId = Cookies.get("taskId");
const scheduleId = Cookies.get("scheduleId");
const scheduleType = Cookies.get("scheduleType");
-
+ const [status, setStatus] = useState("");
const [categories, setCategories] = useState([]);
const [selectedCategory, setSelectedCategory] = useState();
const [tags, setTags] = useState([]);
const [detail, setDetail] = useState();
const [refresh, setRefresh] = useState(false);
const [selectedPublishers, setSelectedPublishers] = useState([]);
-
+ const [description, setDescription] = useState("");
const [selectedTarget, setSelectedTarget] = useState("");
- const [unitSelection, setUnitSelection] = useState({
- allUnit: false,
- mabes: false,
- polda: false,
- polres: false,
- });
+ const [files, setFiles] = useState([]);
+ const [rejectedFiles, setRejectedFiles] = useState([]);
+ const [isMabesApprover, setIsMabesApprover] = useState(false);
let fileTypeId = "1";
@@ -113,21 +138,16 @@ export default function FormImageDetail() {
// }
// };
- const handleRemoveTag = (index: any) => {
- setTags((prevTags) => prevTags.filter((_, i) => i !== index));
- };
-
- const handleImageChange = (event: ChangeEvent) => {
- if (event.target.files) {
- const files = Array.from(event.target.files);
- setSelectedFiles((prevImages: any) => [...prevImages, ...files]);
- console.log("DATAFILE::", selectedFiles);
+ useEffect(() => {
+ if (
+ userLevelId != undefined &&
+ roleId != undefined &&
+ userLevelId == "216" &&
+ roleId == "3"
+ ) {
+ setIsMabesApprover(true);
}
- };
-
- const handleRemoveImage = (index: number) => {
- setSelectedFiles((prevImages) => prevImages.filter((_, i) => i !== index));
- };
+ }, [userLevelId, roleId]);
const handleCheckboxChange = (id: number) => {
setSelectedPublishers((prev) =>
@@ -173,7 +193,8 @@ export default function FormImageDetail() {
if (id) {
const response = await detailMedia(id);
const details = response.data?.data;
-
+ console.log("detail", details);
+ setFiles(details?.files);
setDetail(details);
if (details.publishedForObject) {
@@ -197,56 +218,76 @@ export default function FormImageDetail() {
initState();
}, [refresh, setValue]);
- const save = async (data: ImageSchema) => {
- const requestData = {
- ...data,
- title: data.title,
- description: data.description,
- htmlDescription: data.description,
- fileTypeId,
- categoryId: selectedTarget,
- subCategoryId: selectedTarget,
- uploadedBy: "2b7c8d83-d298-4b19-9f74-b07924506b58",
- statusId: "1",
- publishedFor: "6",
- creatorName: data.creatorName,
- tags: "siap",
- isYoutube: false,
- isInternationalMedia: false,
+ const actionApproval = (e: string) => {
+ setStatus(e);
+ setModalOpen(true);
+ setDescription("");
+ };
+
+ const submit = async () => {
+ if (
+ (description?.length > 1 && Number(status) == 3) ||
+ Number(status) == 2 ||
+ Number(status) == 4
+ ) {
+ MySwal.fire({
+ title: "Simpan Approval",
+ text: "",
+ icon: "warning",
+ showCancelButton: true,
+ cancelButtonColor: "#d33",
+ confirmButtonColor: "#3085d6",
+ confirmButtonText: "Simpan",
+ }).then((result) => {
+ if (result.isConfirmed) {
+ save();
+ }
+ });
+ }
+ };
+
+ async function save() {
+ const data = {
+ mediaUploadId: id,
+ statusId: status,
+ message: description,
+ files: [],
+ // files: isMabesApprover ? getPlacement() : [],
};
- const response = await createMedia(requestData);
- console.log("Form Data Submitted:", requestData);
+ loading();
+ const response = await submitApproval(data);
- MySwal.fire({
- title: "Sukses",
- text: "Data berhasil disimpan.",
- icon: "success",
- confirmButtonColor: "#3085d6",
- confirmButtonText: "OK",
- }).then(() => {
- router.push("/en/contributor/content/image");
- });
- };
+ if (response?.error) {
+ error(response.message);
+ return false;
+ }
- const onSubmit = (data: ImageSchema) => {
- MySwal.fire({
- title: "Simpan Data",
- text: "Apakah Anda yakin ingin menyimpan data ini?",
- icon: "warning",
- showCancelButton: true,
- cancelButtonColor: "#d33",
- confirmButtonColor: "#3085d6",
- confirmButtonText: "Simpan",
- }).then((result) => {
- if (result.isConfirmed) {
- save(data);
- }
- });
- };
+ const dataReject = {
+ listFiles: rejectedFiles,
+ };
+ const resReject = await rejectFiles(dataReject);
+
+ if (resReject?.error) {
+ error(resReject.message);
+ return false;
+ }
+
+ close();
+
+ return false;
+ }
+
+ function handleDeleteFileApproval(id: number) {
+ const selectedFiles = files.filter((file) => file.id != id);
+ setFiles(selectedFiles);
+ const rejects = rejectedFiles;
+ rejects.push(id);
+ setRejectedFiles(rejects);
+ }
return (
-
@@ -417,6 +466,196 @@ export default function FormImageDetail() {
Keterangan:
{detail?.statusName}
+ {/* {detail?.isPublish == false ? (
+
+
+
+ ) : (
+ ""
+ )} */}
+ {Number(detail?.needApprovalFromLevel) == Number(userLevelId) ? (
+ Number(detail?.uploadedById) == Number(userId) ? (
+ ""
+ ) : (
+
+
+
+
+
+ )
+ ) : (
+ ""
+ )}
+
+
diff --git a/service/content/content.ts b/service/content/content.ts
index 835e1a46..15ab6e88 100644
--- a/service/content/content.ts
+++ b/service/content/content.ts
@@ -1,4 +1,7 @@
-import { httpGetInterceptor, httpPostInterceptor } from "../http-config/http-interceptor-service";
+import {
+ httpGetInterceptor,
+ httpPostInterceptor,
+} from "../http-config/http-interceptor-service";
// export async function listDataAll(
// isForSelf,
@@ -174,3 +177,13 @@ export async function convertSPIT(data: any) {
const url = "media/spit/convert";
return httpPostInterceptor(url, data);
}
+
+export async function submitApproval(data: any) {
+ const url = "media/approval";
+ return httpPostInterceptor(url, data);
+}
+
+export async function rejectFiles(data: any) {
+ const url = "media/file/rejects";
+ return httpPostInterceptor(url, data);
+}
From 626aac592add2d40ae26a0bad776a6d1607f68e0 Mon Sep 17 00:00:00 2001
From: hanif salafi
Date: Thu, 2 Jan 2025 12:13:05 +0700
Subject: [PATCH 6/7] feat: update fixing service auth
---
service/auth.ts | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/service/auth.ts b/service/auth.ts
index 476c2bb1..2d03c465 100644
--- a/service/auth.ts
+++ b/service/auth.ts
@@ -1,3 +1,4 @@
+import qs from "qs";
import { getAPIDummy } from "./http-config/axiosCustom";
import { httpPost } from "./http-config/http-base-service";
import {
@@ -8,7 +9,11 @@ import {
export async function login(data: any) {
const pathUrl = "signin";
- return httpPost(pathUrl, data);
+ const headers = {
+ 'content-type': 'application/x-www-form-urlencoded',
+ };
+ return httpPost(pathUrl, headers, qs.stringify(data));
+
}
export async function getProfile(token: any) {
From 3071b74c87a807e5025243f37ddd566d757e6ff6 Mon Sep 17 00:00:00 2001
From: hanif salafi
Date: Thu, 2 Jan 2025 12:18:46 +0700
Subject: [PATCH 7/7] feat: update axios interceptor and pnpm lockfile
---
pnpm-lock.yaml | 129 ------------------
.../http-config/axios-interceptor-instance.ts | 13 +-
2 files changed, 8 insertions(+), 134 deletions(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9b499e23..a72f02cb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -374,9 +374,6 @@ importers:
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.17)
- tus-js-client:
- specifier: ^4.2.3
- version: 4.2.3
use-places-autocomplete:
specifier: ^4.0.1
version: 4.0.1(react@18.3.1)
@@ -2147,9 +2144,6 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-
busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
@@ -2263,9 +2257,6 @@ packages:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
- combine-errors@3.0.3:
- resolution: {integrity: sha512-C8ikRNRMygCwaTx+Ek3Yr+OuZzgZjduCOfSQBjbM8V3MfgcjSTeto/GXP6PAwKvJz/v15b7GHZvx5rOlczFw/Q==}
-
combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
@@ -2329,9 +2320,6 @@ packages:
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
- custom-error-instance@2.1.1:
- resolution: {integrity: sha512-p6JFxJc3M4OTD2li2qaHkDCw9SfMw82Ldr6OC9Je1aXiGfhx2W8p3GaoeaGrPJTUN9NirTM/KTxHWMUdR1rsUg==}
-
cytoscape-cose-bilkent@4.1.0:
resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==}
peerDependencies:
@@ -3406,10 +3394,6 @@ packages:
resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
engines: {node: '>=0.10.0'}
- is-stream@2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
-
is-string@1.1.1:
resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
engines: {node: '>= 0.4'}
@@ -3482,9 +3466,6 @@ packages:
jquery@2.2.4:
resolution: {integrity: sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q==}
- js-base64@3.7.7:
- resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
-
js-cookie@3.0.5:
resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
engines: {node: '>=14'}
@@ -3592,24 +3573,6 @@ packages:
lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
- lodash._baseiteratee@4.7.0:
- resolution: {integrity: sha512-nqB9M+wITz0BX/Q2xg6fQ8mLkyfF7MU7eE+MNBNjTHFKeKaZAPEzEg+E8LWxKWf1DQVflNEn9N49yAuqKh2mWQ==}
-
- lodash._basetostring@4.12.0:
- resolution: {integrity: sha512-SwcRIbyxnN6CFEEK4K1y+zuApvWdpQdBHM/swxP962s8HIxPO3alBH5t3m/dl+f4CMUug6sJb7Pww8d13/9WSw==}
-
- lodash._baseuniq@4.6.0:
- resolution: {integrity: sha512-Ja1YevpHZctlI5beLA7oc5KNDhGcPixFhcqSiORHNsp/1QTv7amAXzw+gu4YOvErqVlMVyIJGgtzeepCnnur0A==}
-
- lodash._createset@4.0.3:
- resolution: {integrity: sha512-GTkC6YMprrJZCYU3zcqZj+jkXkrXzq3IPBcF/fIPpNEAB4hZEtXU8zp/RwKOvZl43NUmwDbyRk3+ZTbeRdEBXA==}
-
- lodash._root@3.0.1:
- resolution: {integrity: sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==}
-
- lodash._stringtopath@4.8.0:
- resolution: {integrity: sha512-SXL66C731p0xPDC5LZg4wI5H+dJo/EO4KTqOMwLYCH3+FmmfAKJEZCm6ohGpI+T1xwsDsJCfL4OnhorllvlTPQ==}
-
lodash.clonedeep@4.5.0:
resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
@@ -3625,12 +3588,6 @@ packages:
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
- lodash.throttle@4.1.1:
- resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
-
- lodash.uniqby@4.5.0:
- resolution: {integrity: sha512-IRt7cfTtHy6f1aRVA5n7kT8rgN3N1nH6MOWLcHfpWG2SH19E3JksLK38MktLxZDhlAjCP9jpIXkOnRXlu6oByQ==}
-
lodash@2.4.2:
resolution: {integrity: sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==}
engines: {'0': node, '1': rhino}
@@ -4251,9 +4208,6 @@ packages:
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
- proper-lockfile@4.1.2:
- resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
-
property-expr@2.0.6:
resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==}
@@ -4280,9 +4234,6 @@ packages:
resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==}
engines: {node: '>=0.6'}
- querystringify@2.2.0:
- resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
-
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -4598,9 +4549,6 @@ packages:
remove-accents@0.5.0:
resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==}
- requires-port@1.0.0:
- resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
-
resize-observer-polyfill@1.5.1:
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
@@ -4624,10 +4572,6 @@ packages:
resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
hasBin: true
- retry@0.12.0:
- resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
- engines: {node: '>= 4'}
-
reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -5033,10 +4977,6 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- tus-js-client@4.2.3:
- resolution: {integrity: sha512-UkQUCeDWKh5AwArcasIJWcL5EP66XPypKQtsdPu82wNnTea8eAUHdpDx3DcfZgDERAiCII895zMYkXri4M1wzw==}
- engines: {node: '>=18'}
-
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -5144,9 +5084,6 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- url-parse@1.5.10:
- resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
-
use-callback-ref@1.3.3:
resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
engines: {node: '>=10'}
@@ -7086,8 +7023,6 @@ snapshots:
dependencies:
fill-range: 7.1.1
- buffer-from@1.1.2: {}
-
busboy@1.6.0:
dependencies:
streamsearch: 1.1.0
@@ -7209,11 +7144,6 @@ snapshots:
color-convert: 2.0.1
color-string: 1.9.1
- combine-errors@3.0.3:
- dependencies:
- custom-error-instance: 2.1.1
- lodash.uniqby: 4.5.0
-
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
@@ -7268,8 +7198,6 @@ snapshots:
csstype@3.1.3: {}
- custom-error-instance@2.1.1: {}
-
cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.4):
dependencies:
cose-base: 1.0.3
@@ -8568,8 +8496,6 @@ snapshots:
is-stream@1.1.0: {}
- is-stream@2.0.1: {}
-
is-string@1.1.1:
dependencies:
call-bound: 1.0.3
@@ -8642,8 +8568,6 @@ snapshots:
jquery@2.2.4: {}
- js-base64@3.7.7: {}
-
js-cookie@3.0.5: {}
js-tokens@4.0.0: {}
@@ -8733,25 +8657,6 @@ snapshots:
lodash-es@4.17.21: {}
- lodash._baseiteratee@4.7.0:
- dependencies:
- lodash._stringtopath: 4.8.0
-
- lodash._basetostring@4.12.0: {}
-
- lodash._baseuniq@4.6.0:
- dependencies:
- lodash._createset: 4.0.3
- lodash._root: 3.0.1
-
- lodash._createset@4.0.3: {}
-
- lodash._root@3.0.1: {}
-
- lodash._stringtopath@4.8.0:
- dependencies:
- lodash._basetostring: 4.12.0
-
lodash.clonedeep@4.5.0: {}
lodash.debounce@4.0.8: {}
@@ -8762,13 +8667,6 @@ snapshots:
lodash.merge@4.6.2: {}
- lodash.throttle@4.1.1: {}
-
- lodash.uniqby@4.5.0:
- dependencies:
- lodash._baseiteratee: 4.7.0
- lodash._baseuniq: 4.6.0
-
lodash@2.4.2: {}
lodash@4.17.21: {}
@@ -9705,12 +9603,6 @@ snapshots:
object-assign: 4.1.1
react-is: 16.13.1
- proper-lockfile@4.1.2:
- dependencies:
- graceful-fs: 4.2.11
- retry: 0.12.0
- signal-exit: 3.0.7
-
property-expr@2.0.6: {}
property-information@5.6.0:
@@ -9731,8 +9623,6 @@ snapshots:
dependencies:
side-channel: 1.1.0
- querystringify@2.2.0: {}
-
queue-microtask@1.2.3: {}
quill-delta@5.1.0:
@@ -10139,8 +10029,6 @@ snapshots:
remove-accents@0.5.0: {}
- requires-port@1.0.0: {}
-
resize-observer-polyfill@1.5.1: {}
resolve-from@4.0.0: {}
@@ -10161,8 +10049,6 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- retry@0.12.0: {}
-
reusify@1.0.4: {}
rich-text@1.0.3:
@@ -10616,16 +10502,6 @@ snapshots:
tslib@2.8.1: {}
- tus-js-client@4.2.3:
- dependencies:
- buffer-from: 1.1.2
- combine-errors: 3.0.3
- is-stream: 2.0.1
- js-base64: 3.7.7
- lodash.throttle: 4.1.1
- proper-lockfile: 4.1.2
- url-parse: 1.5.10
-
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
@@ -10780,11 +10656,6 @@ snapshots:
dependencies:
punycode: 2.3.1
- url-parse@1.5.10:
- dependencies:
- querystringify: 2.2.0
- requires-port: 1.0.0
-
use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1):
dependencies:
react: 18.3.1
diff --git a/service/http-config/axios-interceptor-instance.ts b/service/http-config/axios-interceptor-instance.ts
index 51fcb1e9..1c360122 100644
--- a/service/http-config/axios-interceptor-instance.ts
+++ b/service/http-config/axios-interceptor-instance.ts
@@ -1,6 +1,6 @@
import axios from "axios";
import Cookies from "js-cookie";
-import { login } from "../login-services";
+import { login } from "../auth";
const baseURL = "https://netidhub.com/api/";
@@ -39,14 +39,17 @@ axiosInterceptorInstance.interceptors.response.use(
if (error.response.status === 401 && !originalRequest._retry) {
originalRequest._retry = true;
const data = {
- refreshToken: refreshToken,
grant_type: "refresh_token",
+ refresh_token: refreshToken,
client_id: "mediahub-app",
};
+ console.log("refresh token ", data);
const res = await login(data);
- if (res.data?.data?.access_token) {
- Cookies.set("access_token", res.data.data.access_token);
- Cookies.set("refresh_token", res.data.data.refresh_token);
+ const { access_token } = res.data;
+ const { refresh_token } = res.data;
+ if (access_token) {
+ Cookies.set("access_token", access_token);
+ Cookies.set("refresh_token", refresh_token);
return axiosInterceptorInstance(originalRequest);
}
}