web-humas-fe/components/landing/footer-new.tsx

241 lines
8.3 KiB
TypeScript
Raw Normal View History

2025-03-14 08:45:40 +00:00
"use client";
2025-02-24 03:34:01 +00:00
import { Button } from "@heroui/button";
import { Input } from "@heroui/input";
import {
LandingAppleIcon,
LandingCallIcon,
LandingEmailIcon,
LandingLocationIcon,
LandingPlayStoreIcon,
MailIcon,
SendIcon,
} from "../icons";
import Link from "next/link";
import { useTranslations } from "next-intl";
import { useEffect, useState } from "react";
import Image from "next/image";
import { error, success } from "@/config/swal";
2025-05-04 07:14:12 +00:00
import { subscription } from "@/services/subscribe";
2025-05-27 05:19:58 +00:00
import Cookies from "js-cookie";
2025-02-24 03:34:01 +00:00
2025-03-18 08:30:18 +00:00
export default function FooterNew(props: { margin?: boolean }) {
const [emailValue, setEmailValue] = useState("");
2025-08-29 13:01:29 +00:00
const [accessToken, setAccessToken] = useState<any>();
useEffect(() => {
const accessToken = Cookies.get("access_token");
setAccessToken(accessToken);
}, []);
const doSubscribe = async () => {
const isValidEmail = (email: string): boolean => {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return emailRegex.test(email);
};
if (!isValidEmail(emailValue)) {
error("Email tidak valid");
return false;
}
const res = await subscription({ email: emailValue });
if (res?.error) {
error(res?.message);
return false;
}
success("Sukses");
};
const [hasMounted, setHasMounted] = useState(false);
useEffect(() => {
setHasMounted(true);
}, []);
// Render
if (!hasMounted) return null;
2025-02-24 03:34:01 +00:00
return (
2025-03-18 08:30:18 +00:00
<div
className={`${
props?.margin ? "mb-[60px]" : ""
} relative text-xs leading-4 md:leading-loose lg:leading-8 font-semibold`}
>
2025-03-07 02:02:53 +00:00
<div className="py-10 w-full lg:w-[70%] flex flex-col gap-4 px-6 lg:px-0 lg:mx-auto">
2025-02-25 10:30:33 +00:00
<div className="flex justify-center text-xl lg:text-2xl">
Channel Humas Polri
</div>
2025-03-03 11:06:31 +00:00
<div className="grid grid-cols-3 lg:flex lg:flex-row gap-4 justify-around items-center border-b-1 border-black pb-5">
<Link
href="https://portal.humas.polri.go.id/"
className="flex justify-center"
>
2025-02-24 03:34:01 +00:00
<Image
src="/assets/portal-humas.png"
width={480}
height={480}
alt="portal-humas"
2025-02-25 10:30:33 +00:00
className="w-[50px] lg:w-[100px]"
2025-02-24 03:34:01 +00:00
/>
</Link>
2025-03-03 11:06:31 +00:00
<Link
href="https://mediahub.polri.go.id/"
className="flex flex-col justify-center items-center"
>
2025-02-24 03:34:01 +00:00
<Image
src="/assets/mediahub.png"
width={480}
height={480}
alt="mediahub"
2025-03-03 11:06:31 +00:00
className="w-[80px] lg:w-[200px]"
2025-02-24 03:34:01 +00:00
/>
</Link>
2025-05-21 04:36:00 +00:00
<Link href="" className="flex justify-center">
2025-02-24 03:34:01 +00:00
<Image
src="/assets/spit.png"
width={480}
height={480}
alt="spit"
2025-03-03 11:06:31 +00:00
className="w-[85px] lg:w-[170px] hidden dark:block"
/>
<Image
src="/assets/spit-blackline.png"
width={480}
height={480}
alt="spit"
className="w-[85px] lg:w-[170px] dark:hidden"
2025-02-24 03:34:01 +00:00
/>
</Link>
2025-05-21 04:36:00 +00:00
<Link
href="https://tvradio.polri.go.id/"
className="flex justify-center"
>
2025-02-24 03:34:01 +00:00
<Image
src="/assets/polri-tv.png"
width={480}
height={480}
alt="polritv"
2025-02-25 10:30:33 +00:00
className="w-[85px] lg:w-[170px]"
2025-02-24 03:34:01 +00:00
/>
</Link>
2025-05-21 04:36:00 +00:00
<Link
href="https://tribratanews.polri.go.id/"
className="flex justify-center"
>
2025-02-24 03:34:01 +00:00
<Image
src="/assets/tb-news.png"
width={480}
height={480}
alt="tbn"
2025-02-25 10:30:33 +00:00
className="w-[85px] lg:w-[170px]"
2025-02-24 03:34:01 +00:00
/>
</Link>
2025-05-21 04:36:00 +00:00
<Link href="https://inp.polri.go.id/" className="flex justify-center">
2025-02-24 03:34:01 +00:00
<Image
src="/assets/inp.png"
width={480}
height={480}
alt="inp"
2025-02-25 10:30:33 +00:00
className="w-[85px] lg:w-[170px]"
2025-02-24 03:34:01 +00:00
/>
</Link>
</div>
2025-03-26 08:27:09 +00:00
<div className="grid grid-cols-1 lg:grid-cols-3 gap-4">
2025-02-24 03:34:01 +00:00
<div className="flex flex-col gap-1 text-md font-light">
2025-03-03 11:06:31 +00:00
<p className="text-lg font-semibold">Tentang Kami</p>
2025-02-24 03:34:01 +00:00
<div className="flex flex-row gap-2 items-center">
<div className="w-[16px]">
<LandingCallIcon size={16} />
</div>
<p>Call Center 110</p>
</div>
<div className="flex flex-row gap-2 items-center">
<div className="w-[16px]">
<LandingEmailIcon size={16} />
</div>
<p>ppid@polri.go.id</p>
</div>
<div className="flex flex-row gap-2 justify-start items-start">
<div className="w-[16px]">
<LandingLocationIcon size={16} />
</div>
<span className="p-0 m-0 self-start leading-tight">
Jl. Trunojoyo No.3, Selong, Kec. Kby. Baru, Kota Jakarta
Selatan, Daerah Khusus Ibukota Jakarta
</span>
</div>
</div>
2025-03-26 08:27:09 +00:00
<div className="flex flex-col gap-4 text-md items-center">
2025-03-03 11:06:31 +00:00
<p className="text-lg font-semibold">
Download Aplikasi Polri Presisi
</p>
2025-02-24 03:34:01 +00:00
<div className="flex flex-row gap-2">
<Link
2025-06-16 12:34:41 +00:00
href="https://apps.apple.com/id/app/polri-super-app/id1617509708"
2025-03-03 11:06:31 +00:00
className="flex flex-row p-1 border-1 border-black dark:border-white rounded-lg items-center"
2025-06-16 12:34:41 +00:00
target="_blank"
2025-02-24 03:34:01 +00:00
>
<LandingAppleIcon size={36} />
2025-03-26 08:27:09 +00:00
<div className="flex flex-col gap-0 leading-none font-light mr-1">
2025-02-24 03:34:01 +00:00
<p className="text-[10px]">Download on the</p>
2025-03-03 11:06:31 +00:00
<p className="text-lg font-semibold">App Store</p>
2025-02-24 03:34:01 +00:00
</div>
</Link>
<Link
2025-06-16 12:34:41 +00:00
href=" https://play.google.com/store/apps/details?id=superapps.polri.presisi.presisi"
2025-03-03 11:06:31 +00:00
className="flex flex-row p-1 border-1 border-black dark:border-white rounded-lg items-center"
2025-06-16 12:34:41 +00:00
target="_blank"
2025-02-24 03:34:01 +00:00
>
<LandingPlayStoreIcon size={30} />
2025-03-26 08:27:09 +00:00
<div className="flex flex-col gap-0 leading-none font-light mr-1">
2025-02-24 03:34:01 +00:00
<p className="text-[10px]">GET IT ON</p>
2025-03-03 11:06:31 +00:00
<p className="text-lg font-semibold">Google Play</p>
2025-02-24 03:34:01 +00:00
</div>
</Link>
</div>
</div>
<div className="flex flex-col gap-4 text-md">
2025-03-03 11:06:31 +00:00
<p className="text-xl font-semibold">Subscribe</p>
2025-02-24 03:34:01 +00:00
<div className="flex flex-col">
<p className="font-light">
Dapatkan info & event terupdate dari kami.
</p>
<div className="flex items-center">
{" "}
<Input
label=""
type="text"
2025-03-03 11:06:31 +00:00
variant="bordered"
2025-02-24 03:34:01 +00:00
placeholder="Tuliskan Email Anda"
2025-03-03 11:06:31 +00:00
className="rounded-none !text-black "
2025-02-24 03:34:01 +00:00
classNames={{
2025-03-03 11:06:31 +00:00
inputWrapper:
"rounded-none h-[37px] bg-white !text-black border-black dark:border-white",
mainWrapper:
"rounded-none h-[37px] bg-white !text-black dark:border-white",
2025-02-24 03:34:01 +00:00
}}
value={emailValue}
onValueChange={setEmailValue}
2025-02-24 03:34:01 +00:00
/>
<a
onClick={doSubscribe}
className="h-[38px] dark:h-[37px] text-white dark:text-black bg-black dark:bg-white flex items-center justify-center w-14 cursor-pointer"
>
2025-02-24 03:34:01 +00:00
<SendIcon />
</a>
2025-02-24 03:34:01 +00:00
</div>
</div>
2025-05-27 05:19:58 +00:00
<Link href={accessToken ? "/admin/dashboard" : `/auth`}>
2025-03-03 11:06:31 +00:00
<Button className="mt-1 bg-[#BE0106] text-white">
2025-02-24 03:34:01 +00:00
<p className="text-xs">Kontributor Wilayah</p>
</Button>
2025-02-24 12:24:58 +00:00
</Link>
2025-02-24 03:34:01 +00:00
</div>
</div>
</div>
2025-02-25 10:30:33 +00:00
<div className="bg-red-800 text-white text-center py-5 flex justify-center font-light text-sm lg:text-base">
&copy; Copyright Humas&nbsp; POLRI &reg;&nbsp;All Rights Reserved
2025-02-24 03:34:01 +00:00
</div>
</div>
);
}