@page "/register" @using WebClientTpos.Shared.DTOs @using WebClientTpos.Shared @inject HttpClient Http @inject NavigationManager Navigation @inject IStringLocalizer L @* EN: User registration page. VI: Trang đăng ký người dùng. *@ @L["Auth_Register_Title"]

@L["Auth_Register_Title"]

@L["Auth_Register_Subtitle"]

@L["Auth_Register_PasswordHint"]
@if (!string.IsNullOrEmpty(message)) {
@message
}
@code { private RegisterDto registerModel = new(); private bool isSubmitting = false; private string message = ""; private bool success = false; /// /// EN: Handle registration form submission. /// VI: Xử lý submit form đăng ký. /// private async Task HandleRegister() { isSubmitting = true; message = ""; try { var response = await Http.PostAsJsonAsync("api/auth/register", registerModel); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadFromJsonAsync>(); if (result?.Success == true) { success = true; message = L["Auth_Register_Success"]; // EN: Redirect to login after 2 seconds // VI: Chuyển hướng đến đăng nhập sau 2 giây await Task.Delay(2000); Navigation.NavigateTo("/auth/login"); } else { success = false; message = result?.Error ?? L["Auth_Register_Error"]; } } else { success = false; var content = await response.Content.ReadAsStringAsync(); message = $"{L["Auth_Register_Error"]}: {content}"; } } catch (Exception ex) { success = false; message = $"{L["Common_Error"]}: {ex.Message}"; } finally { isSubmitting = false; } } }