|
|
'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; |
|
|
|