diff --git a/app/admin/dashboard/page.tsx b/app/admin/dashboard/page.tsx new file mode 100644 index 0000000..f4f0d25 --- /dev/null +++ b/app/admin/dashboard/page.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +const AdminDasboard = () => { + return ( +
AdminDasboard
+ ) +} + +export default AdminDasboard \ No newline at end of file diff --git a/app/admin/page.tsx b/app/admin/page.tsx index 1e4a2d5..0084293 100644 --- a/app/admin/page.tsx +++ b/app/admin/page.tsx @@ -2,10 +2,10 @@ import React from 'react' export default function AdminHumasPage() { return ( -
-
1
+
1
1
+
1
1
1
diff --git a/app/news/[polda-name]/layout.tsx b/app/news/[polda-name]/layout.tsx new file mode 100644 index 0000000..3164a5f --- /dev/null +++ b/app/news/[polda-name]/layout.tsx @@ -0,0 +1,13 @@ +import { HumasLayout } from "@/components/layout/HumasLayout"; + +export default function PoldaNewsLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + {children} + + ); +} diff --git a/app/news/[polda-name]/page.tsx b/app/news/[polda-name]/page.tsx new file mode 100644 index 0000000..9eced98 --- /dev/null +++ b/app/news/[polda-name]/page.tsx @@ -0,0 +1,8 @@ +import ListNews from '@/components/detail/ListNews' +import React from 'react' + +export default function PoldaNewsPage() { + return ( + + ) +} diff --git a/app/portal-ppid/satuan-kerja/[satker-name]/layout.tsx b/app/portal-ppid/satuan-kerja/[satker-name]/layout.tsx index a4dff35..36d5457 100644 --- a/app/portal-ppid/satuan-kerja/[satker-name]/layout.tsx +++ b/app/portal-ppid/satuan-kerja/[satker-name]/layout.tsx @@ -8,8 +8,8 @@ export default function DinamicSatkerLayout({ }: { children: React.ReactNode }) { - const pathname = usePathname(); - console.log(pathname) + // const pathname = usePathname(); + // console.log(pathname) return ( diff --git a/app/portal-ppid/satuan-kerja/[satker-name]/page.tsx b/app/portal-ppid/satuan-kerja/[satker-name]/page.tsx index 0e5f027..a72806f 100644 --- a/app/portal-ppid/satuan-kerja/[satker-name]/page.tsx +++ b/app/portal-ppid/satuan-kerja/[satker-name]/page.tsx @@ -4,10 +4,12 @@ import React from 'react' export default function SatkerPage() { const pathname = usePathname(); - console.log(pathname) + // console.log(pathname) + const url = pathname.split('satuan-kerja/')[1]; + return (
- {pathname} + {url}
) } diff --git a/components/Landing Page/Footer.tsx b/components/Landing Page/Footer.tsx index 2fb7c2e..31dfcc9 100644 --- a/components/Landing Page/Footer.tsx +++ b/components/Landing Page/Footer.tsx @@ -13,9 +13,7 @@ export default function Footer() {
- -

Berita Terkini

- +

Berita Terkini

Info Komnas Anak

Info Komnas Perempuan

Kontak

diff --git a/components/Landing Page/RegionalNews.tsx b/components/Landing Page/RegionalNews.tsx index 6cad024..f344c63 100644 --- a/components/Landing Page/RegionalNews.tsx +++ b/components/Landing Page/RegionalNews.tsx @@ -1,31 +1,253 @@ +'use client' import { Button } from '@nextui-org/button'; -import { Image } from '@nextui-org/react'; +import { Image, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, ModalProps, useDisclosure } from '@nextui-org/react'; import { ChevronLeftWhite, ChevronRightWhite } from '../icons'; -import { useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; +import Link from 'next/link'; export default function RegionalNews() { const [limitedData, setLimitedData] = useState([]); + const { isOpen, onOpen, onOpenChange } = useDisclosure(); + const [scrollBehavior, setScrollBehavior] = React.useState("outside"); + const [modalPlacement, setModalPlacement] = React.useState("auto"); - const list = [ + const listPolda = [ { + id: 1, img: "/temp/poldametro.svg", - title: "Polda Metro Jaya" + title: "Polda Metro Jaya", + path: '/news/polda-metro-jaya' }, { + id: 2, img: "/temp/polda-sumut.svg", - title: "Polda Sumatra Utara" + title: "Polda Sumatra Utara", + path: '/news/polda-sumatra-utara' }, { + id: 3, img: "/temp/polda-banten.svg", - title: "Polda Banten" + title: "Polda Banten", + path: '/news/polda-banten' }, { + id: 4, img: "/temp/polda-jateng.svg", - title: "Polda Jawa Tengah" + title: "Polda Jawa Tengah", + path: '/news/polda-jateng' }, { + id: 5, img: "/temp/polda-jatim.svg", - title: "Polda Jawa Timur" + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + ]; + + const listPoldaAll = [ + { + id: 1, + img: "/temp/poldametro.svg", + title: "Polda Metro Jaya", + path: '/news/polda-metro-jaya' + }, + { + id: 2, + img: "/temp/polda-sumut.svg", + title: "Polda Sumatra Utara", + path: '/news/polda-sumatra-utara' + }, + { + id: 3, + img: "/temp/polda-banten.svg", + title: "Polda Banten", + path: '/news/polda-banten' + }, + { + id: 4, + img: "/temp/polda-jateng.svg", + title: "Polda Jawa Tengah", + path: '/news/polda-jateng' + }, + { + id: 5, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 6, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 7, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 8, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 9, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 10, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 11, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 12, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 13, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 14, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 15, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 16, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 17, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 18, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 19, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 20, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 21, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 22, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 23, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 24, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 25, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 26, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 27, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 28, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 29, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 30, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 31, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 32, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 33, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' + }, + { + id: 34, + img: "/temp/polda-jatim.svg", + title: "Polda Jawa Timur", + path: 'news/polda-jatim' }, ]; @@ -48,31 +270,72 @@ export default function RegionalNews() { // }, [list]); return ( -
+
Berita Wilayah
- {list.map((item: any, index: any) => ( -
- -

{item.title}

-
+ {listPolda.map((item: any, index: any) => ( + +
+ +

{item.title}

+
+ ))}
+ + + {(onClose) => ( + <> + Berita Wilayah + + {listPoldaAll.map((item: any, index: any) => ( + +
+ +

{item.title}

+
+ + ))} +
+ + + + + )} +
+
) diff --git a/components/Landing Page/SidebarNav.tsx b/components/Landing Page/SidebarNav.tsx index f4c1462..1bc8d60 100644 --- a/components/Landing Page/SidebarNav.tsx +++ b/components/Landing Page/SidebarNav.tsx @@ -1,6 +1,8 @@ -import { ScrollShadow } from '@nextui-org/react' +import { LinkIcon, ScrollShadow } from '@nextui-org/react' import React from 'react' import { EyeIcon } from '../icons' +import Image from 'next/image' +import Link from 'next/link' export default function SidebarNav() { return ( @@ -35,21 +37,36 @@ export default function SidebarNav() {
Publikasi
- publikasi - publikasi - publikasi - publikasi - publikasi - publikasi - publikasi + publikasi + publikasi + + publikasi + + + publikasi + + publikasi + publikasi + + publikasi + +
Channel Humas Polri
- humas-polri - humas-polri - humas-polri - humas-polri + + humas-polri + + + humas-polri + + + humas-polri + + + humas-polri +
@@ -57,33 +74,33 @@ export default function SidebarNav() {
-

Berita BPS

+

Berita BPS

Berita terbaru dari Badan Pusat Statistika Indonesia

-

Pengumuman BPS

+

Pengumuman BPS

Pengumuman terbaru dari Badan Pusat Statistika Indonesia

-

Berita KPU

+

Berita KPU

Berita terbaru dari Komisi Pemilihan Umum Indonesia

-

Pengumuman KPU

+

Pengumuman KPU

Pengumuman terbaru dari Komisi Pemilihan Umum Indonesia

-

Berita BAWASLU

+

Berita BAWASLU

Berita terbaru dari Badan Pengawas Pemilihan Umum Republik Indonesia

-

Pengumuman BAWASLU

+

Pengumuman BAWASLU

Pengumuman terbaru dari Badan Pusat Statistika Indonesia

-

Info KPAI

+

Info KPAI

Informasi dan Berita terbaru dari Komisi Perlindungan Anak Indonesia

-

INFO KOMNAS PEREMPUAN

+

INFO KOMNAS PEREMPUAN

Info dan Berita terbaru dari Komnas Perempuan Indonesia

diff --git a/components/detail/Contact.tsx b/components/detail/Contact.tsx index c6035cb..0f2e2f8 100644 --- a/components/detail/Contact.tsx +++ b/components/detail/Contact.tsx @@ -8,6 +8,7 @@ import { useForm } from 'react-hook-form'; import { z } from 'zod'; import { Calender, CustomerService, EyeFilledIcon, EyeSlashFilledIcon, Hotline, Location, Mail } from '../icons'; import Datepicker from "react-tailwindcss-datepicker"; +import Image from "next/image"; const schema = z.object({ name: z.string().min(3).max(50), @@ -95,8 +96,8 @@ const Contact: React.FC = () => {
Hari Senin - Jumat | 08:00 - 15:00 WIB
-
- maps +
+ {/* maps */}
@@ -201,12 +202,12 @@ const Contact: React.FC = () => { variant='underlined' />
-
- +
+
- ar + ar
diff --git a/components/detail/ListNews.tsx b/components/detail/ListNews.tsx index 596db16..062ef4a 100644 --- a/components/detail/ListNews.tsx +++ b/components/detail/ListNews.tsx @@ -2,6 +2,7 @@ import { BreadcrumbItem, Breadcrumbs, Button, Input, Select, SelectItem, SelectSection, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow } from "@nextui-org/react"; import PPIDSidebar from '../Portal PPID/PPIDSidebar'; import { EyeFilledIcon, SearchIcon } from '../icons'; +import Link from "next/link"; export default function ListNews() { @@ -100,20 +101,22 @@ export default function ListNews() {
{listNews.map((news) => ( -
-
- -
-
-
{news.title}
-
-
{news.date}
- {/*
jam
-
creator
*/} + +
+
+ +
+
+
{news.title}
+
+
{news.date}
+ {/*
jam
+
creator
*/} +
+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis est quas soluta deserunt ullam. Sapiente facilis modi vitae. Aspernatur excepturi quo amet omnis laudantium inventore praesentium illum hic reiciendis error.
-
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis est quas soluta deserunt ullam. Sapiente facilis modi vitae. Aspernatur excepturi quo amet omnis laudantium inventore praesentium illum hic reiciendis error.
-
+ ))}
diff --git a/components/layout/HumasAdminLayout.tsx b/components/layout/HumasAdminLayout.tsx index 16dc476..5e38991 100644 --- a/components/layout/HumasAdminLayout.tsx +++ b/components/layout/HumasAdminLayout.tsx @@ -11,12 +11,12 @@ interface Props { export default function HumasAdminLayout({ children, pageTitle }: Props) { return ( - //
-
+
{children}
+ ) } diff --git a/components/navbar/HumasNavbarWrapper.tsx b/components/navbar/HumasNavbarWrapper.tsx index 436ca8e..3baf7ea 100644 --- a/components/navbar/HumasNavbarWrapper.tsx +++ b/components/navbar/HumasNavbarWrapper.tsx @@ -1,8 +1,9 @@ 'use client' -import { Navbar, NavbarContent } from '@nextui-org/navbar'; -import { Avatar, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger } from '@nextui-org/react'; +import { Navbar, NavbarBrand, NavbarContent, NavbarItem } from '@nextui-org/navbar'; +import { Avatar, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, ScrollShadow } from '@nextui-org/react'; import React from 'react' import { ThemeSwitch } from '../theme-switch'; +import Link from 'next/link'; interface Props { children: React.ReactNode; @@ -10,13 +11,19 @@ interface Props { } export default function HumasNavbarWrapper({ children }: Props) { return ( -
- + - + wrapper: "p-2" + }} + > + + + Judul + + + zoey@example.com

My Settings + Help & Feedback Log Out - + + +
- {children} +
+ {children} +
) diff --git a/components/navbar/HumasSidebarWrapper.tsx b/components/navbar/HumasSidebarWrapper.tsx index 4917cb1..6bddb65 100644 --- a/components/navbar/HumasSidebarWrapper.tsx +++ b/components/navbar/HumasSidebarWrapper.tsx @@ -1,9 +1,101 @@ import React from 'react' +import { RxHamburgerMenu } from "react-icons/rx"; +import { + MdDashboard, + MdSupervisedUserCircle, + MdShoppingBag, + MdAttachMoney, + MdWork, + MdAnalytics, + MdPeople, + MdOutlineSettings, + MdHelpCenter +} from 'react-icons/md' +import MenuLinks from '../page/MenuLink'; +import Link from 'next/link'; + +const menuItems = [ + { + title: "Pages", + list: [ + { + title: "Dashboard", + path: '/admin/dashboard', + icon: + }, + { + title: "Users", + path: '/dashboard/users', + icon: + }, + { + title: "Producst", + path: '/dashboard/producst', + icon: + }, + { + title: "Transactions", + path: '/dashboard/transactions', + icon: + }, + ] + }, + { + title: "Analytics", + list: [ + { + title: "Revenue", + path: '/dashboard/revenue', + icon: + }, + { + title: "Reports", + path: '/dashboard/reports', + icon: + }, + { + title: "Teams", + path: '/dashboard/teams', + icon: + }, + ] + }, + { + title: "User", + list: [ + { + title: "Settings", + path: '/dashboard/settings', + icon: + }, + { + title: "Help", + path: '/dashboard/help', + icon: + }, + ] + }, +] export default function HumasSidebarWrapper() { return ( - + ) } diff --git a/components/navbar/NavbarHumas.tsx b/components/navbar/NavbarHumas.tsx index 67fbe04..ed5d01c 100644 --- a/components/navbar/NavbarHumas.tsx +++ b/components/navbar/NavbarHumas.tsx @@ -55,6 +55,38 @@ export default function NavbarHumas() {
Beranda
+
+ + + + + + New file + Copy link + Edit file + + Delete file + + + +
diff --git a/components/navbar/NavbarSatker.tsx b/components/navbar/NavbarSatker.tsx index 8a69273..31a7bba 100644 --- a/components/navbar/NavbarSatker.tsx +++ b/components/navbar/NavbarSatker.tsx @@ -6,18 +6,24 @@ import { ThemeSwitch } from '../theme-switch' import { usePathname } from 'next/navigation' export default function NavbarSatker() { - const pathname = usePathname(); - console.log(pathname) + const pathname = usePathname() + const newPathname = pathname.split('/')[3] + return (
-
- - logo +
+ +
+ logo +
+ +
+
-
+
@@ -30,7 +36,7 @@ export default function NavbarSatker() {
- + Beranda @@ -133,14 +139,14 @@ export default function NavbarSatker() { } > - + Sejarah PPID Polri } > - + Profile Singkat PPID diff --git a/components/page/DetailNews.tsx b/components/page/DetailNews.tsx index fdf631d..43edd35 100644 --- a/components/page/DetailNews.tsx +++ b/components/page/DetailNews.tsx @@ -20,10 +20,10 @@ export default function DetailNews() {

|

1000

-
medsos
-
-
-
+
medsos
+
medsos
+
medsos
+
medsos
@@ -39,10 +39,10 @@ export default function DetailNews() { Berdasarkan hasil perhitungan kerugian keuangan negara yang dilakukan BPK RI adalah sebesar Rp 13.213.174.883.

-
medsos
-
-
-
+
medsos
+
medsos
+
medsos
+
medsos
{/*
diff --git a/components/page/MenuLink.tsx b/components/page/MenuLink.tsx new file mode 100644 index 0000000..bb3f7d1 --- /dev/null +++ b/components/page/MenuLink.tsx @@ -0,0 +1,30 @@ +'use client' +import React from 'react' +import styles from './menuLinks.module.css' +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; + +interface MenuLinksProps { + item: { + icon: JSX.Element; + title: string; + path: any; + }; +} + + +const MenuLinks: React.FC = ({ item }) => { + + const pathname = usePathname() + + console.log(pathname); + + return ( + + {item.icon} + {item.title} + + ) +} + +export default MenuLinks \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a5d0926..24cd358 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "react-datepicker": "^6.1.0", "react-dom": "18.2.0", "react-hook-form": "^7.50.1", + "react-icons": "^5.0.1", "react-tailwindcss-datepicker": "^1.6.6", "react-tweet": "^3.2.0", "swiper": "^11.0.6", @@ -5853,6 +5854,14 @@ "react": "^16.8.0 || ^17 || ^18" } }, + "node_modules/react-icons": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz", + "integrity": "sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", diff --git a/package.json b/package.json index bd22bbd..c024a50 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "react-datepicker": "^6.1.0", "react-dom": "18.2.0", "react-hook-form": "^7.50.1", + "react-icons": "^5.0.1", "react-tailwindcss-datepicker": "^1.6.6", "react-tweet": "^3.2.0", "swiper": "^11.0.6", diff --git a/public/assets/satker/siber - Copy.svg b/public/assets/satker/siber - Copy.svg new file mode 100644 index 0000000..903f9ff --- /dev/null +++ b/public/assets/satker/siber - Copy.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/styles/globals.css b/styles/globals.css index 22c8f20..2d72638 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -2,56 +2,21 @@ @tailwind components; @tailwind utilities; - -.swiper { - width: 100%; - height: 100%; - } - - .swiper-slide { - text-align: center; - font-size: 18px; - background: #fff; - - /* Center slide text vertically */ - display: flex; - justify-content: center; - align-items: center; - } - - .swiper-slide img { - display: block; - width: 100%; - height: 100%; - object-fit: cover; - } - - .autoplay-progress { - position: absolute; - right: 16px; - bottom: 16px; - z-index: 10; - width: 48px; - height: 48px; - display: flex; - align-items: center; - justify-content: center; - font-weight: bold; - color: var(--swiper-theme-color); - } - - .autoplay-progress svg { - --progress: 0; - position: absolute; - left: 0; - top: 0px; - z-index: 10; - width: 100%; - height: 100%; - stroke-width: 4px; - stroke: var(--swiper-theme-color); - fill: none; - stroke-dashoffset: calc(125.6 * (1 - var(--progress))); - stroke-dasharray: 125.6; - transform: rotate(-90deg); - } \ No newline at end of file + +/* +*{ + border:1px solid green; +} */ + +.custom-scrollbar::-webkit-scrollbar { + width: 12px; +} + +.custom-scrollbar::-webkit-scrollbar-track { + background: transparent; +} + +.custom-scrollbar::-webkit-scrollbar-thumb { + background: transparent; + border-radius: 5px; +} \ No newline at end of file