handy online tools for AT Protocol boat.kelinci.net
atproto bluesky atcute typescript solidjs
at trunk 1.4 kB view raw
1import { ErrorBoundary, Suspense } from 'solid-js'; 2 3import { RouterView } from '~/lib/navigation/router'; 4 5import ErrorPage from './views/_error'; 6 7const Shell = () => { 8 return ( 9 <div class="relative z-10 mx-auto flex min-h-dvh max-w-xl flex-col-reverse"> 10 <div class="z-0 box-content flex min-h-0 grow flex-col overflow-clip bg-white shadow"> 11 <RouterView 12 render={({ def }) => { 13 return ( 14 <ErrorBoundary fallback={(error, reset) => <ErrorPage error={error} reset={reset} />}> 15 <Suspense 16 fallback={ 17 <div class="grid grow place-items-center"> 18 <svg viewBox="0 0 32 32" class="animate-spin" style="height:24px;width:24px"> 19 <circle 20 cx="16" 21 cy="16" 22 fill="none" 23 r="14" 24 stroke-width="4" 25 class="stroke-purple-600 opacity-20" 26 /> 27 <circle 28 cx="16" 29 cy="16" 30 fill="none" 31 r="14" 32 stroke-width="4" 33 stroke-dasharray="80px" 34 stroke-dashoffset="60px" 35 class="stroke-purple-600" 36 /> 37 </svg> 38 </div> 39 } 40 > 41 <def.component /> 42 </Suspense> 43 </ErrorBoundary> 44 ); 45 }} 46 /> 47 </div> 48 </div> 49 ); 50}; 51 52export default Shell;