diff --git a/app/layout.tsx b/app/layout.tsx index d2581cc..8a018d7 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -4,44 +4,55 @@ import "@/styles/globals.css"; import clsx from "clsx"; import { Metadata } from "next"; import { Providers } from "./providers"; +import LoadScript from "@/utils/global"; export const metadata: Metadata = { - title: { - default: siteConfig.name, - template: `%s - ${siteConfig.name}`, - }, - description: siteConfig.description, - themeColor: [ - { media: "(prefers-color-scheme: light)", color: "white" }, - { media: "(prefers-color-scheme: dark)", color: "black" }, - ], - icons: { - icon: "/logohumas.ico", - shortcut: "/favicon-16x16.png", - apple: "/apple-touch-icon.png", - }, + title: { + default: siteConfig.name, + template: `%s - ${siteConfig.name}`, + }, + description: siteConfig.description, + themeColor: [ + { media: "(prefers-color-scheme: light)", color: "white" }, + { media: "(prefers-color-scheme: dark)", color: "black" }, + ], + icons: { + icon: "/logohumas.ico", + shortcut: "/favicon-16x16.png", + apple: "/apple-touch-icon.png", + }, }; export default function RootLayout({ - children, + children, }: { - children: React.ReactNode; + children: React.ReactNode; }) { - return ( - - - - -
- {children} -
-
- - - ); + return ( + + + + + + + + +
{children}
+
+ + + ); } diff --git a/components/landing/ENewsPolri.tsx b/components/landing/ENewsPolri.tsx index fdc3a37..579a93a 100644 --- a/components/landing/ENewsPolri.tsx +++ b/components/landing/ENewsPolri.tsx @@ -1,62 +1,93 @@ -'use client' -import { Card, CardFooter } from '@nextui-org/react'; -import Image from 'next/image'; -import { useState } from 'react'; -import { ChevronLeftWhite, ChevronRightIcon } from '../icons'; -import Link from 'next/link'; +"use client"; +import { Card, CardFooter } from "@nextui-org/react"; +import Image from "next/image"; +import { useEffect, useState } from "react"; +import { ChevronLeftWhite, ChevronRightIcon, EyeIcon } from "../icons"; +import Link from "next/link"; +import { getListArticle } from "@/service/article"; +import { convertDateFormat } from "@/utils/global"; +import { Autoplay, Pagination, Navigation } from "swiper/modules"; +import { Swiper, SwiperSlide } from "swiper/react"; export default function ENewsPolri() { - const [limitedData, setLimitedData] = useState([]); + const [article, setArticle] = useState([]); - const eNews = [ - { - id: 1, - title: "Tribrata News Edisi 32 /IV-VI/ENews Polri/2024", - img: "/headernews.png", - }, - { - id: 2, - title: "Tribrata News Edisi 32 /IV-VI/ 2024", - img: "/headernews.png", - }, - { - id: 3, - title: "Tribrata News Edisi 32 /IV-VI/ 2024", - img: "/headernews.png", - }, - ]; + useEffect(() => { + async function getArticle() { + const response = await getListArticle(); + console.log("res", response?.data?.data); + setArticle(response?.data?.data); + } + getArticle(); + }, []); - return ( -
-

E-Majalah Polri

-
- -
- {eNews.map((data: any) => ( -
- - - e-news - -

{data.title}

-
-
- -
- ))} -
- -
- Lihat Semua + return ( +
+

+ E-Majalah Polri +

+ +
+
+ + {article?.map((newsItem: any) => ( + + + headernews + +
+ +

+ {newsItem.title} +

+ +

+ {convertDateFormat(newsItem.createdAt)} WIB +

+

+ + {newsItem.viewCount === null ? 0 : newsItem.viewCount} +

+
+
+
+
+ ))} +
- ) +
+ + Lihat Semua + +
+ ); } diff --git a/components/landing/HeaderNews.tsx b/components/landing/HeaderNews.tsx index 646502d..ae1306c 100644 --- a/components/landing/HeaderNews.tsx +++ b/components/landing/HeaderNews.tsx @@ -10,201 +10,105 @@ import Link from "next/link"; import GPRKominfo from "../ui/social-media/gpr-kominfo"; import { useEffect, useState } from "react"; import { getListArticle } from "@/service/article"; +import { convertDateFormat } from "@/utils/global"; export default function HeaderNews() { - const [article, setArticle] = useState(); + const [article, setArticle] = useState([]); useEffect(() => { async function getArticle() { const response = await getListArticle(); console.log("res", response?.data?.data); + setArticle(response?.data?.data); } getArticle(); }, []); - const newsData = [ - { - id: 1, - title: - "Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi Warganya yang Masih Beraktifitas Pada Malam Hari", - date: "21-07-2023 13:50", - views: 82, - imageUrl: "/headernews.png", - }, - { - id: 2, - title: - "Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi Warganya yang Masih Beraktifitas Pada Malam Hari", - date: "21-07-2023 13:50", - views: 82, - imageUrl: "/headernews.png", - }, - { - id: 3, - title: - "Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi Warganya yang Masih Beraktifitas Pada Malam Hari", - date: "21-07-2023 13:50", - views: 82, - imageUrl: "/headernews.png", - }, - { - id: 4, - title: - "Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi Warganya yang Masih Beraktifitas Pada Malam Hari", - date: "21-07-2023 13:50", - views: 82, - imageUrl: "/headernews.png", - }, - { - id: 5, - title: - "Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi Warganya yang Masih Beraktifitas Pada Malam Hari", - date: "21-07-2023 13:50", - views: 82, - imageUrl: "/headernews.png", - }, - { - id: 6, - title: - "Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi Warganya yang Masih Beraktifitas Pada Malam Hari", - date: "21-07-2023 13:50", - views: 82, - imageUrl: "/headernews.png", - }, - ]; return ( -
-
-

Berita Terkini

- -
-

- Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi - Warganya yang Masih Beraktifitas Pada Malam Hari -

-

21-07-2023 13:50

-

- - 82 -

-
-
-

- Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi - Warganya yang Masih Beraktifitas Pada Malam Hari -

-

21-07-2023 13:50

-

- - 82 -

-
-
-

- Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi - Warganya yang Masih Beraktifitas Pada Malam Hari -

-

21-07-2023 13:50

-

- - 82 -

-
-
-

- Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi - Warganya yang Masih Beraktifitas Pada Malam Hari -

-

21-07-2023 13:50

-

- - 82 -

-
-
-
- - - -
-
-
-
- - {newsData.map((newsItem) => ( - - - headernews - -
- -

- {newsItem.title} -

- -

- {newsItem.date} -

-

- - {newsItem.views} -

-
-
-
-
+
+
+
+

Berita Terkini

+ + {article.map((data: any) => ( +
+

{data.title}

+

+ {" "} + {convertDateFormat(data.createdAt)} WIB +

+

+ + {data.viewCount === null ? 0 : data.viewCount} +

+
))} - +
+
+ + + +
- {/* +
+
+ + {article?.map((newsItem: any) => ( + + headernews -
-

Pelihara Kondusifitas Kamtibmas, Personel Polsek Sayan Sambangi Warganya yang Masih Beraktifitas Pada Malam Hari

-

21-07-2023 13:50

-

82

-
+
+ +

+ {newsItem.title} +

+ +

+ {convertDateFormat(newsItem.createdAt)} WIB +

+

+ + {newsItem.viewCount === null ? 0 : newsItem.viewCount} +

+
-
*/} -
-
- - {/*
+ + + ))} + +
+
+
+ + {/*
gpr
@@ -232,6 +136,7 @@ export default function HeaderNews() {
gpr
*/} +
); diff --git a/components/landing/MediaSocial.tsx b/components/landing/MediaSocial.tsx index 56ee0e0..cacc421 100644 --- a/components/landing/MediaSocial.tsx +++ b/components/landing/MediaSocial.tsx @@ -198,45 +198,7 @@ export default function MediaSocial() { Lihat Semua
-
- {dummyData.map((data: any) => ( -
-
-
-
- logo -
-
-

- {data.division} -

-
-
-
-
- - Share -
-
-
-
- {data.description} - -
- Lihat Selengkapnya -
-
-
-
- header -
-
-
- ))} -
+
diff --git a/components/landing/MedolUpdate.tsx b/components/landing/MedolUpdate.tsx index 206fc66..3f55551 100644 --- a/components/landing/MedolUpdate.tsx +++ b/components/landing/MedolUpdate.tsx @@ -13,64 +13,58 @@ import "swiper/css"; import "swiper/css/navigation"; import "swiper/css/pagination"; import { Navigation, Pagination } from "swiper/modules"; -import { top5NewsMediahub } from "@/service/medol-news-update"; +import { topNewsMediahub } from "@/service/medol-news-update"; import Link from "next/link"; +import { + getImageInp, + topNewsInp, + topNewsTbn, +} from "@/service/third-party-service"; +import { convertDateFormatNoTime } from "@/utils/global"; +import PolriTvWidget from "../ui/social-media/polri-tv"; export default function MedolUpdate() { - const [mediahubUpdate, setMediahubUpdate] = useState(); + const [selectedTab, setSelectedTab] = useState("mediahub"); + const [mediahubUpdate, setMediahubUpdate] = useState([]); + const [tbnUpdate, setTbnUpdate] = useState([]); + const [inpUpdate, setInpUpdate] = useState([]); useEffect(() => { - async function getMedihubUpdate() { - const res = await top5NewsMediahub(); - setMediahubUpdate(res.data?.data?.content); - // console.log("List Top5News", res.data.data?.content); + if (selectedTab === "mediahub" && mediahubUpdate.length < 1) { + getMedihubUpdate(); } + if (selectedTab === "tbnews" && tbnUpdate.length < 1) { + getTbnUpdate(); + } + if (selectedTab === "inp" && inpUpdate.length < 1) { + getInpUpdate(); + } + }, [selectedTab]); - getMedihubUpdate(); - }, []); + async function getMedihubUpdate() { + const res = await topNewsMediahub(); + setMediahubUpdate(res?.data?.data?.content); + } - const mediaHubUpdate = [ - { - id: 1, - image: "/temp/mediahub1.png", - title: - "Peringatan Nuzulul Quran, Kapolda Sulbar Harap Kegiatan Ini Tambah Wawasan dan", - createdDate: "12 Januari 2024", - time: "13:00 WITA", - }, - { - id: 2, - image: "/temp/mediahub2.png", - title: - "Kapolri Tinjau Langsung Kondisi Pelayanan Pemudik di Dermaga 1 Pelabuhan Merak", - createdDate: "14 Januari 2024", - time: "13:00 WIB", - }, - { - id: 3, - image: "/temp/mediahub2.png", - title: - "Kapolri Tinjau Langsung Kondisi Pelayanan Pemudik di Dermaga 1 Pelabuhan Merak", - createdDate: "14 Januari 2024", - time: "13:00 WIB", - }, - { - id: 4, - image: "/temp/mediahub2.png", - title: - "Kapolri Tinjau Langsung Kondisi Pelayanan Pemudik di Dermaga 1 Pelabuhan Merak", - createdDate: "14 Januari 2024", - time: "13:00 WIB", - }, - { - id: 5, - image: "/temp/mediahub2.png", - title: - "Kapolri Tinjau Langsung Kondisi Pelayanan Pemudik di Dermaga 1 Pelabuhan Merak", - createdDate: "14 Januari 2024", - time: "13:00 WIB", - }, - ]; + async function getTbnUpdate() { + const res = await topNewsTbn(); + setTbnUpdate(res?.data?.data); + } + async function getInpUpdate() { + const res = await topNewsInp(); + // setInpUpdate(res?.data); + getDataImage(res?.data); + } + + async function getDataImage(data: any) { + let temp = data; + for (let i = 0; i < data.length; i++) { + const res = await getImageInp(temp[i].id); + const data = res?.data[0]?.guid?.rendered; + temp[i].image = data; + } + setInpUpdate(temp); + } return (
@@ -86,6 +80,8 @@ export default function MedolUpdate() { aria-label="Options" color="warning" className="flex justify-center" + selectedKey={selectedTab} + onSelectionChange={setSelectedTab} > -

02-04-2024 09:31 WITA

+

+ {convertDateFormatNoTime(newsItem?.createdAt)} +

{newsItem?.title}
@@ -123,200 +121,134 @@ export default function MedolUpdate() { ))}
- + + +
-
- console.log("item pressed")} - className="w-[45%] bg-white text-black" - > - - tes - - -

02-04-2024 09:31 WITA

- - Peringatan Nuzulul Quran, Kapolda Sulbar Harap Kegiatan Ini - Tambah Wawasan dan - -
-
- console.log("item pressed")} - className="w-[45%] bg-white text-black" - > - - tes - - -

02-04-2024 09:16 WIB

- - Kapolri Tinjau Langsung Kondisi Pelayanan Pemudik di Dermaga - 1 Pelabuhan Merak - -
-
-
+ + {tbnUpdate?.map((newsItem: any) => ( + + + + + tes + + + {convertDateFormatNoTime(newsItem?.date)} + {newsItem?.title} + + + + + ))} +
- + + +
-
- console.log("item pressed")} - className="w-[45%] bg-white text-black" - > - - tes - - -

02-04-2024 09:31 WITA

- - Peringatan Nuzulul Quran, Kapolda Sulbar Harap Kegiatan Ini - Tambah Wawasan dan - -
-
- console.log("item pressed")} - className="w-[45%] bg-white text-black" - > - - tes - - -

02-04-2024 09:16 WIB

- - Kapolri Tinjau Langsung Kondisi Pelayanan Pemudik di Dermaga - 1 Pelabuhan Merak - -
-
-
+ + {inpUpdate?.map((newsItem: any) => ( + + + + + tes + + + {convertDateFormatNoTime(newsItem?.date)} + {newsItem?.title?.rendered} + + + + + ))} +
- + + +
-
- console.log("item pressed")} - className="w-[45%] bg-white text-black" - > - - tes - - -

02-04-2024 09:31 WITA

- - Peringatan Nuzulul Quran, Kapolda Sulbar Harap Kegiatan Ini - Tambah Wawasan dan - -
-
- console.log("item pressed")} - className="w-[45%] bg-white text-black" - > - - tes - - -

02-04-2024 09:16 WIB

- - Kapolri Tinjau Langsung Kondisi Pelayanan Pemudik di Dermaga - 1 Pelabuhan Merak - -
-
+
+
+ +
- + +
diff --git a/components/main/detail/new-detail.tsx b/components/main/detail/new-detail.tsx index 351d201..972f09f 100644 --- a/components/main/detail/new-detail.tsx +++ b/components/main/detail/new-detail.tsx @@ -1,24 +1,40 @@ -import React from "react"; +"use client"; +import React, { useEffect, useState } from "react"; import DetailNews from "../../page/detail-news"; import SidebarDetail from "../../page/sidebar-detail"; import RelatedNews from "../../page/related-news"; import Comment from "./comment"; +import { getArticleById } from "@/service/article"; +import { useParams } from "next/navigation"; export default function NewsDetailPage() { + const params = useParams(); + const id = params.id; + const [detailArticle, setDetailArticle] = useState(); + + useEffect(() => { + initFetch(); + }, []); + + const initFetch = async () => { + const res = await getArticleById(id); + const data = res?.data?.data; + setDetailArticle(data); + }; return ( <> -
+
- +
-
+
-
+
diff --git a/components/page/detail-news.tsx b/components/page/detail-news.tsx index 43edd35..9f1e9f7 100644 --- a/components/page/detail-news.tsx +++ b/components/page/detail-news.tsx @@ -1,53 +1,73 @@ -'use client' -import Image from 'next/image' +"use client"; +import { convertDateFormat, formatTextToHtmlTag } from "@/utils/global"; +import Image from "next/image"; +import { EyeIcon, EyeIconMdi } from "../icons"; -export default function DetailNews() { - return ( -
-
- NextUI hero Image +export default function DetailNews(props: { data: any }) { + const { data } = props; + return ( +
+
+ NextUI hero Image +
+
+
+

+ Oleh {data?.createdByName} +

+

|

+

Diupdate pada {convertDateFormat(data?.createdAt)} WIB

+

|

+

+ + {data?.viewCount === null ? 0 : data?.viewCount} +

+
+
+ medsos
-
-

Oleh Humas Polri

-

|

-

Diupdate pada 24-01-2024 13:01:18 WIB

-

|

-

1000

-
-
medsos
-
medsos
-
medsos
-
medsos
-
- -
-
-

Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke Kejagung

-

Jakarta, – Direktorat Tindak Pidana Korupsi (Dittipidkor) Bareskrim Polri melakukan pengiriman berkas perkara (tahap I), terkait dugaan korupsi pengadaan alat kesehatan Cath Lab dan belanja alat kedokteran CT Scan di RSUD dr Mohammad Soewandhie Surabaya, yang diduga dilakukan oleh tersangka drg RP. - Kepala Biro Penerangan Masyarakat Divisi Humas Polri Brigjen Pol Trunoyudo Wisnu Andiko mengatakan, perkara dugaan korupsi ini terjadi pada tahun 2012 dimana RSUD dr Mohammad Soewandhie Surabaya telah melakukan pengadaan alat kesehatan Cath Lab dan belanja alat kedokteran CT Scan, dengan menggunakan DPA SKPD tahun anggaran 2012, yakni rinciannya alat kesehatan Cath Lab Rp 17.050.000.000 dan CT Scan Rp 14.500.000.000. - Trunoyudo menuturkan, pengadaan alat kesehatan Cath Lab dan CT Scan itu sendiri diawali sejak tahun 2011 dimana mulai dari tahap perencanaan anggaran, perencanaan lelang, proses lelang, pelaksanaan pekerjaan dan pembayaran terdapat perbuatan melawan hukum yang terjadi dalam proses pengadaan barang dan jasa, diantaranya dengan menunjuk salah satu produk tertentu. - “Pada tanggal 10 November 2022 telah dilakukan pengiriman berkas perkara tahap I atas nama tersangka RP ke Kejaksaan Agung RI,” katanya. - Pada tanggal 25 November 2022, penyidik menerima pengembalian berkas dengan disertai beberapa kekurangan baik petunjuk formil maupun materil yang harus dipenuhi penyidik. - Setelah penyidik melengkapi petunjuk formil maupun materil, kemudian pada 16 Januari 2024 telah melakukan pengiriman kembali berkas perkara atas nama tersangka RP ke Kejaksaan Agung. - Tersangka RP dijerat Pasal 2 ayat (1) dan atau Pasal 3 UU Nomor 31 tahun 1999 tentang Pemberantasan Tindak Pidana Korupsi sebagaimana telah diubah dengan UU nomor 20 tahun 2001 tentang perubahaan atas UU nomor 31 tahun 1999 tentang Pemberantasan Tindak Pidana Korupsi Jo Pasal 55 ayat (1) ke-1 KUHP. - Berdasarkan hasil perhitungan kerugian keuangan negara yang dilakukan BPK RI adalah sebesar Rp 13.213.174.883.

-
-
-
medsos
-
medsos
-
medsos
-
medsos
-
- {/*
- -
*/} + medsos
-
- ) +
+ medsos +
+
+ medsos +
+
+
+
+

{data?.title}

+
+
+
+
+ medsos +
+
+ medsos +
+
+ medsos +
+
+ medsos +
+
+
+
+ ); } diff --git a/components/page/related-news.tsx b/components/page/related-news.tsx index bb95680..e49e2a1 100644 --- a/components/page/related-news.tsx +++ b/components/page/related-news.tsx @@ -1,64 +1,80 @@ -'use client' -import { Card, CardBody, CardFooter, Image } from '@nextui-org/react'; -import React from 'react' -import { UnderLine } from '../icons'; +"use client"; +import { Card, CardBody, CardFooter, Image } from "@nextui-org/react"; +import React from "react"; +import { UnderLine } from "../icons"; export default function RelatedNews() { - const list = [ - { - title: "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", - img: "/relatedNews.png", - desc: "$5.50", - }, - { - title: "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", - img: "/headernews.png", - price: "$3.00", - }, - { - title: "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", - img: "/relatedNews.png", - desc: "$5.50", - }, { - title: "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", - img: "/relatedNews.png", - desc: "$5.50", - }, - { - title: "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", - img: "/headernews.png", - price: "$3.00", - }, - ]; - return ( -
-
-
Kategori Satker
-
-
-
-
- {list.map((item, index) => ( - console.log("item pressed")}> - - {item.title} -

24/01/2024 14:08 WIB

-
- - {item.title} -

Lihat Selengkapnya

-
-
- ))} -
-
+ const list = [ + { + title: + "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", + img: "/relatedNews.png", + desc: "$5.50", + }, + { + title: + "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", + img: "/headernews.png", + price: "$3.00", + }, + { + title: + "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", + img: "/relatedNews.png", + desc: "$5.50", + }, + { + title: + "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", + img: "/relatedNews.png", + desc: "$5.50", + }, + { + title: + "Bareskrim Polri Kirim Berkas Kasus Korupsi Pengadaan Alat Kesehatan Cath Lab dan CT Scan ke...", + img: "/headernews.png", + price: "$3.00", + }, + ]; + return ( +
+
+
Kategori Satker
+
+
- ) +
+
+
+ {list.map((item, index) => ( + console.log("item pressed")} + > + + {item.title} +

24/01/2024 14:08 WIB

+
+ + {item.title} +

+ Lihat Selengkapnya +

+
+
+ ))} +
+
+
+ ); } diff --git a/components/ui/social-media/polri-tv.tsx b/components/ui/social-media/polri-tv.tsx new file mode 100644 index 0000000..7cf73ef --- /dev/null +++ b/components/ui/social-media/polri-tv.tsx @@ -0,0 +1,30 @@ +import { useEffect } from "react"; + +const PolriTvWidget = () => { + useEffect(() => { + if (typeof window !== "undefined") { + const script = document.createElement("script"); + script.src = "https://embedsocial.com/cdn/ht.js"; + script.id = "EmbedSocialHashtagScript"; + script.async = true; + document.head.appendChild(script); + + return () => { + document.head.removeChild(script); + }; + } + }, []); + + return ( +
+ +
+ ); +}; + +export default PolriTvWidget; diff --git a/public/image404.png b/public/image404.png new file mode 100644 index 0000000..195498a Binary files /dev/null and b/public/image404.png differ diff --git a/service/http-config/http-base-service.ts b/service/http-config/http-base-service.ts index d195a7f..6f8f9b5 100644 --- a/service/http-config/http-base-service.ts +++ b/service/http-config/http-base-service.ts @@ -1,12 +1,12 @@ import axios from "axios"; -const baseURL = "http://103.82.242.92:8888"; +const baseURL = "http://103.82.242.92:8802"; const axiosBaseInstance = axios.create({ - baseURL, - headers: { - "content-type": "application/json", - }, + baseURL, + headers: { + "content-type": "application/json", + }, }); export default axiosBaseInstance; diff --git a/service/medol-news-update.ts b/service/medol-news-update.ts index 8f6ee77..5cbe6bb 100644 --- a/service/medol-news-update.ts +++ b/service/medol-news-update.ts @@ -1,8 +1,11 @@ import { mediahubGet } from "./http-config/axios-base-service"; -export async function top5NewsMediahub() { - const headers = { - "content-type": "application/json", - }; - return await mediahubGet(`/media/public/list?enablePage=1&sort=desc&sortBy=createdAt&size=5&page=0&typeId=1&title=&categoryId=&fileFormats=&tags=&group=&startDate=&endDate=&month=&year=`, headers); -} \ No newline at end of file +export async function topNewsMediahub() { + const headers = { + "content-type": "application/json", + }; + return await mediahubGet( + `/media/public/list?enablePage=1&sort=desc&sortBy=createdAt&size=10&page=0&typeId=1&title=&categoryId=&fileFormats=&tags=&group=&startDate=&endDate=&month=&year=`, + headers + ); +} diff --git a/service/third-party-service.ts b/service/third-party-service.ts new file mode 100644 index 0000000..3e44258 --- /dev/null +++ b/service/third-party-service.ts @@ -0,0 +1,82 @@ +import axios from "axios"; + +const tbnInstance = axios.create({ + baseURL: "https://portal.humas.polri.go.id/v1/api", + headers: { + "content-type": "application/json", + }, +}); +const inpInstance = axios.create({ + baseURL: "https://inp.indoplusmedia.id/wp-json/wp/v2", + headers: { + "content-type": "application/json", + }, +}); + +async function tbnGetNews(pathUrl: any, headers: any) { + const response = await tbnInstance + .get(pathUrl, { headers }) + .catch(function (error: any) { + console.log(error); + return error.response; + }); + console.log("Response base svc : ", response); + if (response?.status == 200 || response?.status == 201) { + return { + error: false, + message: "success", + data: response?.data, + }; + } else { + return { + error: true, + message: response?.data?.message || response?.data || null, + data: null, + }; + } +} +async function inpGetNews(pathUrl: any, headers: any) { + const response = await inpInstance + .get(pathUrl, { headers }) + .catch(function (error: any) { + console.log(error); + return error.response; + }); + console.log("Response base svc : ", response); + if (response?.status == 200 || response?.status == 201) { + return { + error: false, + message: "success", + data: response?.data, + }; + } else { + return { + error: true, + message: response?.data?.message || response?.data || null, + data: null, + }; + } +} + +export async function topNewsTbn() { + const headers = { + "content-type": "application/json", + }; + return await tbnGetNews( + `/public/articles?page=1&limit=10&order_by=terkini&source=tbnews`, + headers + ); +} +export async function topNewsInp() { + const headers = { + "content-type": "application/json", + }; + return await inpGetNews(`/posts`, headers); +} + +export async function getImageInp(id: string) { + const headers = { + "content-type": "application/json", + }; + return await inpGetNews(`/media?parent=${id}`, headers); +} diff --git a/utils/global.tsx b/utils/global.tsx new file mode 100644 index 0000000..289a819 --- /dev/null +++ b/utils/global.tsx @@ -0,0 +1,72 @@ +"use client"; +import { useEffect } from "react"; + +export function convertDateFormat(dateString: string) { + var date = new Date(dateString); + + var day = date.getDate(); + var month = date.getMonth() + 1; + var year = date.getFullYear(); + var hours = date.getHours(); + var minutes = date.getMinutes(); + + var formattedTime = + (hours < 10 ? "0" : "") + hours + ":" + (minutes < 10 ? "0" : "") + minutes; + var formattedDate = + (day < 10 ? "0" : "") + + day + + "-" + + (month < 10 ? "0" : "") + + month + + "-" + + year + + ", " + + formattedTime; + + return formattedDate; +} +export function convertDateFormatNoTime(dateString: string) { + var date = new Date(dateString); + + var day = date.getDate(); + var month = date.getMonth() + 1; + var year = date.getFullYear(); + + var formattedDate = + (day < 10 ? "0" : "") + + day + + "-" + + (month < 10 ? "0" : "") + + month + + "-" + + year; + + return formattedDate; +} + +export function formatTextToHtmlTag(text: string) { + if (text) { + const htmlText = text.replaceAll("\\n", "
").replaceAll(/"/g, ""); + return { __html: htmlText }; + } +} + +const LoadScript = () => { + useEffect(() => { + const script = document.createElement("script"); + script.src = "https://cdn.userway.org/widget.js"; + script.setAttribute("data-account", "X36s1DpjqB"); + script.async = true; + + document.head.appendChild(script); + + return () => { + // Cleanup if needed + document.head.removeChild(script); + }; + }, []); + + return null; // Tidak perlu merender apa-apa +}; + +export default LoadScript;