Bifrost/src/Bifrost.Web/Pages/Shared/_Layout.cshtml
Heimdall ed3645e048 MergeNotice in the layout and a Merge status link on Membership status
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-14 10:17:13 +00:00

73 lines
2.7 KiB
Text

@using Bifrost.Web.Features.Membership
@using System.Security.Claims
@{
var gitHubLogin = Context.User.FindFirst(BifrostClaimTypes.GitHubLogin)?.Value
?? Context.User.FindFirst(ClaimTypes.Name)?.Value
?? "guest";
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - Bifrost</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Literata:opsz,wght@7..72,500;7..72,700&family=Space+Grotesk:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/Bifrost.Web.styles.css" asp-append-version="true" />
</head>
<body>
<div class="shell">
<header class="topbar">
<a class="brand" asp-page="/Index">
<span class="brand-mark">B</span>
<span>
<strong>Bifrost</strong>
<small>GameCult member alpha</small>
</span>
</a>
<nav class="topnav">
<a asp-page="/Index">Home</a>
@if (User.Identity?.IsAuthenticated == true)
{
<a asp-page="/Membership/Status">Membership</a>
<a asp-page="/App/Index">Console</a>
<a asp-page="/App/Projects/Index">Projects</a>
<a asp-page="/App/WorkItems/Index">Work items</a>
<a asp-page="/App/Motions/Index">Motions</a>
<a asp-page="/App/Ledger/Index">Ledger</a>
<a asp-page="/App/Members/Index">Members</a>
}
</nav>
<div class="session-meta">
@if (User.Identity?.IsAuthenticated == true)
{
<span class="session-pill">@gitHubLogin</span>
<form method="post" action="/auth/sign-out">
<button class="button ghost" type="submit">Sign out</button>
</form>
}
else
{
<a class="button ghost" href="/auth/sign-in">GitHub sign-in</a>
}
</div>
</header>
@if (User.Identity?.IsAuthenticated == true)
{
@await Component.InvokeAsync("MergeNotice")
}
<main class="page-frame">
@RenderBody()
</main>
</div>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>