Remotely/Server/Components/App.razor

65 lines
1.9 KiB
Plaintext

@inject AuthenticationStateProvider AuthProvider
@inject IDataService DataService
@inject IDataService DataService
@inject IThemeProvider ThemeProvider
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=550, user-scalable=no" />
<title>Remotely</title>
<base href="/" />
<link href="css/site.css" rel="stylesheet" />
<link href="Remotely_Server.styles.css" rel="stylesheet" />
<script src="interop.js"></script>
@if (_theme == Theme.Dark)
{
<link rel="stylesheet" href="/css/Themes/darkly.min.css" />
<link rel="stylesheet" href="/css/Themes/darkly.custom.css" />
}
else
{
<link rel="stylesheet" href="/css/Themes/yeti.min.css" />
<link rel="stylesheet" href="/css/Themes/yeti.custom.css" />
}
<HeadOutlet @rendermode="RenderModeForPage" />
</head>
<body>
<Routes @rendermode="RenderModeForPage" />
<script src="_framework/blazor.web.js"></script>
<script src="/lib/bootstrap/bootstrap.bundle.min.js"></script>
</body>
</html>
@code
{
[CascadingParameter]
public required HttpContext HttpContext { get; set; }
private RemotelyUser? _user;
private Theme _theme;
protected override async Task OnInitializedAsync()
{
_theme = await ThemeProvider.GetEffectiveTheme();
var state = await AuthProvider.GetAuthenticationStateAsync();
if (state.User.Identity is { IsAuthenticated: true } identity)
{
var userResult = await DataService.GetUserByName($"{identity.Name}");
if (userResult.IsSuccess)
{
_user = userResult.Value;
}
}
await base.OnInitializedAsync();
}
private IComponentRenderMode? RenderModeForPage =>
HttpContext.Request.Path.StartsWithSegments("/Account")
? null
: InteractiveServer;
}