✨ feat: Add fade-in animation for greeting message
- Add greetingVisible state to control animation trigger - Implement fade-in effect with 1-second smooth transition - Set 100ms delay before animation starts - Apply opacity transition from 0 to 1 using ease-in-out timing - Enhance user experience with smooth visual feedback on page load The greeting message now appears with an elegant fade-in animation, transitioning from transparent to fully visible over 1 second, providing better visual appeal and user engagement.
This commit is contained in:
@@ -193,6 +193,7 @@ const Detail = (props) => {
|
|||||||
const [dataExportDefaultTime, setDataExportDefaultTime] = useState(getDefaultTime());
|
const [dataExportDefaultTime, setDataExportDefaultTime] = useState(getDefaultTime());
|
||||||
|
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
|
const [greetingVisible, setGreetingVisible] = useState(false);
|
||||||
const [quotaData, setQuotaData] = useState([]);
|
const [quotaData, setQuotaData] = useState([]);
|
||||||
const [consumeQuota, setConsumeQuota] = useState(0);
|
const [consumeQuota, setConsumeQuota] = useState(0);
|
||||||
const [consumeTokens, setConsumeTokens] = useState(0);
|
const [consumeTokens, setConsumeTokens] = useState(0);
|
||||||
@@ -752,6 +753,13 @@ const Detail = (props) => {
|
|||||||
return () => clearTimeout(timer);
|
return () => clearTimeout(timer);
|
||||||
}, [uptimeData, activeUptimeTab]);
|
}, [uptimeData, activeUptimeTab]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const timer = setTimeout(() => {
|
||||||
|
setGreetingVisible(true);
|
||||||
|
}, 100);
|
||||||
|
return () => clearTimeout(timer);
|
||||||
|
}, []);
|
||||||
|
|
||||||
const getUserData = async () => {
|
const getUserData = async () => {
|
||||||
let res = await API.get(`/api/user/self`);
|
let res = await API.get(`/api/user/self`);
|
||||||
const { success, message, data } = res.data;
|
const { success, message, data } = res.data;
|
||||||
@@ -1112,7 +1120,12 @@ const Detail = (props) => {
|
|||||||
return (
|
return (
|
||||||
<div className="bg-gray-50 h-full mt-[64px]">
|
<div className="bg-gray-50 h-full mt-[64px]">
|
||||||
<div className="flex items-center justify-between mb-4">
|
<div className="flex items-center justify-between mb-4">
|
||||||
<h2 className="text-2xl font-semibold text-gray-800">{getGreeting}</h2>
|
<h2
|
||||||
|
className="text-2xl font-semibold text-gray-800 transition-opacity duration-1000 ease-in-out"
|
||||||
|
style={{ opacity: greetingVisible ? 1 : 0 }}
|
||||||
|
>
|
||||||
|
{getGreeting}
|
||||||
|
</h2>
|
||||||
<div className="flex gap-3">
|
<div className="flex gap-3">
|
||||||
<Button
|
<Button
|
||||||
type='tertiary'
|
type='tertiary'
|
||||||
|
|||||||
Reference in New Issue
Block a user