revert(island): c6eb4383

This commit is contained in:
Julien Oculi 2024-07-16 17:00:40 +02:00
parent c6eb438314
commit 72b0794c61
2 changed files with 10 additions and 12 deletions

View file

@ -54,8 +54,9 @@ export default function CardList<ApiResponse, RefType = null>(
loader={placeholder({ ref: index === 0 ? ref : undefined })}
fallback={fallback}
signal={ac.signal}
value={updateFromList(list, index)}
/>
>
{updateFromList(list, index)}
</Suspense>
))
return <>{placeholders}</>
}

View file

@ -18,14 +18,13 @@ function RenderError(
export type Fallback = ({ error }: { error: Error }) => JSX.Element
export type SuspenseProps = {
loader: JSX.Element
fallback?: Fallback
signal?: AbortSignal
} & ({ children: Promise<JSX.Element> } | { value: Promise<JSX.Element> })
export default function Suspense(
{ loader, fallback, signal, ...props }: SuspenseProps,
{ loader, fallback, signal, children }: {
loader: JSX.Element
fallback?: Fallback
signal?: AbortSignal
children: Promise<JSX.Element>
},
) {
const displayed = useSignal(loader)
let loaded = false
@ -39,9 +38,7 @@ export default function Suspense(
}
})
//Prevent transpilation error due to children expected to not be a promise
const inner = 'value' in props ? props.value : props.children
inner
children
.then((element) => {
if (signal?.aborted) return
displayed.value = element