handy online tools for AT Protocol
boat.kelinci.net
atproto
bluesky
atcute
typescript
solidjs
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;