fix meta data

This commit is contained in:
Rama Priyanto 2025-03-14 15:45:40 +07:00
parent 9e61990f39
commit a2c04393db
10 changed files with 50 additions and 51 deletions

View File

@ -1,5 +1,4 @@
// RootLayout.tsx // RootLayout.tsx
"use client";
import { fontSans } from "@/config/fonts"; import { fontSans } from "@/config/fonts";
import { siteConfig } from "@/config/site"; import { siteConfig } from "@/config/site";
import { Inter } from "next/font/google"; import { Inter } from "next/font/google";
@ -10,7 +9,7 @@ import { Metadata } from "next";
import { Providers } from "./providers"; import { Providers } from "./providers";
import LoadScript from "@/utils/global"; import LoadScript from "@/utils/global";
import { NextIntlClientProvider } from "next-intl"; import { NextIntlClientProvider } from "next-intl";
import { useEffect, useState, type ReactNode } from "react"; import { type ReactNode } from "react";
import storedLanguage from "@/store/language-store"; import storedLanguage from "@/store/language-store";
const inter = Inter({ subsets: ["latin"] }); const inter = Inter({ subsets: ["latin"] });
@ -32,27 +31,12 @@ const inter = Inter({ subsets: ["latin"] });
// }; // };
export default function RootLayout({ children }: { children: ReactNode }) { export default function RootLayout({ children }: { children: ReactNode }) {
const [localeNow, setLocaleNow] = useState<string>("id");
const locale = storedLanguage((state) => state.locale);
useEffect(() => {
if (locale) {
setLocaleNow(locale);
}
}, [locale]);
const [messages, setMessages] = useState<any>(null);
useEffect(() => {
(async () => {
const loadedMessages = (await import(`../messages/${locale}.json`))
.default;
setMessages(loadedMessages);
})();
}, [locale]);
return ( return (
<html lang="en" suppressHydrationWarning className="scroll-smooth"> <html lang="en" suppressHydrationWarning className="scroll-smooth">
<head> <head>
<title>
DIVISI HUMAS POLRI - Pengelolaan Informasi & Dokumentasi Polri
</title>
<meta <meta
name="theme-color" name="theme-color"
content="white" content="white"
@ -71,11 +55,9 @@ export default function RootLayout({ children }: { children: ReactNode }) {
<body <body
className={clsx("bg-background font-sans antialiased", inter.className)} className={clsx("bg-background font-sans antialiased", inter.className)}
> >
<NextIntlClientProvider locale={localeNow} messages={messages}>
<Providers themeProps={{ attribute: "class", defaultTheme: "light" }}> <Providers themeProps={{ attribute: "class", defaultTheme: "light" }}>
<main className="">{children}</main> <main className="">{children}</main>
</Providers> </Providers>
</NextIntlClientProvider>
</body> </body>
</html> </html>
); );

View File

@ -1,24 +1,12 @@
"use client";
import BannerHumasNew from "@/components/landing/banner-new"; import BannerHumasNew from "@/components/landing/banner-new";
import BannerHumas from "@/components/landing/BannerHumas";
import BodyLayout from "@/components/landing/BodyLayout"; import BodyLayout from "@/components/landing/BodyLayout";
import AnalyticDrawer from "@/components/landing/drawer"; import AnalyticDrawer from "@/components/landing/drawer";
import FooterNew from "@/components/landing/footer-new"; import FooterNew from "@/components/landing/footer-new";
import HeaderNews from "@/components/landing/HeaderNews"; import HeaderNews from "@/components/landing/HeaderNews";
import NewsTicker from "@/components/landing/NewsTicker"; import NewsTicker from "@/components/landing/NewsTicker";
import { HumasLayout } from "@/components/layout/humas-layout"; import { Suspense } from "react";
import { Suspense, useEffect, useState } from "react";
export default function Home() { export default function Home() {
const [hasMounted, setHasMounted] = useState(false);
useEffect(() => {
setHasMounted(true);
}, []);
// Render
if (!hasMounted) return null;
return ( return (
<> <>
<section className="flex flex-col"> <section className="flex flex-col">

View File

@ -1,9 +1,11 @@
"use client"; "use client";
import * as React from "react"; import * as React from "react";
import { HeroUIProvider } from "@heroui/system"; import { HeroUIProvider } from "@heroui/system";
import { useRouter } from 'next/navigation' import { useRouter } from "next/navigation";
import { ThemeProvider as NextThemesProvider } from "next-themes"; import { ThemeProvider as NextThemesProvider } from "next-themes";
import { ThemeProviderProps } from "next-themes/dist/types"; import { ThemeProviderProps } from "next-themes/dist/types";
import { NextIntlClientProvider } from "next-intl";
import storedLanguage from "@/store/language-store";
export interface ProvidersProps { export interface ProvidersProps {
children: React.ReactNode; children: React.ReactNode;
@ -12,10 +14,30 @@ export interface ProvidersProps {
export function Providers({ children, themeProps }: ProvidersProps) { export function Providers({ children, themeProps }: ProvidersProps) {
const router = useRouter(); const router = useRouter();
const [localeNow, setLocaleNow] = React.useState<string>("id");
const [messages, setMessages] = React.useState<any>(null);
const locale = storedLanguage((state) => state.locale);
React.useEffect(() => {
if (locale) {
setLocaleNow(locale);
}
}, [locale]);
React.useEffect(() => {
(async () => {
const loadedMessages = (await import(`../messages/${locale}.json`))
.default;
setMessages(loadedMessages);
})();
}, [locale]);
return ( return (
<NextIntlClientProvider locale={locale} messages={messages}>
<HeroUIProvider navigate={router.push}> <HeroUIProvider navigate={router.push}>
<NextThemesProvider {...themeProps}>{children}</NextThemesProvider> <NextThemesProvider {...themeProps}>{children}</NextThemesProvider>
</HeroUIProvider> </HeroUIProvider>
</NextIntlClientProvider>
); );
} }

View File

@ -233,7 +233,7 @@ export default function BannerHumasNew() {
<div className="flex justify-between items-center mb-10"> <div className="flex justify-between items-center mb-10">
<div className="flex flex-col gap-1 justify-start items-start"> <div className="flex flex-col gap-1 justify-start items-start">
<p className="text-lg lg:text-5xl font-bold text-left leading-0"> <p className="text-lg lg:text-5xl font-bold text-left leading-0">
SELAMAT DATANG DI WEBSITE RESMI DIVISI HUMAS POLRI {t("welcome")}
</p> </p>
<p className="text-xs lg:text-base"> <p className="text-xs lg:text-base">
OBYEKTIF - DIPERCAYA - PARTISIPASI OBYEKTIF - DIPERCAYA - PARTISIPASI

View File

@ -1,3 +1,4 @@
"use client";
import { Button } from "@heroui/button"; import { Button } from "@heroui/button";
import { import {
Drawer, Drawer,

View File

@ -1,3 +1,4 @@
"use client";
import { Button } from "@heroui/button"; import { Button } from "@heroui/button";
import { Input } from "@heroui/input"; import { Input } from "@heroui/input";
import { import {

View File

@ -68,7 +68,7 @@ export const Navbar = () => {
}} }}
> >
<NavbarBrand className="min-w-max"> <NavbarBrand className="min-w-max">
<Image src="/logohumas.png" /> <Image src="/logohumas.png" alt="humas-polri" />
</NavbarBrand> </NavbarBrand>
<NavbarContent <NavbarContent
className="hidden md:flex basis-3/5 gap-0 md:gap-4 lg:gap-12 px-auto lg:px-10" className="hidden md:flex basis-3/5 gap-0 md:gap-4 lg:gap-12 px-auto lg:px-10"

View File

@ -18,7 +18,8 @@
}, },
"Banner": { "Banner": {
"jumbotron": "TRANSPARENCY, PARTICIPATION, AND THE BEST SERVICES FROM POLRI FOR INDONESIA", "jumbotron": "TRANSPARENCY, PARTICIPATION, AND THE BEST SERVICES FROM POLRI FOR INDONESIA",
"phrase": "Providing Trusted Information and Bringing Polri Closer to the Community" "phrase": "Providing Trusted Information and Bringing Polri Closer to the Community",
"welcome": "WELCOME TO THE OFFICIAL WEBSITE OF THE POLICE PUBLIC RELATIONS DIVISION"
}, },
"Footer": {}, "Footer": {},
"LandingInformasiPublik": { "LandingInformasiPublik": {

View File

@ -18,7 +18,8 @@
}, },
"Banner": { "Banner": {
"jumbotron": "TRANSPARANSI, PARTISIPASI, DAN LAYANAN TERBAIK DARI POLRI UNTUK INDONESIA", "jumbotron": "TRANSPARANSI, PARTISIPASI, DAN LAYANAN TERBAIK DARI POLRI UNTUK INDONESIA",
"phrase": "Menyajikan Informasi Terpercaya dan Mendekatkan Polri dengan Masyarakat" "phrase": "Menyajikan Informasi Terpercaya dan Mendekatkan Polri dengan Masyarakat",
"welcome": "SELAMAT DATANG DI WEBSITE RESMI DIVISI HUMAS POLRI"
}, },
"LandingInformasiPublik": { "LandingInformasiPublik": {
"InformasiPublik": "Informasi Publik", "InformasiPublik": "Informasi Publik",

View File

@ -3,6 +3,9 @@ const nextConfig = {
eslint: { eslint: {
ignoreDuringBuilds: true, ignoreDuringBuilds: true,
}, },
experimental: {
serverActions: true,
},
images: { images: {
remotePatterns: [ remotePatterns: [
{ {