mirror of
				https://github.com/miawinter98/just-short-it.git
				synced 2025-10-31 00:05:26 +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