feat: add retry action to unavailable states
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
const { title, description, actionHref, actionLabel, tone = "empty", compact = false, contained = true } = Astro.props as { title: string; description?: string; actionHref?: string; actionLabel?: string; tone?: "empty" | "error" | "unavailable"; compact?: boolean; contained?: boolean };
|
const { title, description, actionHref, actionLabel, tone = "empty", compact = false, contained = true } = Astro.props as { title: string; description?: string; actionHref?: string; actionLabel?: string; tone?: "empty" | "error" | "unavailable"; compact?: boolean; contained?: boolean };
|
||||||
|
const retryHref = actionHref ?? (tone === "unavailable" ? `${Astro.url.pathname}${Astro.url.search}` : undefined);
|
||||||
|
const retryLabel = actionLabel ?? (tone === "unavailable" ? "Повторить загрузку" : undefined);
|
||||||
---
|
---
|
||||||
<div class:list={["state", { "content-grid": contained, "compact-state": compact, "error-state": tone === "error", "unavailable-state": tone === "unavailable" }]} role={tone === "empty" ? "status" : "alert"}>
|
<div class:list={["state", { "content-grid": contained, "compact-state": compact, "error-state": tone === "error", "unavailable-state": tone === "unavailable" }]} role={tone === "empty" ? "status" : "alert"}>
|
||||||
<h2>{title}</h2>
|
<h2>{title}</h2>
|
||||||
{description && <p>{description}</p>}
|
{description && <p>{description}</p>}
|
||||||
{actionHref && actionLabel && <a data-action="secondary" href={actionHref}>{actionLabel}</a>}
|
{retryHref && retryLabel && <a data-action="secondary" href={retryHref}>{retryLabel}</a>}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user