@@ -10,6 +10,7 @@ import usePageTitle from '../utils/usePageTitle';
1010const HomePage = ( ) => {
1111 usePageTitle ( 'Home' ) ;
1212 const [ posts , setPosts ] = useState ( [ ] ) ;
13+ const [ loadingPosts , setLoadingPosts ] = useState ( true ) ;
1314 const { projects, loading, error } = useProjects ( ) ;
1415 const pinnedProjects = projects . filter ( p => p . pinned ) ;
1516
@@ -27,14 +28,50 @@ const HomePage = () => {
2728 } catch ( error ) {
2829 console . error ( 'Error fetching post slugs:' , error ) ;
2930 setPosts ( [ ] ) ;
31+ } finally {
32+ setLoadingPosts ( false ) ;
3033 }
3134 } ;
3235
3336 fetchPostSlugs ( ) ;
3437 } , [ ] ) ;
3538
36- if ( loading ) {
37- return < div className = "py-16 sm:py-24 text-center text-white" > Loading projects...</ div > ;
39+ if ( loading || loadingPosts ) {
40+ // Skeleton loading screen for HomePage
41+ return (
42+ < div className = "py-16 sm:py-24" >
43+ < div className = "mx-auto max-w-7xl px-6 lg:px-8" >
44+ < div className = "mx-auto max-w-2xl text-center" >
45+ < div className = "h-10 bg-gray-800 rounded w-3/4 mx-auto mb-4" > </ div >
46+ < div className = "h-6 bg-gray-800 rounded w-1/2 mx-auto" > </ div >
47+ </ div >
48+
49+ < div className = "mt-16" >
50+ < div className = "h-8 bg-gray-800 rounded w-1/3 mx-auto mb-8" > </ div >
51+ < div className = "grid grid-cols-1 md:grid-cols-2 gap-8" >
52+ { [ ...Array ( 2 ) ] . map ( ( _ , i ) => (
53+ < div key = { i } className = "bg-gray-800 rounded-lg shadow-lg p-6 animate-pulse" >
54+ < div className = "h-6 bg-gray-700 rounded w-3/4 mb-4" > </ div >
55+ < div className = "h-4 bg-gray-700 rounded w-1/2" > </ div >
56+ </ div >
57+ ) ) }
58+ </ div >
59+ </ div >
60+
61+ < div className = "mt-8" >
62+ < div className = "h-8 bg-gray-800 rounded w-1/3 mx-auto mb-8" > </ div >
63+ < div className = "space-y-4" >
64+ { [ ...Array ( 3 ) ] . map ( ( _ , i ) => (
65+ < div key = { i } className = "bg-gray-800 rounded-lg shadow-lg p-6 animate-pulse" >
66+ < div className = "h-6 bg-gray-700 rounded w-full mb-2" > </ div >
67+ < div className = "h-4 bg-gray-700 rounded w-5/6" > </ div >
68+ </ div >
69+ ) ) }
70+ </ div >
71+ </ div >
72+ </ div >
73+ </ div >
74+ ) ;
3875 }
3976
4077 if ( error ) {
0 commit comments