Catch recent-updates row errors at the section
The recent-updates rows all come from a single connection query, so a per-row boundary isolated a failure that the rows actually share and left an unrecoverable row (its retry only re-read the same errored store). Let a row's field error bubble to the section boundary instead, so the whole list degrades and recovers as one unit. Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
@@ -94,22 +94,10 @@ function RecentUpdatesSectionContent({ trustCenterKey }: RecentUpdatesSectionPro
|
||||
<div aria-hidden className="pointer-events-none absolute inset-0 bg-linear-to-r from-sand-1/0 to-sand-1 to-[96px]" />
|
||||
<div className="relative divide-y divide-sand-a2">
|
||||
{updates.map(update => (
|
||||
// A single failing row degrades to a compact horizontal inline error.
|
||||
<ErrorBoundary
|
||||
key={update.id}
|
||||
fallback={(_, reset) => (
|
||||
<div className="px-6 py-4">
|
||||
<InlineError
|
||||
layout="horizontal"
|
||||
message={t("errors.inline.message")}
|
||||
retryLabel={t("errors.inline.retry")}
|
||||
onRetry={reset}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
>
|
||||
<MailingListUpdateListItem updateKey={update} />
|
||||
</ErrorBoundary>
|
||||
// Rows share fate (one connection query), so a row's field error
|
||||
// bubbles to the section boundary above rather than degrading a
|
||||
// single, unrecoverable row.
|
||||
<MailingListUpdateListItem key={update.id} updateKey={update} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user