fixing ui

This commit is contained in:
Rama Priyanto 2025-03-26 15:27:09 +07:00
parent 831acbb5da
commit c030aa4444
8 changed files with 121 additions and 247 deletions

View File

@ -1,7 +0,0 @@
import React from 'react'
export default function Page() {
return (
<div>page</div>
)
}

View File

@ -12,6 +12,8 @@ import {
otpRequest, otpRequest,
otpValidation, otpValidation,
postSignIn, postSignIn,
savePassword,
updateProfile,
} from "@/service/master-user"; } from "@/service/master-user";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import Swal from "sweetalert2"; import Swal from "sweetalert2";
@ -56,82 +58,82 @@ export default function Login() {
setAccessData(response?.data?.data); setAccessData(response?.data?.data);
const profile = await getProfile(response?.data?.data?.access_token); const profile = await getProfile(response?.data?.data?.access_token);
console.log("PROFILE : ", profile?.data?.data); console.log("PROFILE : ", profile?.data?.data);
// setEmailSetup(profile?.data?.data?.email); setEmailSetup(profile?.data?.data?.email);
// setProfile(profile?.data?.data); setProfile(profile?.data?.data);
// setFirstLogin(true); setFirstLogin(true);
// if (profile?.data?.data?.isFirstLogin) { if (profile?.data?.data?.isFirstLogin) {
// setFirstLogin(true); setFirstLogin(true);
// } else { } else {
// const res = await otpRequest( const res = await otpRequest(
// profile?.data?.data?.email, profile?.data?.data?.email,
// profile?.data?.data?.fullname profile?.data?.data?.fullname
// );
// setNeedOtp(true);
// }
const dateTime: any = new Date();
const newTime: any = dateTime.getTime() + 10 * 60 * 1000;
Cookies.set("access_token", response?.data?.data?.access_token, {
expires: 1,
});
Cookies.set("refresh_token", response?.data?.data?.refresh_token, {
expires: 1,
});
Cookies.set("time_refresh", newTime, {
expires: 1,
});
Cookies.set("is_first_login", "true", {
secure: true,
sameSite: "strict",
});
const resActivity = await saveActivity(
{
activityTypeId: 1,
url: "https://kontenhumas.com/auth",
userId: profile?.data?.data?.id,
},
accessData?.id_token
); );
Cookies.set("profile_picture", profile?.data?.data?.profilePictureUrl, { setNeedOtp(true);
expires: 1, }
});
Cookies.set("uie", profile?.data?.data?.id, { // const dateTime: any = new Date();
expires: 1,
}); // const newTime: any = dateTime.getTime() + 10 * 60 * 1000;
Cookies.set("ufne", profile?.data?.data?.fullname, {
expires: 1, // Cookies.set("access_token", response?.data?.data?.access_token, {
}); // expires: 1,
Cookies.set("ulie", profile?.data?.data?.userLevelGroup, { // });
expires: 1, // Cookies.set("refresh_token", response?.data?.data?.refresh_token, {
}); // expires: 1,
Cookies.set("username", profile?.data?.data?.username, { // });
expires: 1, // Cookies.set("time_refresh", newTime, {
}); // expires: 1,
Cookies.set("urie", profile?.data?.data?.roleId, { // });
expires: 1, // Cookies.set("is_first_login", "true", {
}); // secure: true,
Cookies.set("roleName", profile?.data?.data?.roleName, { // sameSite: "strict",
expires: 1, // });
}); // const resActivity = await saveActivity(
Cookies.set("masterPoldaId", profile?.data?.data?.masterPoldaId, { // {
expires: 1, // activityTypeId: 1,
}); // url: "https://kontenhumas.com/auth",
Cookies.set("ulne", profile?.data?.data?.userLevelId, { // userId: profile?.data?.data?.id,
expires: 1, // },
}); // accessData?.id_token
Cookies.set("urce", profile?.data?.data?.roleCode, { // );
expires: 1, // Cookies.set("profile_picture", profile?.data?.data?.profilePictureUrl, {
}); // expires: 1,
Cookies.set("email", profile?.data?.data?.email, { // });
expires: 1, // Cookies.set("uie", profile?.data?.data?.id, {
}); // expires: 1,
router.push("/admin/dashboard"); // });
Cookies.set("status", "login", { // Cookies.set("ufne", profile?.data?.data?.fullname, {
expires: 1, // expires: 1,
}); // });
// Cookies.set("ulie", profile?.data?.data?.userLevelGroup, {
// expires: 1,
// });
// Cookies.set("username", profile?.data?.data?.username, {
// expires: 1,
// });
// Cookies.set("urie", profile?.data?.data?.roleId, {
// expires: 1,
// });
// Cookies.set("roleName", profile?.data?.data?.roleName, {
// expires: 1,
// });
// Cookies.set("masterPoldaId", profile?.data?.data?.masterPoldaId, {
// expires: 1,
// });
// Cookies.set("ulne", profile?.data?.data?.userLevelId, {
// expires: 1,
// });
// Cookies.set("urce", profile?.data?.data?.roleCode, {
// expires: 1,
// });
// Cookies.set("email", profile?.data?.data?.email, {
// expires: 1,
// });
// router.push("/admin/dashboard");
// Cookies.set("status", "login", {
// expires: 1,
// });
close(); close();
} }
@ -251,51 +253,28 @@ export default function Login() {
close(); close();
}; };
const generatePassword = () => { const submitResetEmail = async () => {
const length = Math.floor(Math.random() * 9) + 8; const req = {
email: emailSetup,
fullName: profile?.fullname,
username: profile?.username,
userLevelId: profile?.userLevelId,
userRoleId: profile?.userRoleId,
};
const upperCaseChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const res = await updateProfile(req);
const lowerCaseChars = "abcdefghijklmnopqrstuvwxyz"; if (res?.error) {
const numberChars = "0123456789"; error(res.message);
const specialChars = "!@#$%^&*"; return false;
const allChars =
upperCaseChars + lowerCaseChars + numberChars + specialChars;
let generatedPassword = "";
generatedPassword +=
upperCaseChars[Math.floor(Math.random() * upperCaseChars.length)];
generatedPassword +=
specialChars[Math.floor(Math.random() * specialChars.length)];
generatedPassword +=
numberChars[Math.floor(Math.random() * numberChars.length)];
generatedPassword +=
lowerCaseChars[Math.floor(Math.random() * lowerCaseChars.length)];
for (let i = generatedPassword.length; i < length; i++) {
generatedPassword +=
allChars[Math.floor(Math.random() * allChars.length)];
} }
close();
generatedPassword = generatedPassword console.log("profile", req, passwordSetup, confPasswordSetup);
.split("")
.sort(() => 0.5 - Math.random())
.join("");
setPasswordSetup(generatedPassword);
}; };
return ( return (
<div className="flex flex-row h-full"> <div className="flex flex-row h-full">
<div <div className="h-screen hidden md:block md:w-3/5">
// style={{
// backgroundImage: "url(headerbanner1.png)",
// backgroundRepeat: "no-repeat",
// backgroundSize: "cover",
// backgroundPosition: "left center",
// }}
className="h-screen hidden md:block md:w-3/5"
>
<Image <Image
src="/headerbanner1.png" src="/headerbanner1.png"
alt="login-image" alt="login-image"
@ -307,7 +286,7 @@ export default function Login() {
height={480} height={480}
alt="icon" alt="icon"
src="/divhumas.png" src="/divhumas.png"
className="w-[240px] !h-[240px]" className="w-[180px] !h-[180px]"
/> />
</Link> </Link>
</div> </div>
@ -327,85 +306,11 @@ export default function Login() {
value={emailSetup} value={emailSetup}
onValueChange={setEmailSetup} onValueChange={setEmailSetup}
/> />
<p className="my-2 text-white">Password Baru</p> <a className="text-[#DD8306] text-sm">Validasi Email</a>
<Input
isRequired
className="my-2"
classNames={{ input: "rounded-md", inputWrapper: "rounded-md" }}
endContent={
<button
className="focus:outline-none"
type="button"
onClick={() =>
setIsVisibleSetup([!isVisibleSetup[0], isVisibleSetup[1]])
}
>
{isVisibleSetup[0] ? (
<EyeSlashFilledIcon className="text-2xl text-default-400 pointer-events-none" />
) : (
<EyeFilledIcon className="text-2xl text-default-400 pointer-events-none" />
)}
</button>
}
type={isVisibleSetup[0] ? "text" : "password"}
label=""
placeholder=""
value={passwordSetup}
onValueChange={setPasswordSetup}
/>
<p className="my-2 text-white">Konfirmasi Password Baru</p>
<Input
isRequired
className="my-2"
classNames={{ input: "rounded-md", inputWrapper: "rounded-md" }}
endContent={
<button
className="focus:outline-none"
type="button"
onClick={() =>
setIsVisibleSetup([isVisibleSetup[0], !isVisibleSetup[1]])
}
>
{isVisibleSetup[1] ? (
<EyeSlashFilledIcon className="text-2xl text-default-400 pointer-events-none" />
) : (
<EyeFilledIcon className="text-2xl text-default-400 pointer-events-none" />
)}
</button>
}
type={isVisibleSetup[1] ? "text" : "password"}
label=""
placeholder=""
value={confPasswordSetup}
onValueChange={setConfPasswordSetup}
/>
<a
className="cursor-pointer text-[#DD8306]"
onClick={generatePassword}
>
Generate Password
</a>
<PasswordChecklist
rules={["minLength", "specialChar", "number", "capital", "match"]}
minLength={8}
value={passwordSetup}
valueAgain={confPasswordSetup}
onChange={(isValid) => {
setIsValidPassword(isValid);
}}
className="text-white text-sm my-3"
messages={{
minLength: "Kata sandi harus lebih dari 8 karakter",
specialChar: "Kata sandi harus mengandung karakter khusus",
number: "Kata sandi harus mengandung angka",
capital: "Kata sandi harus mengandung huruf kapital",
match: "Kata sandi cocok",
}}
/>
<Button <Button
size="lg" size="lg"
className="w-fit bg-[#DD8306] rounded-md font-semibold my-3 text-white" className="w-fit bg-[#DD8306] rounded-md font-semibold my-3 text-white"
onPress={submitOtp} onPress={submitResetEmail}
> >
Submit Submit
</Button> </Button>

View File

@ -67,7 +67,7 @@ export default function HeaderNews() {
return ( return (
<div className="w-full"> <div className="w-full">
<div className="flex flex-col lg:flex-row gap-3 lg:gap-8 bg-white dark:bg-black p-1 lg:p-8 lg:h-[55vh] w-full lg:w-[75%] lg:mx-auto"> <div className="flex flex-col lg:flex-row gap-3 lg:gap-8 bg-white dark:bg-black p-1 lg:p-8 lg:h-[540px] w-full lg:w-[75%] lg:mx-auto">
<div className="lg:hidden w-[90%] h-[300px] md:h-[500px] mx-auto"> <div className="lg:hidden w-[90%] h-[300px] md:h-[500px] mx-auto">
{article ? ( {article ? (
<Swiper <Swiper
@ -109,7 +109,7 @@ export default function HeaderNews() {
? "/no-image.jpg" ? "/no-image.jpg"
: newsItem?.thumbnailUrl : newsItem?.thumbnailUrl
} }
className="!w-[90vh] md:!w-[95vh] !h-[200px] md:!h-[400px] object-cover" className="!w-[90vh] md:!w-[95vh] !h-[200px] md:!h-[400px] object-cover !rounded-b-none"
/> />
<CardFooter className="before:bg-white/10 border-gray-100 border-1 rounded-b-xl shadow-sm bottom-1 w-full"> <CardFooter className="before:bg-white/10 border-gray-100 border-1 rounded-b-xl shadow-sm bottom-1 w-full">
@ -138,11 +138,11 @@ export default function HeaderNews() {
<CircularProgress aria-label="Loading..." size="lg" /> <CircularProgress aria-label="Loading..." size="lg" />
)} )}
</div> </div>
<div className="w-[90%] lg:w-[25%] p-2 dark:bg-stone-800 bg-[#f0f0f0] dark:text-white text-black rounded-xl mb-2 md:mb-0 h-[40vh] lg:h-[50vh] mx-auto"> <div className="w-[90%] lg:w-[25%] p-2 dark:bg-stone-800 bg-[#f0f0f0] dark:text-white text-black rounded-xl mb-2 md:mb-0 h-[40vh] lg:h-[500px] mx-auto">
<p className="text-base font-bold text-center dark:text-white text-black"> <p className="text-base font-bold text-center dark:text-white text-black">
{t("berita")} {t("berita")}
</p> </p>
<ScrollShadow hideScrollBar className="h-[29vh] lg:h-[39vh] "> <ScrollShadow hideScrollBar className="h-[29vh] lg:h-[400px] ">
{hotNews?.map((data: any, index: number) => ( {hotNews?.map((data: any, index: number) => (
<div <div
className="text-xs text-left m-2 p-2 dark:bg-[#1E1616] bg-white rounded-md flex flex-row gap-2" className="text-xs text-left m-2 p-2 dark:bg-[#1E1616] bg-white rounded-md flex flex-row gap-2"
@ -198,7 +198,7 @@ export default function HeaderNews() {
</div> </div>
</div> </div>
<div className="hidden lg:block w-full lg:w-[50%] h-[50vh]"> <div className="hidden lg:flex w-full lg:w-[50%] h-[500px]">
{article ? ( {article ? (
<Swiper <Swiper
centeredSlides={true} centeredSlides={true}
@ -227,11 +227,11 @@ export default function HeaderNews() {
}} }}
> >
{article?.map((newsItem: any, index: number) => ( {article?.map((newsItem: any, index: number) => (
<SwiperSlide key={newsItem?.id} className="h-[50vh]"> <SwiperSlide key={newsItem?.id} className="!w-full h-[50vh]">
<Card <Card
isFooterBlurred isFooterBlurred
radius="lg" radius="lg"
className="border-none h-[50vh] shadow-none" className="border-none h-[50vh] lg:h-[500px] shadow-none"
> >
<Image <Image
alt="headernews" alt="headernews"
@ -240,7 +240,7 @@ export default function HeaderNews() {
? "/no-image.jpg" ? "/no-image.jpg"
: newsItem?.thumbnailUrl : newsItem?.thumbnailUrl
} }
className="w-full !h-[50vh] object-cover rounded-lg" className="!w-full !h-[500px] !object-cover !rounded-none"
/> />
<CardFooter className="mb-1 max-h-[20vh] before:bg-white/10 border-white/20 border-1 overflow-hidden py-1 md:absolute before:rounded-xl rounded-large bottom-1 w-[calc(100%_-_8px)] shadow-small ml-1 z-10"> <CardFooter className="mb-1 max-h-[20vh] before:bg-white/10 border-white/20 border-1 overflow-hidden py-1 md:absolute before:rounded-xl rounded-large bottom-1 w-[calc(100%_-_8px)] shadow-small ml-1 z-10">
@ -273,11 +273,11 @@ export default function HeaderNews() {
<CircularProgress aria-label="Loading..." size="lg" /> <CircularProgress aria-label="Loading..." size="lg" />
)} )}
</div> </div>
<div className="w-[90%] lg:w-[25%] h-[50vh] rounded-md text-white dark:text-black mx-auto lg:mx-0"> <div className="w-[90%] lg:w-[25%] h-[50vh] lg:h-[500px] rounded-md text-white dark:text-black mx-auto lg:mx-0">
{/* <GPRKominfo /> */} {/* <GPRKominfo /> */}
{selectedTab === "media" ? ( {selectedTab === "media" ? (
<div className="lg:!h-[50vh] p-2 dark:bg-stone-800 bg-[#f0f0f0] text-black dark:text-white rounded-lg"> <div className="lg:h-[500px] p-2 dark:bg-stone-800 bg-[#f0f0f0] text-black dark:text-white rounded-lg">
<div className="text-sm flex flex-row gap-3 mx-2 mb-2"> <div className="text-sm flex flex-row gap-3 mx-2 mb-2">
<a <a
onClick={() => setSelectedTab("media")} onClick={() => setSelectedTab("media")}
@ -294,7 +294,7 @@ export default function HeaderNews() {
Video Virtual Video Virtual
</a> </a>
</div> </div>
<ScrollShadow hideScrollBar className="h-[39vh]"> <ScrollShadow hideScrollBar className="h-[39vh] lg:h-[400px]">
{article?.map((list: any, index: number) => ( {article?.map((list: any, index: number) => (
<div <div
key={list?.id} key={list?.id}

View File

@ -401,14 +401,14 @@ export default function BannerHumasNew() {
<div className="bg-white rounded-md py-0.5 px-1"> <div className="bg-white rounded-md py-0.5 px-1">
<ThemeSwitch /> <ThemeSwitch />
</div> </div>
<a {/* <a
className="cursor-pointer" className="cursor-pointer"
onClick={() => onClick={() =>
language === "id" ? setLanguage("en") : setLanguage("id") language === "id" ? setLanguage("en") : setLanguage("id")
} }
> >
{language === "id" ? <IdnIcon /> : <UKIcon />} {language === "id" ? <IdnIcon /> : <UKIcon />}
</a> </a> */}
</div> </div>
</div> </div>
</div> </div>

View File

@ -20,10 +20,10 @@ export default function DigitalServices() {
Polda Satker dan Layanan Digital Polda Satker dan Layanan Digital
</p> </p>
</div> </div>
<div className="grid grid-cols-1 lg:grid-cols-5 p-4 justify-center"> <div className="grid grid-cols-1 lg:grid-cols-5 p-4 justify-center lg:gap-3">
<a <a
onClick={() => setIsPoldaOpen(true)} onClick={() => setIsPoldaOpen(true)}
className="group shadow-lg rounded-lg w-full lg:w-[200px] h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out" className="group shadow-lg rounded-lg w-full h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out"
> >
<Image <Image
src="/indonesia-map.png" src="/indonesia-map.png"
@ -39,7 +39,7 @@ export default function DigitalServices() {
</a> </a>
<a <a
onClick={() => setIsSatkerOpen(true)} onClick={() => setIsSatkerOpen(true)}
className="group shadow-lg rounded-lg w-full lg:w-[200px] h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out" className="group shadow-lg rounded-lg w-full h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out"
> >
<Image <Image
src="/satker.png" src="/satker.png"
@ -55,7 +55,7 @@ export default function DigitalServices() {
</a> </a>
<a <a
onClick={() => setIsAppsOpen(true)} onClick={() => setIsAppsOpen(true)}
className="group shadow-lg rounded-lg w-full lg:w-[200px] h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out" className="group shadow-lg rounded-lg w-full h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out"
> >
<Image <Image
src="/presisi.png" src="/presisi.png"
@ -71,7 +71,7 @@ export default function DigitalServices() {
</a> </a>
<a <a
onClick={() => setIsSuggestionOpen(true)} onClick={() => setIsSuggestionOpen(true)}
className="group shadow-lg rounded-lg w-full lg:w-[200px] h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out" className="group shadow-lg rounded-lg w-full h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out"
> >
<Image <Image
src="/kritik-saran.png" src="/kritik-saran.png"
@ -87,7 +87,7 @@ export default function DigitalServices() {
</a> </a>
<Link <Link
href="https://survey.zohopublic.com/zs/EYCOBO" href="https://survey.zohopublic.com/zs/EYCOBO"
className="group shadow-lg rounded-lg w-full lg:w-[200px] h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out" className="group shadow-lg rounded-lg w-full h-[200px] flex flex-col justify-center items-center hover:border-3 hover:border-red-600 cursor-pointer mx-auto transition duration-300 ease-in-out"
> >
<Image <Image
src="/survey.png" src="/survey.png"

View File

@ -98,7 +98,7 @@ export default function FooterNew(props: { margin?: boolean }) {
/> />
</Link> </Link>
</div> </div>
<div className="grid grid-cols-1 lg:grid-cols-3 gap-4 lg:px-10"> <div className="grid grid-cols-1 lg:grid-cols-3 gap-4">
<div className="flex flex-col gap-1 text-md font-light"> <div className="flex flex-col gap-1 text-md font-light">
<p className="text-lg font-semibold">Tentang Kami</p> <p className="text-lg font-semibold">Tentang Kami</p>
<div className="flex flex-row gap-2 items-center"> <div className="flex flex-row gap-2 items-center">
@ -123,7 +123,7 @@ export default function FooterNew(props: { margin?: boolean }) {
</span> </span>
</div> </div>
</div> </div>
<div className="flex flex-col gap-4 text-md"> <div className="flex flex-col gap-4 text-md items-center">
<p className="text-lg font-semibold"> <p className="text-lg font-semibold">
Download Aplikasi Polri Presisi Download Aplikasi Polri Presisi
</p> </p>
@ -133,7 +133,7 @@ export default function FooterNew(props: { margin?: boolean }) {
className="flex flex-row p-1 border-1 border-black dark:border-white rounded-lg items-center" className="flex flex-row p-1 border-1 border-black dark:border-white rounded-lg items-center"
> >
<LandingAppleIcon size={36} /> <LandingAppleIcon size={36} />
<div className="flex flex-col gap-0 leading-none font-light mr-4"> <div className="flex flex-col gap-0 leading-none font-light mr-1">
<p className="text-[10px]">Download on the</p> <p className="text-[10px]">Download on the</p>
<p className="text-lg font-semibold">App Store</p> <p className="text-lg font-semibold">App Store</p>
</div> </div>
@ -143,7 +143,7 @@ export default function FooterNew(props: { margin?: boolean }) {
className="flex flex-row p-1 border-1 border-black dark:border-white rounded-lg items-center" className="flex flex-row p-1 border-1 border-black dark:border-white rounded-lg items-center"
> >
<LandingPlayStoreIcon size={30} /> <LandingPlayStoreIcon size={30} />
<div className="flex flex-col gap-0 leading-none font-light mr-4"> <div className="flex flex-col gap-0 leading-none font-light mr-1">
<p className="text-[10px]">GET IT ON</p> <p className="text-[10px]">GET IT ON</p>
<p className="text-lg font-semibold">Google Play</p> <p className="text-lg font-semibold">Google Play</p>
</div> </div>

View File

@ -1287,14 +1287,14 @@ export default function NavbarHumas(props: { size: string }) {
<div className="bg-gray-200 dark:bg-default-900 rounded-md py-0.5 px-1"> <div className="bg-gray-200 dark:bg-default-900 rounded-md py-0.5 px-1">
<ThemeSwitch /> <ThemeSwitch />
</div> </div>
<a {/* <a
className="cursor-pointer" className="cursor-pointer"
onClick={() => onClick={() =>
language === "id" ? setLanguage("en") : setLanguage("id") language === "id" ? setLanguage("en") : setLanguage("id")
} }
> >
{language === "id" ? <IdnIcon /> : <UKIcon />} {language === "id" ? <IdnIcon /> : <UKIcon />}
</a> </a> */}
</div> </div>
</div> </div>
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
@ -1331,14 +1331,14 @@ export default function NavbarHumas(props: { size: string }) {
/> />
</Link> </Link>
<div className="flex flex-row gap-3 items-center"> <div className="flex flex-row gap-3 items-center">
<a {/* <a
className="cursor-pointer" className="cursor-pointer"
onClick={() => onClick={() =>
language === "id" ? setLanguage("en") : setLanguage("id") language === "id" ? setLanguage("en") : setLanguage("id")
} }
> >
{language === "id" ? <IdnIcon size={24} /> : <UKIcon />} {language === "id" ? <IdnIcon size={24} /> : <UKIcon />}
</a> </a> */}
<ThemeSwitch /> <ThemeSwitch />
<NavbarMenuToggle /> <NavbarMenuToggle />
<NavbarMenu> <NavbarMenu>

View File

@ -34,19 +34,10 @@ export default function NewsDetailPage(props: { datas: any }) {
const response = await getListArticle(req); const response = await getListArticle(req);
setArticles(response?.data?.data); setArticles(response?.data?.data);
} }
const initFetch = async () => {
loading();
const res = await getArticleById(id?.split("-")[0]);
const data = res?.data?.data;
setDetailArticle(data);
close();
};
const sendActivity = async () => { const sendActivity = async () => {
let req: any = { let req: any = {
activityTypeId: 2, activityTypeId: 2,
url: "https://kontenhumas.com/" + pathname, url: "https://kontenhumas.com" + pathname,
articleId: Number(id?.split("-")[0]), articleId: Number(id?.split("-")[0]),
}; };
if (uid) { if (uid) {
@ -55,24 +46,9 @@ export default function NewsDetailPage(props: { datas: any }) {
const resActivity = await saveActivity(req, token); const resActivity = await saveActivity(req, token);
}; };
return ( return (
<> <>
{/* {" "}
<Head>
<title>{detailArticle?.title}</title>
<meta property="og:title" content={detailArticle?.title} />
<meta property="og:description" content={detailArticle?.description} />
<meta property="og:image" content={detailArticle?.thumbnailUrl} />
<meta
property="og:url"
content={`https://kontenhumas.com/news/detail/${detailArticle?.id}-${detailArticle?.slug}`}
/>
<meta property="og:type" content="article" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={detailArticle?.title} />
<meta name="twitter:description" content={detailArticle?.description} />
<meta name="twitter:image" content={detailArticle?.thumbnailUrl} />
</Head> */}
<div className="bg-white dark:bg-stone-900"> <div className="bg-white dark:bg-stone-900">
<div className="px-5 lg:px-0 lg:w-[75vw] lg:mx-auto py-8"> <div className="px-5 lg:px-0 lg:w-[75vw] lg:mx-auto py-8">
<div className="flex flex-row gap-4 items-end "> <div className="flex flex-row gap-4 items-end ">