From fb57698dc9dbe1fb0b2a1d1c2f9005cbffb66994 Mon Sep 17 00:00:00 2001 From: nico Date: Tue, 4 Nov 2025 15:08:48 +0800 Subject: [PATCH] Add Menu Musik Add News Reader for Difable Add Running text news / announcement --- bun.lockb | Bin 408119 -> 422871 bytes package.json | 1 + .../profile/media-sosial/[id]/edit/page.tsx | 11 +- .../profile/media-sosial/create/page.tsx | 11 +- .../profile/media-sosial/page.tsx | 4 +- .../profile/pejabat-desa/[id]/page.tsx | 10 +- .../program-inovasi/[id]/edit/page.tsx | 11 +- .../profile/program-inovasi/create/page.tsx | 11 +- .../profile/program-inovasi/page.tsx | 4 +- .../desa/berita/[kategori]/[id]/page.tsx | 7 +- .../desa/pengumuman/[name]/[id]/page.tsx | 6 +- .../darmasaba/(pages)/desa/profile/page.tsx | 2 + .../struktur-perangkat-desa/[id]/page.tsx | 143 ++++++ .../profile/struktur-perangkat-desa/page.tsx | 469 ++++++++++++++++++ .../struktur-perangkat-desa/struktur.css | 68 +++ .../(pages)/musik/musik-desa/page.tsx | 248 +++++++++ src/app/darmasaba/_com/NewsReader.tsx | 96 ++++ src/app/darmasaba/_com/RunningText.tsx | 185 +++++++ .../_com/main-page/landing-page/index.tsx | 2 +- src/app/darmasaba/page.tsx | 73 ++- src/con/navbar-list-menu.ts | 14 +- 21 files changed, 1328 insertions(+), 48 deletions(-) create mode 100644 src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/[id]/page.tsx create mode 100644 src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/page.tsx create mode 100644 src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/struktur.css create mode 100644 src/app/darmasaba/(pages)/musik/musik-desa/page.tsx create mode 100644 src/app/darmasaba/_com/NewsReader.tsx create mode 100644 src/app/darmasaba/_com/RunningText.tsx diff --git a/bun.lockb b/bun.lockb index fb4cf5dafeec026a286694bd26bd6a1a043534c1..f6b34ff19617143e64048dcb6b3223b944790b4e 100755 GIT binary patch delta 76082 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�=K3PkxYTmit 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 - - - + Edit Media Sosial diff --git a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx index ae615815..b42fb69a 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/create/page.tsx @@ -11,8 +11,7 @@ import { Stack, Text, TextInput, - Title, - Tooltip, + Title } from '@mantine/core'; import { Dropzone } from '@mantine/dropzone'; import { IconArrowBack, IconPhoto, IconUpload, IconX } from '@tabler/icons-react'; @@ -69,11 +68,9 @@ export default function CreateMediaSosial() { return ( - - - + Tambah Media Sosial diff --git a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx index b5232fb9..587590b3 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/media-sosial/page.tsx @@ -1,6 +1,6 @@ 'use client' import colors from '@/con/colors'; -import { Box, Button, Center, Group, Image, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title, Tooltip } from '@mantine/core'; +import { Box, Button, Center, Group, Image, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconDeviceImacCog, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; @@ -56,11 +56,9 @@ function ListMediaSosial({ search }: { search: string }) { Daftar Media Sosial - - diff --git a/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx index 9b7c4a70..25599d5b 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/pejabat-desa/[id]/page.tsx @@ -3,7 +3,7 @@ import colors from '@/con/colors'; import { Alert, Box, Button, Center, Group, Image, - Paper, Stack, Text, TextInput, Title, Tooltip + Paper, Stack, Text, TextInput, Title } from '@mantine/core'; import { useEffect, useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -177,11 +177,9 @@ function EditPejabatDesa() { - - - + Edit Pejabat Desa diff --git a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/edit/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/edit/page.tsx index d4b44eb3..b3892f26 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/edit/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/[id]/edit/page.tsx @@ -13,8 +13,7 @@ import { Stack, Text, TextInput, - Title, - Tooltip, + Title } from '@mantine/core'; import { Dropzone } from '@mantine/dropzone'; import { IconArrowBack, IconPhoto, IconUpload, IconX } from '@tabler/icons-react'; @@ -104,11 +103,9 @@ function EditProgramInovasi() { return ( - - - + Edit Program Inovasi diff --git a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx index de402dd6..2954b30a 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/create/page.tsx @@ -12,8 +12,7 @@ import { Stack, Text, TextInput, - Title, - Tooltip + Title } from '@mantine/core'; import { Dropzone } from '@mantine/dropzone'; import { IconArrowBack, IconPhoto, IconUpload, IconX } from '@tabler/icons-react'; @@ -70,11 +69,9 @@ function CreateProgramInovasi() { return ( - - - + Tambah Program Inovasi diff --git a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx index b34a5887..ba77436b 100644 --- a/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx +++ b/src/app/admin/(dashboard)/landing-page/profile/program-inovasi/page.tsx @@ -51,8 +51,7 @@ function ListProgramInovasi({ search }: { search: string }) { Daftar Program Inovasi - - -
diff --git a/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx b/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx index 031608aa..c78246d6 100644 --- a/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx +++ b/src/app/darmasaba/(pages)/desa/berita/[kategori]/[id]/page.tsx @@ -1,8 +1,9 @@ /* eslint-disable react-hooks/exhaustive-deps */ 'use client' import stateDashboardBerita from '@/app/admin/(dashboard)/_state/desa/berita'; +import NewsReader from '@/app/darmasaba/_com/NewsReader'; import colors from '@/con/colors'; -import { Box, Center, Container, Image, Skeleton, Stack, Text } from '@mantine/core'; +import { Box, Center, Container, Group, Image, Skeleton, Stack, Text } from '@mantine/core'; import { useParams } from 'next/navigation'; import { useEffect, useState } from 'react'; import { useProxy } from 'valtio/utils'; @@ -49,6 +50,9 @@ function Page() { return ( + + + @@ -67,6 +71,7 @@ function Page() { + + + @@ -42,7 +46,7 @@ function Page() { - + {new Date(detail.data?.createdAt).toLocaleDateString('id-ID', { weekday: 'long', diff --git a/src/app/darmasaba/(pages)/desa/profile/page.tsx b/src/app/darmasaba/(pages)/desa/profile/page.tsx index 9103580c..bb26f571 100644 --- a/src/app/darmasaba/(pages)/desa/profile/page.tsx +++ b/src/app/darmasaba/(pages)/desa/profile/page.tsx @@ -11,6 +11,7 @@ import ProfilPerbekel from './ui/profilPerbekel'; import MotoDesa from './ui/motoDesa'; import SemuaPerbekel from './ui/semuaPerbekel'; import ScrollToTopButton from '@/app/darmasaba/_com/scrollToTopButton'; +import StrukturPerangkatDesa from './struktur-perangkat-desa/page'; function Page() { return ( @@ -33,6 +34,7 @@ function Page() { + diff --git a/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/[id]/page.tsx b/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/[id]/page.tsx new file mode 100644 index 00000000..5e9f9159 --- /dev/null +++ b/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/[id]/page.tsx @@ -0,0 +1,143 @@ +'use client'; +import stateStrukturPPID from '@/app/admin/(dashboard)/_state/ppid/struktur_ppid/struktur_PPID'; +import colors from '@/con/colors'; +import { + Box, + Divider, + Group, + Image, + Paper, + Skeleton, + Stack, + Text, + Title, +} from '@mantine/core'; +import { useShallowEffect } from '@mantine/hooks'; +import { useParams } from 'next/navigation'; +import { useProxy } from 'valtio/utils'; +import BackButton from '../../_com/BackButto'; + +function DetailPegawaiUser() { + const statePegawai = useProxy(stateStrukturPPID.pegawai); + const params = useParams(); + + useShallowEffect(() => { + stateStrukturPPID.posisiOrganisasi.findMany.load(); + statePegawai.findUnique.load(params?.id as string); + }, []); + + + if (!statePegawai.findUnique.data) { + return ( + + + + ); + } + + const data = statePegawai.findUnique.data; + + return ( + + {/* Back button */} + + + + + + + {/* Foto Profil */} + + + {/* Nama & Jabatan */} + + + {data.namaLengkap || '-'} {data.gelarAkademik || ''} + + + {data.posisi?.nama || 'Posisi tidak tersedia'} + + + + + + + {/* Informasi Detail */} + + + + + + + + + + ); +} + +/* Komponen kecil untuk menampilkan baris informasi */ +function InfoRow({ + label, + value, + valueColor, + multiline = false, +}: { + label: string; + value?: string | null; + valueColor?: string; + multiline?: boolean; +}) { + return ( + + + {label} + + + {value || '-'} + + + ); +} + +export default DetailPegawaiUser; diff --git a/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/page.tsx b/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/page.tsx new file mode 100644 index 00000000..5ac50922 --- /dev/null +++ b/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/page.tsx @@ -0,0 +1,469 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +/* eslint-disable @typescript-eslint/no-explicit-any */ +'use client' +import stateStrukturPPID from '@/app/admin/(dashboard)/_state/ppid/struktur_ppid/struktur_PPID' +import ScrollToTopButton from '@/app/darmasaba/_com/scrollToTopButton' +import colors from '@/con/colors' +import { + Box, + Button, + Card, + Center, + Group, + Image, + Loader, + Paper, + Stack, + Text, + TextInput, + Title, + Transition +} from '@mantine/core' +import { + IconArrowsMaximize, + IconArrowsMinimize, + IconRefresh, + IconSearch, + IconUsers, + IconZoomIn, + IconZoomOut, +} from '@tabler/icons-react' +import { debounce } from 'lodash' +import { useTransitionRouter } from 'next-view-transitions' +import { OrganizationChart } from 'primereact/organizationchart' +import { useEffect, useRef, useState } from 'react' +import { useProxy } from 'valtio/utils' +import './struktur.css' +import BackButton from '../_com/BackButto' + +export default function StrukturPerangkatDesa() { + return ( + + + + + + + Struktur Perangkat Desa + + + Gambaran visual peran dan pegawai yang ditugaskan. Arahkan kursor + untuk melihat detail atau klik node untuk fokus tampilan. + + + + + + + + + + + ) +} + +function StrukturPerangkatDesaNode() { + const stateOrganisasi: any = useProxy(stateStrukturPPID.pegawai) + const router = useTransitionRouter() + const chartContainerRef = useRef(null) + const [scale, setScale] = useState(1) + const [isFullscreen, setFullscreen] = useState(false) + const [searchQuery, setSearchQuery] = useState('') + + // debounce pencarian + const debouncedSearch = useRef( + debounce((value: string) => { + setSearchQuery(value) + }, 400) + ).current + + useEffect(() => { + void stateOrganisasi.findMany.load() + }, []) + + const isLoading = + !stateOrganisasi.findMany.data && stateOrganisasi.findMany.loading !== false + + if (isLoading) { + return ( +
+ + + Memuat struktur organisasi… + + Mengambil data pegawai dan posisi. Mohon tunggu sebentar. + + +
+ ) + } + + const data = stateOrganisasi.findMany.data || [] + if (data.length === 0) { + return ( +
+ + +
+ +
+ + Data pegawai belum tersedia + + + Belum ada data pegawai yang tercatat untuk PPID. + + + + +
+
+
+ ) + } + + // 🧩 buat struktur organisasi + const posisiMap = new Map() + const aktifPegawai = data.filter((p: any) => p.isActive) + + for (const pegawai of aktifPegawai) { + const posisiId = pegawai.posisi.id + if (!posisiMap.has(posisiId)) { + posisiMap.set(posisiId, { + ...pegawai.posisi, + pegawaiList: [], + children: [], + }) + } + posisiMap.get(posisiId)!.pegawaiList.push(pegawai) + } + + const root: any[] = [] + posisiMap.forEach((posisi) => { + if (posisi.parentId) { + const parent = posisiMap.get(posisi.parentId) + if (parent) parent.children.push(posisi) + else root.push(posisi) + } else root.push(posisi) + }) + + const toOrgChartFormat = (node: any): any => { + const pegawai = node.pegawaiList?.[0] + return { + expanded: true, + data: { + id: pegawai?.id, + name: pegawai?.namaLengkap || 'Belum Ditugaskan', + title: node.nama || 'Tanpa Jabatan', + image: pegawai?.image?.link || '/img/default.png', + }, + children: node.children?.map(toOrgChartFormat) || [], + } + } + + let chartData = root.map(toOrgChartFormat) + + // πŸ” filter by search + if (searchQuery) { + const filterNodes = (nodes: any[]): any[] => + nodes + .map((n) => ({ + ...n, + children: filterNodes(n.children || []), + })) + .filter( + (n) => + n.data.name.toLowerCase().includes(searchQuery.toLowerCase()) || + n.data.title.toLowerCase().includes(searchQuery.toLowerCase()) || + n.children.length > 0 + ) + chartData = filterNodes(chartData) + } + + // 🎬 fullscreen & zoom control + const toggleFullscreen = () => { + if (!document.fullscreenElement) { + chartContainerRef.current?.requestFullscreen() + setFullscreen(true) + } else { + document.exitFullscreen() + setFullscreen(false) + } + } + + const handleZoomIn = () => setScale((s) => Math.min(s + 0.1, 2)) + const handleZoomOut = () => setScale((s) => Math.max(s - 0.1, 0.5)) + const resetZoom = () => setScale(1) + + return ( + + {/* πŸ” Controls */} + + + } + onChange={(e) => debouncedSearch(e.target.value)} + styles={{ + input: { + minWidth: 250, + }, + }} + /> + + + + + + {Math.round(scale * 100)}% + + + + + + + + + + + + {/* 🧩 Chart Container */} +
+ + } + className="p-organizationchart p-organizationchart-horizontal" + /> + +
+
+ ) +} + +function NodeCard({ node, router }: any) { + const imageSrc = node?.data?.image || '/img/default.png' + const name = node?.data?.name || 'Tanpa Nama' + const title = node?.data?.title || 'Tanpa Jabatan' + const hasId = Boolean(node?.data?.id) + + return ( + + {(styles) => ( + { + if (hasId) { + e.currentTarget.style.transform = 'translateY(-4px)' + e.currentTarget.style.boxShadow = '0 8px 24px rgba(28, 110, 164, 0.25)' + } + }} + onMouseLeave={(e) => { + if (hasId) { + e.currentTarget.style.transform = 'translateY(0)' + e.currentTarget.style.boxShadow = '' + } + }} + > + + {/* Photo */} + + + + + {/* Name */} + + {name} + + + {/* Title/Position */} + + {title} + + + {/* Detail Button */} + {hasId && ( + + )} + + + )} + + ) +} diff --git a/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/struktur.css b/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/struktur.css new file mode 100644 index 00000000..0f9f4fdb --- /dev/null +++ b/src/app/darmasaba/(pages)/desa/profile/struktur-perangkat-desa/struktur.css @@ -0,0 +1,68 @@ +/* ============================================ + STRUKTUR ORGANISASI PPID - STYLING + ============================================ */ + +/* Tabel chart selalu center */ +.p-organizationchart-table { + margin: 0 auto !important; + } + + /* Jarak vertikal antar level - lebih lega */ + .p-organizationchart-line-down { + height: 32px !important; + } + + /* Padding di dalam node - lebih rapi */ + .p-organizationchart-node-content { + padding: 0 !important; + background: transparent !important; + border: none !important; + } + + /* Garis connector antar node - lebih tebal dan jelas */ + .p-organizationchart-line-down, + .p-organizationchart-line-left, + .p-organizationchart-line-right, + .p-organizationchart-line-top { + border-color: rgba(28, 110, 164, 0.4) !important; + border-width: 2px !important; + } + + /* Garis horizontal */ + .p-organizationchart-line-left, + .p-organizationchart-line-right { + border-top-width: 2px !important; + } + + /* Jarak horizontal antar node - lebih proporsional */ + .p-organizationchart-table > tbody > tr > td { + padding: 0 24px !important; + vertical-align: top !important; + } + + /* Node container spacing */ + .p-organizationchart-node { + padding: 8px !important; + } + + /* Responsive adjustments */ + @media (max-width: 768px) { + .p-organizationchart-table > tbody > tr > td { + padding: 0 12px !important; + } + + .p-organizationchart-line-down { + height: 24px !important; + } + } + + /* Smooth transitions untuk zoom */ + .p-organizationchart { + transition: transform 0.2s ease; + } + + /* Fullscreen mode adjustments */ + .p-organizationchart-table:fullscreen { + background: rgba(230, 240, 255, 0.98); + padding: 40px; + } \ No newline at end of file diff --git a/src/app/darmasaba/(pages)/musik/musik-desa/page.tsx b/src/app/darmasaba/(pages)/musik/musik-desa/page.tsx new file mode 100644 index 00000000..7c8ee6e8 --- /dev/null +++ b/src/app/darmasaba/(pages)/musik/musik-desa/page.tsx @@ -0,0 +1,248 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +'use client' +import { ActionIcon, Avatar, Badge, Box, Card, Flex, Grid, Group, Paper, Slider, Stack, Text, TextInput } from '@mantine/core'; +import { IconArrowsShuffle, IconPlayerPauseFilled, IconPlayerPlayFilled, IconPlayerSkipBackFilled, IconPlayerSkipForwardFilled, IconRepeat, IconRepeatOff, IconSearch, IconVolume, IconVolumeOff, IconX } from '@tabler/icons-react'; +import { useEffect, useState } from 'react'; +import BackButton from '../../desa/layanan/_com/BackButto'; + +const MusicPlayer = () => { + const [isPlaying, setIsPlaying] = useState(false); + const [currentTime, setCurrentTime] = useState(0); + const [duration, setDuration] = useState(245); + const [volume, setVolume] = useState(70); + const [isMuted, setIsMuted] = useState(false); + const [isRepeat, setIsRepeat] = useState(false); + const [isShuffle, setIsShuffle] = useState(false); + + const songs = [ + { id: 1, title: 'Midnight Dreams', artist: 'The Wanderers', duration: '4:05', cover: 'https://images.unsplash.com/photo-1470225620780-dba8ba36b745?w=400&h=400&fit=crop' }, + { id: 2, title: 'Summer Breeze', artist: 'Coastal Vibes', duration: '3:42', cover: 'https://images.unsplash.com/photo-1493225457124-a3eb161ffa5f?w=400&h=400&fit=crop' }, + { id: 3, title: 'City Lights', artist: 'Urban Echo', duration: '4:18', cover: 'https://images.unsplash.com/photo-1514320291840-2e0a9bf2a9ae?w=400&h=400&fit=crop' }, + { id: 4, title: 'Ocean Waves', artist: 'Serenity Sound', duration: '5:20', cover: 'https://images.unsplash.com/photo-1459749411175-04bf5292ceea?w=400&h=400&fit=crop' }, + { id: 5, title: 'Neon Nights', artist: 'Electric Dreams', duration: '3:55', cover: 'https://images.unsplash.com/photo-1487180144351-b8472da7d491?w=400&h=400&fit=crop' }, + { id: 6, title: 'Mountain High', artist: 'Peak Performers', duration: '4:32', cover: 'https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?w=400&h=400&fit=crop' } + ]; + + const [currentSong, setCurrentSong] = useState(songs[0]); + + useEffect(() => { + let interval: any; + if (isPlaying) { + interval = setInterval(() => { + setCurrentTime(prev => { + if (prev >= duration) { + setIsPlaying(false); + return 0; + } + return prev + 1; + }); + }, 1000); + } + return () => clearInterval(interval); + }, [isPlaying, duration]); + + const formatTime = (seconds: number) => { + const mins = Math.floor(seconds / 60); + const secs = Math.floor(seconds % 60); + return `${mins}:${secs.toString().padStart(2, '0')}`; + }; + + const playSong = (song: any) => { + setCurrentSong(song); + setCurrentTime(0); + setIsPlaying(true); + const durationInSeconds = parseInt(song.duration.split(':')[0]) * 60 + parseInt(song.duration.split(':')[1]); + setDuration(durationInSeconds); + }; + + const toggleMute = () => { + setIsMuted(!isMuted); + }; + + return ( + + + + + +
+ Selamat Datang Kembali + Temukan musik favorit Anda hari ini +
+ + } + radius="xl" + w={280} + styles={{ input: { backgroundColor: '#fff' } }} + /> + +
+ +
+ Sedang Diputar + + + + +
+ {currentSong.title} + {currentSong.artist} +
+ + {formatTime(currentTime)} + + {formatTime(duration)} + +
+
+
+
+ +
+ Daftar Putar + + {songs.map(song => ( + + playSong(song)} + > + + + + {song.title} + {song.artist} + {song.duration} + + {currentSong.id === song.id && isPlaying && ( + Memutar + )} + + + + ))} + +
+
+ +
+ +
+ + + + + +
+ {currentSong.title} + {currentSong.artist} +
+
+ + + + setIsShuffle(!isShuffle)} + radius="xl" + > + {isShuffle ? : } + + + + + setIsPlaying(!isPlaying)} + > + {isPlaying ? : } + + + + + setIsRepeat(!isRepeat)} + radius="xl" + > + {isRepeat ? : } + + + + {formatTime(currentTime)} + + {formatTime(duration)} + + + + + + {isMuted || volume === 0 ? : } + + { + setVolume(val); + if (val > 0) setIsMuted(false); + }} + color="#0B4F78" + size="xs" + w={100} + /> + {isMuted ? 0 : volume}% + +
+
+
+ ); +}; + +export default MusicPlayer; \ No newline at end of file diff --git a/src/app/darmasaba/_com/NewsReader.tsx b/src/app/darmasaba/_com/NewsReader.tsx new file mode 100644 index 00000000..3973a3d8 --- /dev/null +++ b/src/app/darmasaba/_com/NewsReader.tsx @@ -0,0 +1,96 @@ +'use client'; +import { Button } from '@mantine/core'; +import { useEffect, useRef, useState } from 'react'; + +const NewsReader = () => { + const [isSpeaking, setIsSpeaking] = useState(false); + const [isAllowed, setIsAllowed] = useState(false); + const utteranceRef = useRef(null); + + // Fungsi untuk membaca teks + const speakText = () => { + if (typeof window === 'undefined' || !window.speechSynthesis) { + console.warn('Browser tidak mendukung SpeechSynthesis.'); + return; + } + + const contentElement = document.getElementById('news-content'); + const rawText = contentElement?.innerText || ''; + if (!rawText.trim()) return; + + // Hentikan semua suara sebelumnya + window.speechSynthesis.cancel(); + + const utterance = new SpeechSynthesisUtterance(rawText); + utterance.lang = 'id-ID'; + utterance.rate = 1; + utterance.pitch = 1; + + utterance.onstart = () => setIsSpeaking(true); + utterance.onend = () => setIsSpeaking(false); + + utteranceRef.current = utterance; + + try { + window.speechSynthesis.speak(utterance); + } catch (err) { + console.warn('Autoplay gagal karena kebijakan browser:', err); + } + }; + + // Auto play jika sudah pernah diizinkan + useEffect(() => { + const hasPermission = localStorage.getItem('ttsAllowed') === 'true'; + setIsAllowed(hasPermission); + + if (hasPermission) { + const trySpeak = setInterval(() => { + const contentElement = document.getElementById('news-content'); + if (contentElement && contentElement.innerText.trim()) { + speakText(); + clearInterval(trySpeak); + } + }, 1000); + return () => clearInterval(trySpeak); + } + }, []); + + // Hentikan suara saat user keluar halaman / komponen unmount + useEffect(() => { + return () => { + if (typeof window !== 'undefined' && window.speechSynthesis) { + window.speechSynthesis.cancel(); + setIsSpeaking(false); + } + }; + }, []); + + // Handle tombol manual + const handleToggle = () => { + if (isSpeaking) { + window.speechSynthesis.cancel(); + setIsSpeaking(false); + } else { + if (!isAllowed) { + localStorage.setItem('ttsAllowed', 'true'); + setIsAllowed(true); + } + speakText(); + } + }; + + return ( + + ); +}; + +export default NewsReader; diff --git a/src/app/darmasaba/_com/RunningText.tsx b/src/app/darmasaba/_com/RunningText.tsx new file mode 100644 index 00000000..c670818e --- /dev/null +++ b/src/app/darmasaba/_com/RunningText.tsx @@ -0,0 +1,185 @@ +"use client"; + +import { Box } from "@mantine/core"; +import { IconBell } from "@tabler/icons-react"; +import { useMemo, useState, useEffect } from "react"; + +interface RunningTextProps { + news?: string[]; + speed?: number; // dalam detik (jika mau manual) + autoSpeed?: boolean; // otomatis sesuaikan speed dengan panjang text + bgColor?: string; + textColor?: string; + maxLength?: number; // max karakter per item +} + +// Utility function untuk strip HTML (works on both server and client) +function stripHtmlTags(html: string): string { + const text = html + .replace(/]*>.*?<\/style>/gi, '') + .replace(/]*>.*?<\/script>/gi, '') + .replace(/<[^>]+>/g, '') + .replace(/ /gi, ' ') + .replace(/&/gi, '&') + .replace(/</gi, '<') + .replace(/>/gi, '>') + .replace(/"/gi, '"') + .replace(/'/gi, "'") + .replace(/’/gi, "'") + .replace(/—/gi, 'β€”') + .replace(/–/gi, '–') + .replace(/\s+/g, ' ') + .trim(); + + return text; +} + +export default function RunningText({ + news = [ + "Selamat datang di Portal Desa Darmasaba", + "Jam operasional kantor: Senin - Jumat 08:00 - 17:00", + ], + speed = 20, + autoSpeed = true, + bgColor = "#1e5a7e", + textColor = "white", + maxLength = 200 // default max 200 karakter per item +}: RunningTextProps) { + + const [isMounted, setIsMounted] = useState(false); + + useEffect(() => { + setIsMounted(true); + }, []); + + // Process news data + const processedNews = useMemo(() => { + return news + .filter(item => item && item.trim() !== "") + .map(item => { + let text = stripHtmlTags(item); + // Limit panjang per item + if (text.length > maxLength) { + text = text.substring(0, maxLength) + "..."; + } + return text; + }) + .filter(item => item.length > 0); + }, [news, maxLength]); + + const allNews = processedNews.length > 0 + ? processedNews.join(" β€’ ") + : "Tidak ada pengumuman"; + + // Hitung speed berdasarkan mode + const calculatedSpeed = useMemo(() => { + if (!autoSpeed) { + return speed; // Gunakan speed manual + } + + // Auto speed: berdasarkan panjang text + const textLength = allNews.length; + + // Formula yang lebih natural: + // - Text pendek (< 100 char): 15 detik + // - Text sedang (100-300 char): 20-30 detik + // - Text panjang (> 300 char): 30-45 detik + let calculatedTime; + + if (textLength < 100) { + calculatedTime = 15; + } else if (textLength < 300) { + calculatedTime = 15 + ((textLength - 100) / 200) * 15; // 15-30 detik + } else { + calculatedTime = 30 + Math.min(((textLength - 300) / 500) * 15, 15); // 30-45 detik max + } + + return Math.round(calculatedTime); + }, [allNews, speed, autoSpeed]); + + // Prevent hydration mismatch + if (!isMounted) { + return ( + +
+ + + Memuat pengumuman... + +
+
+ ); + } + + return ( + +