diff --git a/app/campaign/detail/[id]/page.tsx b/app/campaign/detail/[id]/page.tsx
new file mode 100644
index 0000000..1b28c32
--- /dev/null
+++ b/app/campaign/detail/[id]/page.tsx
@@ -0,0 +1,12 @@
+import DetailCampaign from '@/components/page/detail-campaign'
+import SimilarNews from '@/components/page/similar-news'
+import React from 'react'
+
+export default function DetailPage() {
+ return (
+
-
-
Kampanye Daerah
-
-
-
-
+
+
Kampanye Daerah
+
+
+ {dummyData.map((data) => (
+
+
+
+
+
+
{data.date}
+
{data.title}
+
+
Lihat Selengkapnya
+
+
+
+
+ ))}
+
+
+
+ {/*
+
+
-
- 03/01/2024 14:00 WIB
- MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
- Lihat Selengkapnya
-
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
- {/*
-
+
+
-
- Daily Mix
- 12 Tracks
- Frontend Radio
-
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
-
-
+
+
-
- Daily Mix
- 12 Tracks
- Frontend Radio
-
-
-
-
-
-
-
- Daily Mix
- 12 Tracks
- Frontend Radio
-
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
*/}
-
-
-
- Lihat Selengkapnya
-
-
+
+
+
+ Lihat Selengkapnya
+
+
+ {/*
+
Single Item
+
+
+
1
+
+
+
2
+
+
+
3
+
+
+
4
+
+
+
5
+
+
+
6
+
+
+
*/}
+ {/*
+
+
*/}
)
}
diff --git a/components/landing/headline.tsx b/components/landing/headline.tsx
index 62d7739..0f1fc48 100644
--- a/components/landing/headline.tsx
+++ b/components/landing/headline.tsx
@@ -1,104 +1,392 @@
'use client'
import { Card, CardBody, Tab, Tabs } from '@nextui-org/react'
import Image from 'next/image'
+import Link from 'next/link';
import React from 'react'
export default function Headline() {
+
+ const headlineData = [
+ {
+ id: 1,
+ date: '03/02/2024 15:45 WIB',
+ title: 'MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03',
+ imageUrl: '/headline1.png',
+ link: '/link2',
+ },
+ {
+ id: 2,
+ date: '03/02/2024 15:45 WIB',
+ title: 'MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03',
+ imageUrl: '/headline2.png',
+ link: '/link2',
+ },
+ {
+ id: 3,
+ date: '03/02/2024 15:45 WIB',
+ title: 'MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03',
+ imageUrl: '/headline3.png',
+ link: '/link2',
+ },
+ {
+ id: 4,
+ date: '03/02/2024 15:45 WIB',
+ title: 'MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03',
+ imageUrl: '/headline4.png',
+ link: '/link2',
+ },
+ {
+ id: 5,
+ date: '03/02/2024 15:45 WIB',
+ title: 'MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03',
+ imageUrl: '/headline5.png',
+ link: '/link2',
+ },
+
+ ];
+
return (
-
Headline News
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
-
-
-
-
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
-
-
-
-
- Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
-
-
+
+
Headline News
+
+
+
+
+
+ {headlineData.map((data) => (
+
+
+
+
+
+
{data.date}
+
{data.title}
+
+
Lihat Selengkapnya
+
+
+
+ ))}
+ {/*
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+ */}
+ {/*
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+ */}
+
+
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
-
+
)
}
diff --git a/components/landing/visi-misi.tsx b/components/landing/visi-misi.tsx
index 69504f9..12d272a 100644
--- a/components/landing/visi-misi.tsx
+++ b/components/landing/visi-misi.tsx
@@ -1,3 +1,7 @@
+import "slick-carousel/slick/slick.css";
+import "slick-carousel/slick/slick-theme.css";
+
+import Slider from "react-slick";
import { Card, CardBody } from "@nextui-org/react";
import Image from "next/image";
@@ -48,43 +52,6 @@ export default function VisiMisi() {
/>
- {/*
-
-
-
-
-
-
*/}
- {/*
-
-
-
-
-
-
-
-
-
-
-
-
-
*/}
diff --git a/components/page/detail-campaign.tsx b/components/page/detail-campaign.tsx
new file mode 100644
index 0000000..a9c6903
--- /dev/null
+++ b/components/page/detail-campaign.tsx
@@ -0,0 +1,38 @@
+import { Button, Image } from '@nextui-org/react'
+import React from 'react'
+
+export default function DetailCampaign() {
+ return (
+
+
+
+
+
+
+
03/01/2024 13:10 WIB
+
Anies Baswedan Kampanye di Sumbar: InsyaAllah Masyarakat Minang di Barisan Perubahan.
+
Calon Presiden (Capres) nomor urut satu Anies Baswedan mengawali kampanye di tahun 2024 dengan berkunjung ke Sumatera Barat. Kedatangan Anies disambut meriah di Bandara Internasional Minangkabau, Rabu (3/1/2024). Anies mengaku kagum dengan antusiasme masyarakat Minang untuk menyambut perubahan. Anies meyakini masyarakat Minang akan mendukungnya dalam Pilpres 2024 mendatang.
+ "Senang sekali bisa kembali ke Sumatera Barat, dan pagi ini antusiasme masyarakat tinggi sekali. Insya Allah seperti juga sebelum-sebelumnya, masyarakat Minang ada di barisan perubahan yang selalu memilih untuk Indonesia lebih adil bagi semuanya," ujar Anies di Bandara Internasional Minangkabau, Rabu (3/1/2024).
+
+ "Kami makin optimistis bahwa di Sumatera Barat masyarakat akan terus makin kokoh untuk mengusung perubahan di Pilpres tahun ini," Anies menambahkan.
+ Anies menyebut masyarakat Minang punya tradisi panjang memperjuangkan gagasan perubahan untuk Indonesia yang lebih baik. Dia yakin masyarakat Minang mendukungnya karena memiliki visi misi merubah Indonesia ke arah yang lebih baik.
+ "Jadi saya tidak menterjemahkan sebagai dukungan kepada satu orang tapi dukungan kepada satu gagasan, yaitu gagasan perubahan," kata dia.
+
+ Sementara itu, Ketua Tim Kampanye Daerah (TKD) Sumatera Barat, Rahmat Saleh mengatakan upaya pemenangan Anies di Sumbar tak lepas dari peran penting partai pendukung dan relawan setempat.
+ "Kita mempunyai struktur yang baik, tiga partai koalisi (Nasdem, PKB, PKS) plus dua partai koalisi tambahan yaitu Partai Ummat dan Partai Masyumi yang kuat dan solid," kata Saleh.
+
+
+
+
+ Simpan
+ Download
+ Share
+
+
+
+ )
+}
diff --git a/components/page/similar-news.tsx b/components/page/similar-news.tsx
new file mode 100644
index 0000000..39e5284
--- /dev/null
+++ b/components/page/similar-news.tsx
@@ -0,0 +1,62 @@
+'use client'
+import { Card, CardBody } from '@nextui-org/react'
+import Image from 'next/image'
+import React from 'react'
+
+export default function SimilarNews() {
+ return (
+
+
Berita Serupa
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+
+
+
+
03/01/2024 14:30 WIB
+
MNC Penyelenggara Debat Capres, Timnas AMIN: Kita Tahu Ownernya Pendukung 03
+
Lihat Selengkanya
+
+
+
+
+ )
+}
diff --git a/config/site.ts b/config/site.ts
index 7c22fa3..db1fa3b 100644
--- a/config/site.ts
+++ b/config/site.ts
@@ -10,11 +10,11 @@ export const siteConfig = {
},
{
label: "Lapor Kampanye",
- href: "/docs",
+ href: "/report",
},
{
label: "Update TPS",
- href: "/pricing",
+ href: "/docs",
},
// {
// label: "Blog",
diff --git a/package-lock.json b/package-lock.json
index d3ce711..c67e2f7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,9 +22,12 @@
"@react-aria/ssr": "^3.8.0",
"@react-aria/visually-hidden": "^3.8.6",
"@types/node": "20.5.7",
- "@types/react": "18.2.21",
+ "@types/react": "^18.2.21",
+ "@types/react-dates": "^21.8.6",
"@types/react-dom": "18.2.7",
"@types/react-slick": "^0.23.13",
+ "@types/react-slider": "^1.3.6",
+ "@types/slick-carousel": "^1.6.40",
"autoprefixer": "10.4.16",
"clsx": "^2.0.0",
"eslint": "8.48.0",
@@ -36,11 +39,12 @@
"postcss": "8.4.31",
"react": "18.2.0",
"react-dom": "18.2.0",
+ "react-dropzone": "^14.2.3",
"react-slick": "^0.29.0",
"slick-carousel": "^1.8.1",
"tailwind-variants": "^0.1.18",
"tailwindcss": "3.3.5",
- "typescript": "5.0.4"
+ "typescript": "^5.0.4"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -2737,6 +2741,14 @@
"tslib": "^2.4.0"
}
},
+ "node_modules/@types/jquery": {
+ "version": "3.5.29",
+ "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz",
+ "integrity": "sha512-oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg==",
+ "dependencies": {
+ "@types/sizzle": "*"
+ }
+ },
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
@@ -2762,6 +2774,16 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/@types/react-dates": {
+ "version": "21.8.6",
+ "resolved": "https://registry.npmjs.org/@types/react-dates/-/react-dates-21.8.6.tgz",
+ "integrity": "sha512-fDF322SOXAxstapv0/oruiPx9kY4DiiaEHYAVvXdPfQhi/hdaONsA9dFw5JBNPAWz7Niuwk+UUhxPU98h70TjA==",
+ "dependencies": {
+ "@types/react": "*",
+ "@types/react-outside-click-handler": "*",
+ "moment": "^2.26.0"
+ }
+ },
"node_modules/@types/react-dom": {
"version": "18.2.7",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz",
@@ -2770,6 +2792,14 @@
"@types/react": "*"
}
},
+ "node_modules/@types/react-outside-click-handler": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@types/react-outside-click-handler/-/react-outside-click-handler-1.3.3.tgz",
+ "integrity": "sha512-fF7x4dHf/IPIne8kkt3rlCGuWFrWkFJmzQm4JkxSBzXJIM9WDLob++VnmGpE3ToVWrW3Xw9D5TxcUWrwqe04Gg==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/react-slick": {
"version": "0.23.13",
"resolved": "https://registry.npmjs.org/@types/react-slick/-/react-slick-0.23.13.tgz",
@@ -2778,11 +2808,32 @@
"@types/react": "*"
}
},
+ "node_modules/@types/react-slider": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/@types/react-slider/-/react-slider-1.3.6.tgz",
+ "integrity": "sha512-RS8XN5O159YQ6tu3tGZIQz1/9StMLTg/FCIPxwqh2gwVixJnlfIodtVx+fpXVMZHe7A58lAX1Q4XTgAGOQaCQg==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/scheduler": {
"version": "0.16.6",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz",
"integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA=="
},
+ "node_modules/@types/sizzle": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz",
+ "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg=="
+ },
+ "node_modules/@types/slick-carousel": {
+ "version": "1.6.40",
+ "resolved": "https://registry.npmjs.org/@types/slick-carousel/-/slick-carousel-1.6.40.tgz",
+ "integrity": "sha512-r56PBGVLYHmZvFSV+UC4dYbnpEu3LGzgJiSSixBx5ME+IUhsyho1XP7gKSG0R9tiYSx54ftq/g+miLQTbA10Dw==",
+ "dependencies": {
+ "@types/jquery": "*"
+ }
+ },
"node_modules/@typescript-eslint/parser": {
"version": "6.10.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz",
@@ -3106,6 +3157,14 @@
"has-symbols": "^1.0.3"
}
},
+ "node_modules/attr-accept": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz",
+ "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/autoprefixer": {
"version": "10.4.16",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
@@ -4160,6 +4219,17 @@
"node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/file-selector": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz",
+ "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -5181,6 +5251,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -5743,6 +5821,22 @@
"react": "^18.2.0"
}
},
+ "node_modules/react-dropzone": {
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz",
+ "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==",
+ "dependencies": {
+ "attr-accept": "^2.2.2",
+ "file-selector": "^0.6.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">= 10.13"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8 || 18.0.0"
+ }
+ },
"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 f0346ea..2bb0b40 100644
--- a/package.json
+++ b/package.json
@@ -23,9 +23,12 @@
"@react-aria/ssr": "^3.8.0",
"@react-aria/visually-hidden": "^3.8.6",
"@types/node": "20.5.7",
- "@types/react": "18.2.21",
+ "@types/react": "^18.2.21",
+ "@types/react-dates": "^21.8.6",
"@types/react-dom": "18.2.7",
"@types/react-slick": "^0.23.13",
+ "@types/react-slider": "^1.3.6",
+ "@types/slick-carousel": "^1.6.40",
"autoprefixer": "10.4.16",
"clsx": "^2.0.0",
"eslint": "8.48.0",
@@ -37,10 +40,11 @@
"postcss": "8.4.31",
"react": "18.2.0",
"react-dom": "18.2.0",
+ "react-dropzone": "^14.2.3",
"react-slick": "^0.29.0",
"slick-carousel": "^1.8.1",
"tailwind-variants": "^0.1.18",
"tailwindcss": "3.3.5",
- "typescript": "5.0.4"
+ "typescript": "^5.0.4"
}
}
diff --git a/public/detil1.png b/public/detil1.png
new file mode 100644
index 0000000..6167e27
Binary files /dev/null and b/public/detil1.png differ