| | 'use client'; |
| | import logo from "@assets/logo.jpg"; |
| | import Image from "next/image"; |
| | import { useEffect, useState } from "react"; |
| |
|
| | const SplashScreen = () => { |
| | const [loadingMessage, setLoadingMessage] = useState("Initializing..."); |
| |
|
| | useEffect(() => { |
| | |
| | const messages = ["Loading...", "Please wait...", "Almost there..."]; |
| | let index = 0; |
| | const interval = setInterval(() => { |
| | setLoadingMessage(messages[index]); |
| | index = (index + 1) % messages.length; |
| | }, 1500); |
| |
|
| | return () => clearInterval(interval); |
| | }, []); |
| |
|
| | const splashScreenStyle = { |
| | display: "flex", |
| | flexDirection: "column", |
| | justifyContent: "center", |
| | alignItems: "center", |
| | height: "100vh", |
| | width: "100vw", |
| | backgroundColor: "var(--background)", |
| | color: "white", |
| | fontFamily: "'Poppins', sans-serif", |
| | animation: "fadeIn 1.5s ease-in-out", |
| | }; |
| |
|
| | const logoStyle = { |
| | width: "300px", |
| | height: "300px", |
| | marginBottom: "1rem", |
| | borderRadius: "50%", |
| | animation: "pulse 2s infinite", |
| | }; |
| |
|
| | const messageStyle = { |
| | fontSize: "1.2rem", |
| | fontWeight: "400", |
| | textAlign: "center", |
| | opacity: 0.8, |
| | }; |
| |
|
| | return ( |
| | <div style={splashScreenStyle}> |
| | <Image style={logoStyle} src={logo} alt="App Logo" /> |
| | <p style={messageStyle}>{loadingMessage}</p> |
| | </div> |
| | ); |
| | }; |
| |
|
| | export default SplashScreen; |
| |
|