Section Load Error
Stands in for one dashboard section whose data could not be fetched. It exists because an empty result and a failed one used to be the same value: a failed getProgressSeries returned [] and rendered as a confident "за 0 співбесід" directly above a list of two graded interviews.
Default
Scoped to a section, never the page — the dashboard fetches run in Promise.all, so one failing leaves the others with real data. Retry calls router.refresh(), which re-runs the server render without discarding the sections that did load. Shown at 704px, the width the dashboard content column actually gives a section.
Не вдалося завантажити прогрес
Дані про твої співбесіди тимчасово недоступні. Вони не втрачені — спробуй ще раз.
| Prop | Type | Default | Description |
|---|---|---|---|
| title | string | — | What failed, stated as a failure to load — never as an absence of data. |
| body | string | — | Reassurance that nothing was lost, plus what to do. From dashboardCopy.loadError. |
| retryLabel | string | — | Label for the retry button, which calls router.refresh() — re-runs the server render without discarding the sections that did load. |
Not an empty state
Side by side with EmptyState, because confusing the two is the whole bug. EmptyState is action-framed for first run: dashed border reading as a slot awaiting content, a ghost preview, a CTA onward. A failure has none of those properties — nothing is waiting, and the user did nothing to cause it.
Не вдалося завантажити прогрес
Дані про твої співбесіди тимчасово недоступні. Вони не втрачені — спробуй ще раз.
Пройди першу співбесіду
Твій профіль навичок з'явиться тут одразу після першої оціненої співбесіди.
Почати співбесіду
Need a design system like this?
I design and build products end‑to‑end — from first idea and design system to production‑ready code, ready to hand off to your development team.
Product Designer | AI Design Engineer | Designer for Startups | Mobile & Complex SaaS | from Idea to Product | Framer Developer