feat: add layered render recovery boundaries

This commit is contained in:
donghyeon-ka
2026-07-25 21:05:36 +09:00
parent eb16c2ffe7
commit c37d571eb3
6 changed files with 295 additions and 14 deletions
+5 -14
View File
@@ -2,19 +2,10 @@ import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { createAnonymousSessionAdapter } from "../adapters/auth/external-session-adapter.js";
import { BootErrorShell } from "../presentation/boundaries/boot-error-shell.jsx";
import { AppRouter } from "../presentation/routes/app-router.jsx";
import { BootConfigError, loadRuntimeConfig } from "./load-runtime-config.js";
/** @param {{ supportReference: string }} props */
function BootErrorShell({ supportReference }) {
return (
<main role="alert">
<h1>애플리케이션을 시작할 없습니다.</h1>
<p>지원 참조: {supportReference}</p>
</main>
);
}
const rootElement = document.getElementById("root");
if (!rootElement) {
@@ -35,12 +26,12 @@ async function boot() {
</StrictMode>,
);
} catch (error) {
const supportReference =
const safe =
error instanceof BootConfigError
? error.safe.supportReference
: "boot:unknown";
? error.safe
: { supportReference: "boot:unknown" };
root.render(<BootErrorShell supportReference={supportReference} />);
root.render(<BootErrorShell {...safe} />);
}
}