mirror of
https://github.com/miawinter98/just-short-it.git
synced 2024-11-22 00:09:54 +00:00
changed: migrated index page to razor component
This commit is contained in:
parent
b00ed1669e
commit
70dad9ccdb
37
Components/Index.razor
Normal file
37
Components/Index.razor
Normal file
|
@ -0,0 +1,37 @@
|
|||
@page "/"
|
||||
@page "/{Id}"
|
||||
@using Microsoft.Extensions.Caching.Distributed
|
||||
|
||||
@inject IDistributedCache Db
|
||||
@inject NavigationManager Navigation
|
||||
|
||||
<PageTitle>Startpage - Just Short It</PageTitle>
|
||||
|
||||
<div class="text-center flex flex-col items-center gap-4">
|
||||
@if (Id is null) {
|
||||
<h1 class="text-3xl lg:text-5xl font-bold text-primary-content">Welcome to Just Short It!</h1>
|
||||
<h2 class="text-xl lg:text-3xl font-bold text-secondary-content">The KISS single-user URL shortener!</h2>
|
||||
<a class="btn btn-primary btn-lg min-h-0 h-12" href="/Urls">Start shorting URLs</a>
|
||||
} else {
|
||||
<p class="text-error" aria-role="alert">@ErrorMessage</p>
|
||||
}
|
||||
</div>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public string? Id { get; set; }
|
||||
|
||||
private string? ErrorMessage { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync() {
|
||||
if (Id is not null) {
|
||||
string? data = await Db.GetStringAsync(Id);
|
||||
if (data is not null) {
|
||||
Navigation.NavigateTo(data, true);
|
||||
} else {
|
||||
ErrorMessage = "Redirect ID not found, it may have been deleted or expired";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
@page "{Id?}"
|
||||
@model IndexModel
|
||||
@{
|
||||
ViewData["Title"] = "Startpage";
|
||||
}
|
||||
|
||||
<div class="text-center flex flex-col items-center gap-4">
|
||||
@if (Model.Id is null) {
|
||||
<h1 class="text-3xl lg:text-5xl font-bold text-primary-content">Welcome to Just Short It!</h1>
|
||||
<h2 class="text-xl lg:text-3xl font-bold text-secondary-content">The KISS single-user URL shortener!</h2>
|
||||
<a class="btn btn-primary btn-lg min-h-0 h-12" asp-page="Urls">Start shorting URLs</a>
|
||||
} else {
|
||||
<p class="text-error">@Model.ErrorMessage</p>
|
||||
}
|
||||
</div>
|
|
@ -1,33 +0,0 @@
|
|||
using System.Text;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
|
||||
namespace JustShortIt.Pages;
|
||||
|
||||
public class IndexModel : PageModel {
|
||||
private ILogger<IndexModel> Logger { get; }
|
||||
private IDistributedCache Db { get; set; }
|
||||
|
||||
// Bound property
|
||||
public string? Id { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
|
||||
public IndexModel(ILogger<IndexModel> logger, IDistributedCache distributedCache) {
|
||||
Logger = logger;
|
||||
Db = distributedCache;
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnGetAsync(string? id) {
|
||||
Id = id;
|
||||
|
||||
if (Id is not null) {
|
||||
string? data = await Db.GetStringAsync(Id);
|
||||
if (data is not null) return Redirect(data);
|
||||
|
||||
ErrorMessage = "Redirect ID not found, it may have been deleted or expired";
|
||||
}
|
||||
|
||||
return Page();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue