Highly ambitious ATProtocol AppView service and sdks

fix records card on slice overview, don't show hero content on the landing page if logged in

Changed files
+16 -1
frontend
src
features
landing
templates
slices
overview
+4
frontend/src/features/landing/templates/LandingPage.tsx
··· 56 56 currentUser={currentUser} 57 57 > 58 58 <div className="px-4 py-8"> 59 + {!currentUser?.isAuthenticated && ( 60 + <> 59 61 {/* Hero Section */} 60 62 <div className="text-center mb-16"> 61 63 <Text ··· 457 459 </div> 458 460 </div> 459 461 </div> 462 + </> 463 + )} 460 464 461 465 <PageHeader title="Timeline" /> 462 466
+12 -1
frontend/src/features/slices/overview/handlers.tsx
··· 2 2 import { withAuth } from "../../../routes/middleware.ts"; 3 3 import { renderHTML } from "../../../utils/render.tsx"; 4 4 import { SliceOverview } from "./templates/SliceOverview.tsx"; 5 - import { withSliceAccess } from "../../../routes/slice-middleware.ts"; 5 + import { 6 + getSliceStats, 7 + withSliceAccess, 8 + } from "../../../routes/slice-middleware.ts"; 6 9 import { extractSliceParams } from "../../../utils/slice-params.ts"; 7 10 8 11 async function handleSliceOverview( ··· 34 37 return Response.redirect(lexiconUrl, 302); 35 38 } 36 39 40 + const stats = await getSliceStats(context.sliceContext!.sliceUri); 41 + const collections = stats.collections.map((stat) => ({ 42 + name: stat.name, 43 + count: stat.count, 44 + actors: stat.actors, 45 + })); 46 + 37 47 return renderHTML( 38 48 <SliceOverview 39 49 slice={context.sliceContext!.slice!} 40 50 sliceId={sliceParams.sliceId} 51 + collections={collections} 41 52 currentTab="overview" 42 53 currentUser={authContext.currentUser} 43 54 hasSliceAccess={context.sliceContext?.hasAccess}