@@ -98,6 +98,14 @@ export const Home = () => {
9898  // [Joshen] JFYI minus 1 as the replicas endpoint returns the primary DB minimally 
9999  const  replicasCount  =  Math . max ( 0 ,  ( replicasData ?. length  ??  1 )  -  1 ) 
100100
101+   if  ( isPaused )  { 
102+     return  ( 
103+       < div  className = "w-full h-full flex items-center justify-center" > 
104+         < ProjectPausedState  /> 
105+       </ div > 
106+     ) 
107+   } 
108+ 
101109  return  ( 
102110    < div  className = "w-full px-4" > 
103111      < div  className = { cn ( 'py-16 ' ,  ! isPaused  &&  'border-b border-muted ' ) } > 
@@ -200,84 +208,81 @@ export const Home = () => {
200208            </ div > 
201209          </ div > 
202210          < ProjectUpgradeFailedBanner  /> 
203-           { isPaused  &&  < ProjectPausedState  /> } 
204211        </ div > 
205212      </ div > 
206213
207-       { ! isPaused  &&  ( 
208-         < > 
209-           < div  className = "py-16 border-b border-muted" > 
210-             < div  className = "mx-auto max-w-7xl space-y-16" > 
211-               { IS_PLATFORM  &&  project ?. status  !==  PROJECT_STATUS . INACTIVE  &&  ( 
212-                 < > { isNewProject  ? < NewProjectPanel  />  : < ProjectUsageSection  /> } </ > 
213-               ) } 
214-               { ! isNewProject  &&  project ?. status  !==  PROJECT_STATUS . INACTIVE  &&  < AdvisorWidget  /> } 
215-             </ div > 
214+       < > 
215+         < div  className = "py-16 border-b border-muted" > 
216+           < div  className = "mx-auto max-w-7xl space-y-16" > 
217+             { IS_PLATFORM  &&  project ?. status  !==  PROJECT_STATUS . INACTIVE  &&  ( 
218+               < > { isNewProject  ? < NewProjectPanel  />  : < ProjectUsageSection  /> } </ > 
219+             ) } 
220+             { ! isNewProject  &&  project ?. status  !==  PROJECT_STATUS . INACTIVE  &&  < AdvisorWidget  /> } 
216221          </ div > 
222+         </ div > 
217223
218-           < div  className = "bg-surface-100/5 py-16" > 
219-             < div  className = "mx-auto max-w-7xl space-y-16" > 
220-               { project ?. status  !==  PROJECT_STATUS . INACTIVE  &&  ( 
221-                 < > 
222-                   < div  className = "space-y-8" > 
223-                     < h2  className = "text-lg" > Client libraries</ h2 > 
224-                     < div  className = "grid grid-cols-2 gap-x-8 gap-y-8 md:gap-12 mb-12 md:grid-cols-3" > 
225-                       { clientLibraries ! . map ( ( library )  =>  ( 
226-                         // [Alaister]: Looks like the useCustomContent has wonky types. I'll look at a fix later. 
227-                         < ClientLibrary  key = { ( library  as  any ) . language }  { ...( library  as  any ) }  /> 
228-                       ) ) } 
229-                     </ div > 
224+         < div  className = "bg-surface-100/5 py-16" > 
225+           < div  className = "mx-auto max-w-7xl space-y-16" > 
226+             { project ?. status  !==  PROJECT_STATUS . INACTIVE  &&  ( 
227+               < > 
228+                 < div  className = "space-y-8" > 
229+                   < h2  className = "text-lg" > Client libraries</ h2 > 
230+                   < div  className = "grid grid-cols-2 gap-x-8 gap-y-8 md:gap-12 mb-12 md:grid-cols-3" > 
231+                     { clientLibraries ! . map ( ( library )  =>  ( 
232+                       // [Alaister]: Looks like the useCustomContent has wonky types. I'll look at a fix later. 
233+                       < ClientLibrary  key = { ( library  as  any ) . language }  { ...( library  as  any ) }  /> 
234+                     ) ) } 
230235                  </ div > 
231-                    { showExamples   &&   ( 
232-                      < div   className = "flex flex-col gap-y-8" > 
233-                        < h4  className = "text-lg"  > Example projects </ h4 > 
234-                        { ! ! projectHomepageExampleProjects  ?  ( 
235-                          < div   className = "grid gap-2 md:gap-8 md:grid-cols-2 lg:grid-cols-3" > 
236-                            { /* [Alaister]: Looks like the useCustomContent has wonky types. I'll look at a fix later. */ } 
237-                            { ( projectHomepageExampleProjects   as   any ) 
238-                              . sort ( ( a :  any ,   b :  any )   =>   a . title . localeCompare ( b . title ) ) 
239-                              . map ( ( project : any )  =>  ( 
240-                                < ExampleProject   key = { project . url }   { ... project }   /> 
241-                             ) ) } 
242-                         </ div > 
243-                       )  :  ( 
244-                          < div   className = "flex justify-center" > 
245-                            < Tabs_Shadcn_   defaultValue = "app"   className = "w-full " > 
246-                              < TabsList_Shadcn_   className = "flex gap-4 mb-8 "> 
247-                                < TabsTrigger_Shadcn_   value = "app" > App Frameworks </ TabsTrigger_Shadcn_ > 
248-                                < TabsTrigger_Shadcn_  value = "mobile"  > 
249-                                 Mobile Frameworks 
250-                               </ TabsTrigger_Shadcn_ > 
251-                             </ TabsList_Shadcn_ > 
252-                              < TabsContent_Shadcn_   value = "app" > 
253-                                < div   className = "grid gap-2 md:gap-8 md:grid-cols-2 lg:grid-cols-3 "> 
254-                                  { EXAMPLE_PROJECTS . filter ( ( project )   =>   project . type   ===   'app' ) 
255-                                    . sort ( ( a ,   b )  =>  a . title . localeCompare ( b . title ) ) 
256-                                    . map ( ( project )  =>  ( 
257-                                      < ExampleProject   key = { project . url }   { ... project }   /> 
258-                                   ) ) } 
259-                               </ div > 
260-                             </ TabsContent_Shadcn_ > 
261-                              < TabsContent_Shadcn_   value = "mobile" > 
262-                                < div   className = "grid gap-2 md:gap-8 md:grid-cols-2 lg:grid-cols-3 "> 
263-                                  { EXAMPLE_PROJECTS . filter ( ( project )   =>   project . type   ===   'mobile' ) 
264-                                    . sort ( ( a ,   b )  =>  a . title . localeCompare ( b . title ) ) 
265-                                    . map ( ( project )  =>  ( 
266-                                      < ExampleProject   key = { project . url }   { ... project }   /> 
267-                                   ) ) } 
268-                               </ div > 
269-                             </ TabsContent_Shadcn_ > 
270-                           </ Tabs_Shadcn_ > 
271-                         </ div > 
272-                       ) } 
273-                     </ div > 
274-                   ) } 
275-                 </ > 
276-               ) } 
277-             </ div > 
236+                 </ div > 
237+                 { showExamples   &&   ( 
238+                   < div  className = "flex flex-col gap-y-8"  > 
239+                     < h4   className = "text-lg" > Example projects </ h4 > 
240+                     { ! ! projectHomepageExampleProjects  ?  ( 
241+                       < div   className = "grid gap-2 md:gap-8 md:grid-cols-2 lg:grid-cols-3" > 
242+                         { /* [Alaister]: Looks like the useCustomContent has wonky types. I'll look at a fix later. */ } 
243+                         { ( projectHomepageExampleProjects   as   any ) 
244+                           . sort ( ( a : any ,   b :  any )  =>  a . title . localeCompare ( b . title ) ) 
245+                           . map ( ( project :  any )   =>   ( 
246+                             < ExampleProject   key = { project . url }   { ... project }   /> 
247+                            ) ) } 
248+                       </ div > 
249+                     )  :  ( 
250+                       < div   className = "flex justify-center " > 
251+                         < Tabs_Shadcn_   defaultValue = "app"   className = "w-full "> 
252+                           < TabsList_Shadcn_   className = "flex gap-4 mb-8" > 
253+                             < TabsTrigger_Shadcn_  value = "app"  > App Frameworks </ TabsTrigger_Shadcn_ > 
254+                             < TabsTrigger_Shadcn_   value = "mobile" > 
255+                               Mobile Frameworks 
256+                             </ TabsTrigger_Shadcn_ > 
257+                           </ TabsList_Shadcn_ > 
258+                           < TabsContent_Shadcn_   value = "app "> 
259+                             < div   className = "grid gap-2 md:gap-8 md:grid-cols-2 lg:grid-cols-3" > 
260+                               { EXAMPLE_PROJECTS . filter ( ( project )  =>  project . type   ===   'app' ) 
261+                                 . sort ( ( a ,   b )  =>  a . title . localeCompare ( b . title ) ) 
262+                                 . map ( ( project )   =>   ( 
263+                                   < ExampleProject   key = { project . url }   { ... project }   /> 
264+                                  ) ) } 
265+                             </ div > 
266+                           </ TabsContent_Shadcn_ > 
267+                           < TabsContent_Shadcn_   value = "mobile "> 
268+                             < div   className = "grid gap-2 md:gap-8 md:grid-cols-2 lg:grid-cols-3" > 
269+                               { EXAMPLE_PROJECTS . filter ( ( project )  =>  project . type   ===   'mobile' ) 
270+                                 . sort ( ( a ,   b )  =>  a . title . localeCompare ( b . title ) ) 
271+                                 . map ( ( project )   =>   ( 
272+                                   < ExampleProject   key = { project . url }   { ... project }   /> 
273+                                  ) ) } 
274+                             </ div > 
275+                           </ TabsContent_Shadcn_ > 
276+                         </ Tabs_Shadcn_ > 
277+                       </ div > 
278+                     ) } 
279+                   </ div > 
280+                 ) } 
281+               </ > 
282+             ) } 
278283          </ div > 
279-         </ > 
280-       ) } 
284+         </ div > 
285+       </ > 
281286    </ div > 
282287  ) 
283288} 
0 commit comments