Files
Moonlight/Moonlight.ApiServer/Http/Controllers/Frontend/FrontendPage.razor

103 lines
3.5 KiB
Plaintext

@using Moonlight.ApiServer.Database.Entities
<!DOCTYPE html>
<html lang="en" class="bg-base-200 text-base-content font-inter">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>@Title</title>
<base href="/"/>
@foreach (var style in Styles)
{
<link rel="stylesheet" href="@style"/>
}
<link href="manifest.webmanifest" rel="manifest"/>
<link rel="apple-touch-icon" sizes="512x512" href="/_content/Moonlight.Client/img/icon-512.png"/>
<link rel="apple-touch-icon" sizes="192x192" href="/_content/Moonlight.Client/img/icon-192.png"/>
@if (Theme != null)
{
<style>
:root {
--color-base-100: @(Theme.Content.ColorBase100);
--color-base-200: @(Theme.Content.ColorBase200);
--color-base-300: @(Theme.Content.ColorBase300);
--color-base-content: @(Theme.Content.ColorBaseContent);
--color-primary: @(Theme.Content.ColorPrimary);
--color-primary-content: @(Theme.Content.ColorPrimaryContent);
--color-secondary: @(Theme.Content.ColorSecondary);
--color-secondary-content: @(Theme.Content.ColorSecondaryContent);
--color-accent: @(Theme.Content.ColorAccent);
--color-accent-content: @(Theme.Content.ColorAccentContent);
--color-neutral: @(Theme.Content.ColorNeutral);
--color-neutral-content: @(Theme.Content.ColorNeutralContent);
--color-info: @(Theme.Content.ColorInfo);
--color-info-content: @(Theme.Content.ColorInfoContent);
--color-success: @(Theme.Content.ColorSuccess);
--color-success-content: @(Theme.Content.ColorSuccessContent);
--color-warning: @(Theme.Content.ColorWarning);
--color-warning-content: @(Theme.Content.ColorWarningContent);
--color-error: @(Theme.Content.ColorError);
--color-error-content: @(Theme.Content.ColorErrorContent);
--radius-selector: @(Theme.Content.RadiusSelector)rem;
--radius-field: @(Theme.Content.RadiusField)rem;
--radius-box: @(Theme.Content.RadiusBox)rem;
--size-selector: @(Theme.Content.SizeSelector)rem;
--size-field: @(Theme.Content.SizeField)rem;
--border: @(Theme.Content.Border)px;
--depth: @(Theme.Content.Depth);
--noise: @(Theme.Content.Noise);
}
</style>
}
</head>
<body>
<div id="app">
<div class="flex h-screen justify-center items-center">
<div class="sm:max-w-lg">
<div id="blazor-loader-label" class="text-center mb-2 text-lg font-semibold"></div>
<div class="flex flex-col gap-1">
<div class="progress h-3 min-w-sm md:min-w-md" role="progressbar" aria-valuemin="0" aria-valuemax="100">
<div id="blazor-loader-progress" class="progress-bar progress-primary"></div>
</div>
</div>
</div>
</div>
</div>
@foreach (var script in Scripts)
{
<script src="@script"></script>
}
<script src="/_framework/blazor.webassembly.js"></script>
<script>navigator.serviceWorker.register('service-worker.js');</script>
</body>
</html>
@code
{
[Parameter] public string Title { get; set; }
[Parameter] public string[] Scripts { get; set; }
[Parameter] public string[] Styles { get; set; }
[Parameter] public Theme? Theme { get; set; }
}