revert(island): ⏪ c6eb4383
This commit is contained in:
parent
c6eb438314
commit
72b0794c61
|
@ -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}</>
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue