@@ -102,8 +102,90 @@ function ProjectDetails() {
102102 } , [ completeStep , loading , project , projectId , searchParams , setSearchParams , user ?. isVerified ] ) ;
103103
104104 if ( loading ) return (
105- < div className = "container" style = { { display : 'flex' , alignItems : 'center' , justifyContent : 'center' , height : '60vh' , color : 'var(--color-text-muted)' , gap : '10px' } } >
106- < div className = "spinner" > </ div >
105+ < div className = "container" style = { { maxWidth : '1200px' , margin : '0 auto' , paddingBottom : '4rem' } } >
106+ { /* Header Skeleton */ }
107+ < div style = { { display : 'flex' , justifyContent : 'space-between' , alignItems : 'center' , marginBottom : '2.5rem' } } >
108+ < div style = { { display : 'flex' , gap : '1rem' , alignItems : 'center' } } >
109+ < div className = "skeleton" style = { { width : '42px' , height : '42px' , borderRadius : '10px' } } />
110+ < div >
111+ < div className = "skeleton" style = { { width : '180px' , height : '24px' , borderRadius : '4px' } } />
112+ < div className = "skeleton" style = { { width : '220px' , height : '14px' , marginTop : '6px' , borderRadius : '4px' } } />
113+ </ div >
114+ </ div >
115+ < div className = "skeleton" style = { { width : '80px' , height : '32px' , borderRadius : '6px' } } />
116+ </ div >
117+
118+ < div style = { { display : 'grid' , gridTemplateColumns : '1fr 380px' , gap : '2.5rem' } } >
119+ { /* Left Column Skeleton */ }
120+ < div style = { { display : 'flex' , flexDirection : 'column' , gap : '2.5rem' } } >
121+ { /* Traffic Card Skeleton */ }
122+ < div >
123+ < div className = "skeleton" style = { { width : '120px' , height : '16px' , marginBottom : '0.75rem' , borderRadius : '4px' } } />
124+ < div className = "card" style = { { padding : '1.25rem' } } >
125+ < div style = { { display : 'flex' , gap : '2rem' , marginBottom : '1.5rem' } } >
126+ < div style = { { width : '100px' } } >
127+ < div className = "skeleton" style = { { width : '70px' , height : '10px' , borderRadius : '4px' } } />
128+ < div className = "skeleton" style = { { width : '50px' , height : '18px' , marginTop : '6px' , borderRadius : '4px' } } />
129+ </ div >
130+ < div style = { { width : '100px' } } >
131+ < div className = "skeleton" style = { { width : '75px' , height : '10px' , borderRadius : '4px' } } />
132+ < div className = "skeleton" style = { { width : '60px' , height : '18px' , marginTop : '6px' , borderRadius : '4px' } } />
133+ </ div >
134+ </ div >
135+ < div className = "skeleton" style = { { width : '100%' , height : '180px' , borderRadius : '8px' } } />
136+ </ div >
137+ </ div >
138+ { /* Quickstart Tabs Skeleton */ }
139+ < div >
140+ < div className = "skeleton" style = { { width : '150px' , height : '16px' , marginBottom : '0.75rem' , borderRadius : '4px' } } />
141+ < div className = "card" style = { { padding : '1.5rem' , height : '250px' } } >
142+ < div style = { { display : 'flex' , gap : '1rem' , marginBottom : '1.5rem' , borderBottom : '1px solid var(--color-border)' , paddingBottom : '0.75rem' } } >
143+ < div className = "skeleton" style = { { width : '80px' , height : '16px' , borderRadius : '4px' } } />
144+ < div className = "skeleton" style = { { width : '80px' , height : '16px' , borderRadius : '4px' } } />
145+ < div className = "skeleton" style = { { width : '80px' , height : '16px' , borderRadius : '4px' } } />
146+ </ div >
147+ < div className = "skeleton" style = { { width : '100%' , height : '14px' , borderRadius : '4px' } } />
148+ < div className = "skeleton" style = { { width : '90%' , height : '14px' , marginTop : '8px' , borderRadius : '4px' } } />
149+ < div className = "skeleton" style = { { width : '80%' , height : '14px' , marginTop : '8px' , borderRadius : '4px' } } />
150+ </ div >
151+ </ div >
152+ </ div >
153+
154+ { /* Right Column Skeleton */ }
155+ < div style = { { display : 'flex' , flexDirection : 'column' , gap : '2.5rem' } } >
156+ { /* Status Card Skeleton */ }
157+ < div >
158+ < div className = "skeleton" style = { { width : '100px' , height : '16px' , marginBottom : '0.75rem' , borderRadius : '4px' } } />
159+ < div className = "card" style = { { padding : '1.25rem' } } >
160+ < div style = { { display : 'flex' , justifyContent : 'space-between' , marginBottom : '1rem' } } >
161+ < div className = "skeleton" style = { { width : '120px' , height : '14px' , borderRadius : '4px' } } />
162+ < div className = "skeleton" style = { { width : '80px' , height : '14px' , borderRadius : '4px' } } />
163+ </ div >
164+ < div style = { { display : 'flex' , justifyContent : 'space-between' } } >
165+ < div className = "skeleton" style = { { width : '100px' , height : '14px' , borderRadius : '4px' } } />
166+ < div className = "skeleton" style = { { width : '90px' , height : '14px' , borderRadius : '4px' } } />
167+ </ div >
168+ </ div >
169+ </ div >
170+ { /* Collections Card Skeleton */ }
171+ < div >
172+ < div className = "skeleton" style = { { width : '120px' , height : '16px' , marginBottom : '0.75rem' , borderRadius : '4px' } } />
173+ < div className = "card" style = { { padding : '0' , overflow : 'hidden' } } >
174+ < div style = { { padding : '12px 16px' , background : 'var(--color-surface-hover)' } } >
175+ < div className = "skeleton" style = { { width : '60px' , height : '12px' , borderRadius : '4px' } } />
176+ </ div >
177+ < div style = { { padding : '16px' , display : 'flex' , flexDirection : 'column' , gap : '1rem' } } >
178+ { [ 1 , 2 , 3 ] . map ( i => (
179+ < div key = { i } style = { { display : 'flex' , justifyContent : 'space-between' , alignItems : 'center' } } >
180+ < div className = "skeleton" style = { { width : '100px' , height : '14px' , borderRadius : '4px' } } />
181+ < div className = "skeleton" style = { { width : '50px' , height : '14px' , borderRadius : '4px' } } />
182+ </ div >
183+ ) ) }
184+ </ div >
185+ </ div >
186+ </ div >
187+ </ div >
188+ </ div >
107189 </ div >
108190 ) ;
109191
0 commit comments