@page "/spells/{spellWord}" @using DysonNetwork.Sphere.Account @model DysonNetwork.Sphere.Pages.Spell.MagicSpellPage @{ ViewData["Title"] = "Magic Spell"; } <div class="h-full flex items-center justify-center"> <div class="max-w-lg w-full mx-auto p-6"> <div class="text-center"> <h1 class="text-3xl font-bold text-gray-900 dark:text-white mb-4">Magic Spell</h1> @if (Model.IsSuccess) { <div class="p-4 bg-green-100 dark:bg-green-900 rounded-lg mb-6"> <p class="text-green-800 dark:text-green-200">The spell was applied successfully!</p> <p class="text-green-800 dark:text-green-200 opacity-80">Now you can close this page.</p> </div> } else if (Model.CurrentSpell == null) { <div class="p-4 bg-yellow-100 dark:bg-yellow-900 rounded-lg"> <p class="text-yellow-800 dark:text-yellow-200">The spell was expired or does not exist.</p> </div> } else { <div class="px-4 py-12 bg-white dark:bg-gray-800 text-gray-900 dark:text-white shadow-lg rounded-lg mb-6"> <div class="mb-2"> <p> <span class="font-medium">The spell is for </span> <span class="font-bold">@System.Text.RegularExpressions.Regex.Replace(Model.CurrentSpell!.Type.ToString(), "([a-z])([A-Z])", "$1 $2")</span> </p> <p><span class="font-medium">for @@</span>@Model.CurrentSpell.Account?.Name</p> </div> <div class="text-sm opacity-80"> @if (Model.CurrentSpell.ExpiresAt.HasValue) { <p>Available until @Model.CurrentSpell.ExpiresAt.Value.ToDateTimeUtc().ToString("g")</p> } @if (Model.CurrentSpell.AffectedAt.HasValue) { <p>Available after @Model.CurrentSpell.AffectedAt.Value.ToDateTimeUtc().ToString("g")</p> } </div> <p class="text-sm opacity-80">Would you like to apply this spell?</p> </div> <form method="post" class="mt-4"> <input type="hidden" asp-for="CurrentSpell!.Id"/> @if (Model.CurrentSpell?.Type == MagicSpellType.AuthPasswordReset) { <div class="mb-4"> <label asp-for="NewPassword" class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2" > New Password </label> <input type="password" asp-for="NewPassword" required minlength="8" style="padding: 0.5rem 1rem" placeholder="Your new password" class="w-full border-2 border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-400 dark:text-white bg-gray-100 dark:bg-gray-800"/> </div> } <button type="submit" class="px-6 py-3 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors transform hover:scale-105 focus:outline-none focus:ring-2 focus:ring-blue-400"> Apply </button> </form> } </div> <div class="mt-8 text-center text-sm"> <div class="font-semibold text-gray-700 dark:text-gray-300 mb-1">Solar Network</div> <div class="text-gray-600 dark:text-gray-400"> <a href="https://solsynth.dev" class="hover:text-blue-600 dark:hover:text-blue-400 transition-colors"> Solsynth LLC </a> © @DateTime.Now.Year <br/> Powered by <a href="https://github.com/Solsynth/DysonNetwork" class="hover:text-blue-600 dark:hover:text-blue-400 transition-colors"> DysonNetwork.Sphere </a> </div> </div> </div> </div>