import React, { useState, useEffect } from 'react'; interface LoadingScreenProps { isBar?: boolean; progress?: number; } const LoadingScreen: React.FC = ({ isBar = false, progress = 0 }) => { const [dots, setDots] = useState('.'); useEffect(() => { const dotAnimation = setInterval(() => { setDots(prevDots => { if (prevDots.length >= 5) { return '.'; } return prevDots + '.'; }); }, 1000); return () => clearInterval(dotAnimation); }, []); return (

Mempersiapkan Presentasi...

{isBar ? ( <>

{Math.round(progress)}%

) : (

LOADING {dots}

)}
); }; const styles: { [key: string]: React.CSSProperties } = { container: { width: '100vw', height: '100vh', display: 'flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'center', backgroundColor: '#071026', color: '#e6eef8', fontFamily: 'Inter, system-ui, sans-serif', }, title: { marginBottom: '2rem', }, progressBarContainer: { width: '50%', maxWidth: '500px', height: '20px', backgroundColor: '#0e2335', borderRadius: '10px', overflow: 'hidden', }, progressBar: { height: '100%', backgroundColor: '#60a5fa', }, progressText: { marginTop: '1rem', fontSize: '1.2rem', } }; export default LoadingScreen;