pull main

This commit is contained in:
Sabda Yagra 2025-07-18 16:28:57 +07:00
commit 2e75d679b3
8 changed files with 143 additions and 115 deletions

View File

@ -12,14 +12,26 @@ import EventCalender from "./event-calender";
import UserSurveyBox from "./survey-box"; import UserSurveyBox from "./survey-box";
import ScrollableContentPolda from "./scrollable-content-polda"; import ScrollableContentPolda from "./scrollable-content-polda";
import AdvertisementPlacements from "./advertisement-placements"; import AdvertisementPlacements from "./advertisement-placements";
import { useTheme } from "next-themes";
const SearchSectionPolda = () => { const SearchSectionPolda = () => {
const [contentType, setContentType] = useState("all"); const [contentType, setContentType] = useState("all");
const [search, setSearch] = useState(""); const [search, setSearch] = useState("");
const router = useRouter(); const router = useRouter();
const t = useTranslations("LandingPage"); const t = useTranslations("LandingPage");
const { theme } = useTheme();
// Determine background image based on theme
const getBackgroundImage = () => {
if (theme === "dark") {
return "url('/assets/background-dark.jpg')";
} else {
return "url('/assets/background-white.jpg')";
}
};
return ( return (
<div className="flex w-full min-h-screen bg-center bg-cover bg-no-repeat" style={{ backgroundImage: "url('/assets/background.png')" }}> <div className="flex w-full min-h-screen bg-center bg-cover bg-no-repeat" style={{ backgroundImage: getBackgroundImage() }}>
<div className="hidden xl:block w-[15%] pr-4 py-5 sticky top-[150px] space-y-4 self-start"> <div className="hidden xl:block w-[15%] pr-4 py-5 sticky top-[150px] space-y-4 self-start">
<AdvertisementPlacements placement="left"/> <AdvertisementPlacements placement="left"/>
</div> </div>

View File

@ -13,14 +13,27 @@ import UserSurveyBox from "./survey-box";
import ScrollableContentPolda from "./scrollable-content-polda"; import ScrollableContentPolda from "./scrollable-content-polda";
import ScrollableContentSatker from "./scrollable-content-satker"; import ScrollableContentSatker from "./scrollable-content-satker";
import AdvertisementPlacements from "./advertisement-placements"; import AdvertisementPlacements from "./advertisement-placements";
import { useTheme } from "next-themes";
const SearchSectionSatker = () => { const SearchSectionSatker = () => {
const [contentType, setContentType] = useState("all"); const [contentType, setContentType] = useState("all");
const [search, setSearch] = useState(""); const [search, setSearch] = useState("");
const router = useRouter(); const router = useRouter();
const t = useTranslations("LandingPage"); const t = useTranslations("LandingPage");
const { theme } = useTheme();
// Determine background image based on theme
const getBackgroundImage = () => {
if (theme === "dark") {
return "url('/assets/background-dark.jpg')";
} else {
return "url('/assets/background-white.jpg')";
}
};
return ( return (
<div className="flex w-full min-h-screen bg-center bg-cover bg-no-repeat" style={{ backgroundImage: "url('/assets/background.png')" }}> <div className="flex w-full min-h-screen bg-center bg-cover bg-no-repeat" style={{ backgroundImage: getBackgroundImage() }}>
<div className="hidden xl:block w-[15%] pr-4 py-5 sticky top-[150px] space-y-4 self-start"> <div className="hidden xl:block w-[15%] pr-4 py-5 sticky top-[150px] space-y-4 self-start">
<AdvertisementPlacements placement="left"/> <AdvertisementPlacements placement="left"/>
</div> </div>

View File

@ -11,6 +11,7 @@ import { useTranslations } from "next-intl";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import router from "next/router"; import router from "next/router";
import React, { useState } from "react"; import React, { useState } from "react";
import { useTheme } from "next-themes";
import ScrollableContent from "./search-section-new"; import ScrollableContent from "./search-section-new";
import NewContent from "./new-content"; import NewContent from "./new-content";
import ContentCategory from "./content-category"; import ContentCategory from "./content-category";
@ -24,10 +25,21 @@ const SearchSection = () => {
const [search, setSearch] = useState(""); const [search, setSearch] = useState("");
const router = useRouter(); const router = useRouter();
const t = useTranslations("LandingPage"); const t = useTranslations("LandingPage");
const { theme } = useTheme();
// Determine background image based on theme
const getBackgroundImage = () => {
if (theme === "dark") {
return "url('/assets/background-dark.jpg')";
} else {
return "url('/assets/background-white.jpg')";
}
};
return ( return (
<div <div
className="flex w-full min-h-screen bg-center bg-cover bg-no-repeat" className="flex w-full min-h-screen bg-center bg-cover bg-no-repeat"
style={{ backgroundImage: "url('/assets/background.png')" }} style={{ backgroundImage: getBackgroundImage() }}
> >
<div className="hidden xl:block w-[15%] pr-4 py-5 sticky top-[130px] space-y-4 self-start"> <div className="hidden xl:block w-[15%] pr-4 py-5 sticky top-[130px] space-y-4 self-start">
<AdvertisementPlacements placement="left"/> <AdvertisementPlacements placement="left"/>

View File

@ -148,19 +148,6 @@ const LoginForm = () => {
const profile = await getProfile(access_token); const profile = await getProfile(access_token);
console.log("PROFILE : ", profile?.data?.data); console.log("PROFILE : ", profile?.data?.data);
if (
profile?.data?.data?.isInternational == true ||
profile?.data?.data?.isActive == false ||
profile?.data?.data?.isDelete == true
) {
Object.keys(Cookies.get()).forEach((cookieName) => {
Cookies.remove(cookieName);
});
warning(
"Akun Anda tidak dapat digunakan untuk masuk ke MediaHub Polri",
"/auth/login"
);
} else {
Cookies.set("home_path", profile?.data?.data?.homePath, { Cookies.set("home_path", profile?.data?.data?.homePath, {
expires: 1, expires: 1,
}); });
@ -261,7 +248,6 @@ const LoginForm = () => {
}); });
} }
} }
}
} catch (err: any) { } catch (err: any) {
toast.error(err.message || "An unexpected error occurred."); toast.error(err.message || "An unexpected error occurred.");
} }

View File

@ -105,14 +105,14 @@ export const useAuth = (): AuthContextType => {
} }
// Validate user eligibility // Validate user eligibility
if (!isUserEligible(profile)) { // if (!isUserEligible(profile)) {
clearAllCookies(); // clearAllCookies();
warning( // warning(
"Akun Anda tidak dapat digunakan untuk masuk ke MediaHub Polri", // "Akun Anda tidak dapat digunakan untuk masuk ke MediaHub Polri",
"/auth" // "/auth"
); // );
return; // return;
} // }
// Set profile cookies // Set profile cookies
setProfileCookies(profile); setProfileCookies(profile);

View File

@ -10,7 +10,6 @@ import { getCookiesDecrypt, setCookiesEncrypt } from "@/lib/utils";
// Navigation configuration based on user roles // Navigation configuration based on user roles
export const NAVIGATION_CONFIG: NavigationConfig[] = [ export const NAVIGATION_CONFIG: NavigationConfig[] = [
{ roleId: 18, path: "/in/dashboard/executive-data", label: "Executive Data Dashboard" },
{ roleId: 2, path: "/in/dashboard/executive", label: "Executive Dashboard" }, { roleId: 2, path: "/in/dashboard/executive", label: "Executive Dashboard" },
{ roleId: 3, path: "/in/dashboard", label: "Dashboard" }, { roleId: 3, path: "/in/dashboard", label: "Dashboard" },
{ roleId: 4, path: "/in/dashboard", label: "Dashboard" }, { roleId: 4, path: "/in/dashboard", label: "Dashboard" },
@ -18,6 +17,10 @@ export const NAVIGATION_CONFIG: NavigationConfig[] = [
{ roleId: 10, path: "/in/dashboard", label: "Dashboard" }, { roleId: 10, path: "/in/dashboard", label: "Dashboard" },
{ roleId: 11, path: "/in/dashboard", label: "Dashboard" }, { roleId: 11, path: "/in/dashboard", label: "Dashboard" },
{ roleId: 12, path: "/in/dashboard", label: "Dashboard" }, { roleId: 12, path: "/in/dashboard", label: "Dashboard" },
{ roleId: 13, path: "/in/dashboard", label: "Dashboard" },
{ roleId: 14, path: "/in/dashboard", label: "Dashboard" },
{ roleId: 15, path: "/in/dashboard", label: "Dashboard" },
{ roleId: 18, path: "/in/dashboard/executive-data", label: "Executive Data Dashboard" },
{ roleId: 19, path: "/in/dashboard", label: "Dashboard" }, { roleId: 19, path: "/in/dashboard", label: "Dashboard" },
]; ];
@ -102,6 +105,8 @@ export const isSpecialLevel = (userLevelId: number, parentLevelId?: number): boo
export const getNavigationPath = (roleId: number, userLevelId?: number, parentLevelId?: number): string => { export const getNavigationPath = (roleId: number, userLevelId?: number, parentLevelId?: number): string => {
const config = NAVIGATION_CONFIG.find(nav => nav.roleId === roleId); const config = NAVIGATION_CONFIG.find(nav => nav.roleId === roleId);
console.log("Navigation Config : ", config);
if (config) { if (config) {
// Special handling for role 2 with specific level conditions // Special handling for role 2 with specific level conditions
if (roleId === 2 && userLevelId && parentLevelId && isSpecialLevel(userLevelId, parentLevelId)) { if (roleId === 2 && userLevelId && parentLevelId && isSpecialLevel(userLevelId, parentLevelId)) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 KiB