/* eslint-disable react-hooks/exhaustive-deps */ 'use client' import pencegahanKriminalitasState from '@/app/admin/(dashboard)/_state/keamanan/pencegahan-kriminalitas'; import colors from '@/con/colors'; import { Box, Button, Center, Paper, SimpleGrid, Skeleton, Stack, Text } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconArrowRight } from '@tabler/icons-react'; import { useTransitionRouter } from 'next-view-transitions'; import { useEffect } from 'react'; import { useProxy } from 'valtio/utils'; function Page() { const kriminalitasState = useProxy(pencegahanKriminalitasState); const findFirst = useProxy(pencegahanKriminalitasState.findFirst); const router = useTransitionRouter(); const { data, loading, page, load, } = kriminalitasState.findMany; useEffect(() => { if (!findFirst.data && !findFirst.loading) { kriminalitasState.findFirst.load(); } }, [findFirst.data, findFirst.loading]); useShallowEffect(() => { const LIMIT = 3; load(page, LIMIT); }, [page]); if (loading || !data) { return ( ) } return ( Pencegahan Kriminalitas Keamanan Komunitas & Pencegahan Kriminal Program Keamanan Berjalan {data.length > 0 ? ( data.map((item) => ( {item.judul} )) ) : ( Tidak ada data pencegahan kriminalitas yang cocok )} {findFirst.loading ? (
) : findFirst.data ? ( {findFirst.data?.linkVideo ? ( ) : ( Tidak ada video )} {findFirst.data?.judul} {findFirst.data?.deskripsiSingkat} ) : null}
); function convertToEmbedUrl(youtubeUrl: string): string { try { const url = new URL(youtubeUrl); const videoId = url.searchParams.get("v"); if (!videoId) return youtubeUrl; return `https://www.youtube.com/embed/${videoId}`; } catch (err) { console.error("Error converting YouTube URL to embed:", err); return youtubeUrl; } } } export default Page;