- Remove .prettierrc (dead config, Biome replaces Prettier) - Rename lighthouserc.json to lighthouserc.cjs with module.exports for ESM compat - Add logger.warn to empty catch blocks in auth, register, site-settings, prisma-cache, redis, security, rate-limit - Unify ActionResult type: action-helper.ts uses 'ok' consistent with safe-action-shared.ts - Add noUnusedLocals + noUnusedParameters to tsconfig + fix 25 pre-existing unused vars - Replace barrel export src/types/index.ts with direct @/types/common imports - Make trustHost conditional (development only) in auth.ts - Add pre-flight URL validation to update-Nitrov3.sh to catch image.library.url misconfigurations - Improve NITRO_IMAGE_LIBRARY_URL content validation in pre-flight & post-compute checks
41 lines
958 B
TypeScript
41 lines
958 B
TypeScript
import type { ReactNode } from "react";
|
|
|
|
/**
|
|
* Shared public error / empty-route composition.
|
|
* Used by route error.tsx and not-found.tsx (inside the app shell).
|
|
*/
|
|
export function ErrorScreen({
|
|
code,
|
|
title,
|
|
subtitle,
|
|
body,
|
|
actions,
|
|
footer,
|
|
}: {
|
|
code: string;
|
|
title: string;
|
|
subtitle: string;
|
|
body: string;
|
|
actions: ReactNode;
|
|
footer?: ReactNode;
|
|
}) {
|
|
return (
|
|
<main className="error-screen">
|
|
<div className="error-screen-glow" aria-hidden />
|
|
<section
|
|
className="error-screen-panel"
|
|
aria-labelledby="error-screen-title"
|
|
>
|
|
<p className="error-screen-code">{code}</p>
|
|
<h1 id="error-screen-title" className="error-screen-title">
|
|
{title}
|
|
</h1>
|
|
<p className="error-screen-subtitle">{subtitle}</p>
|
|
<p className="error-screen-body">{body}</p>
|
|
<div className="error-screen-actions">{actions}</div>
|
|
{footer ? <div className="error-screen-footer">{footer}</div> : null}
|
|
</section>
|
|
</main>
|
|
);
|
|
}
|