From a91717d880667e17a6c4cc9c2ec12846ef3a33b4 Mon Sep 17 00:00:00 2001 From: dungtt Date: Wed, 10 Sep 2025 15:55:04 +0700 Subject: [PATCH 1/2] =?UTF-8?q?thay=20d=E1=BB=95i=20layout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RobotApp.Client/Layout/MainLayout.razor | 29 ++- RobotApp.Client/Layout/MainLayout.razor.css | 105 +-------- RobotApp.Client/Layout/NavMenu.razor | 135 +++++------- RobotApp.Client/Layout/NavMenu.razor.css | 176 +++++++-------- RobotApp.Client/Pages/Home.razor | 9 +- RobotApp.Client/Program.cs | 2 + RobotApp.Client/RobotApp.Client.csproj | 5 +- RobotApp.Client/Routes.razor | 28 ++- RobotApp.Client/_Imports.razor | 1 + .../wwwroot/images/Image-not-found.png | Bin 0 -> 809 bytes RobotApp.Client/wwwroot/images/logoDark.svg | 10 + RobotApp.Client/wwwroot/images/logoLight.svg | 48 ++++ ...omponentsEndpointRouteBuilderExtensions.cs | 81 +------ .../Account/Pages/ConfirmEmail.razor | 48 ---- .../Account/Pages/ConfirmEmailChange.razor | 68 ------ .../Account/Pages/ExternalLogin.razor | 205 ------------------ .../Account/Pages/ForgotPassword.razor | 68 ------ .../Pages/ForgotPasswordConfirmation.razor | 8 - .../Account/Pages/InvalidPasswordReset.razor | 8 - .../Account/Pages/InvalidUser.razor | 7 - .../Components/Account/Pages/Lockout.razor | 8 - RobotApp/Components/Account/Pages/Login.razor | 100 ++++----- .../Account/Pages/LoginWith2fa.razor | 101 --------- .../Account/Pages/LoginWithRecoveryCode.razor | 85 -------- .../Account/Pages/Manage/ChangePassword.razor | 96 -------- .../Pages/Manage/DeletePersonalData.razor | 86 -------- .../Account/Pages/Manage/Disable2fa.razor | 64 ------ .../Account/Pages/Manage/Email.razor | 123 ----------- .../Pages/Manage/EnableAuthenticator.razor | 172 --------------- .../Account/Pages/Manage/ExternalLogins.razor | 140 ------------ .../Pages/Manage/GenerateRecoveryCodes.razor | 68 ------ .../Account/Pages/Manage/Index.razor | 77 ------- .../Account/Pages/Manage/PersonalData.razor | 34 --- .../Pages/Manage/ResetAuthenticator.razor | 52 ----- .../Account/Pages/Manage/SetPassword.razor | 87 -------- .../Manage/TwoFactorAuthentication.razor | 101 --------- .../Account/Pages/Manage/_Imports.razor | 2 - .../Components/Account/Pages/Register.razor | 105 ++++----- .../Account/Pages/RegisterConfirmation.razor | 68 ------ .../Pages/ResendEmailConfirmation.razor | 68 ------ .../Account/Pages/ResetPassword.razor | 103 --------- .../Pages/ResetPasswordConfirmation.razor | 7 - .../Account/Shared/ExternalLoginPicker.razor | 43 ---- .../Account/Shared/ManageLayout.razor | 17 -- .../Account/Shared/ManageNavMenu.razor | 37 ---- .../Account/Shared/RedirectToLogin.razor | 8 + .../Account/Shared/ShowRecoveryCodes.razor | 28 --- .../Account/Shared/StatusMessage.razor | 29 --- RobotApp/Components/App.razor | 14 +- RobotApp/Components/_Imports.razor | 1 + RobotApp/Data/ApplicationDbContext.cs | 6 +- RobotApp/Data/ApplicationRole.cs | 9 + RobotApp/Program.cs | 25 ++- RobotApp/RobotApp.csproj | 15 +- RobotApp/appsettings.json | 2 +- RobotApp/libman.json | 15 ++ 56 files changed, 407 insertions(+), 2630 deletions(-) create mode 100644 RobotApp.Client/wwwroot/images/Image-not-found.png create mode 100644 RobotApp.Client/wwwroot/images/logoDark.svg create mode 100644 RobotApp.Client/wwwroot/images/logoLight.svg delete mode 100644 RobotApp/Components/Account/Pages/ConfirmEmail.razor delete mode 100644 RobotApp/Components/Account/Pages/ConfirmEmailChange.razor delete mode 100644 RobotApp/Components/Account/Pages/ExternalLogin.razor delete mode 100644 RobotApp/Components/Account/Pages/ForgotPassword.razor delete mode 100644 RobotApp/Components/Account/Pages/ForgotPasswordConfirmation.razor delete mode 100644 RobotApp/Components/Account/Pages/InvalidPasswordReset.razor delete mode 100644 RobotApp/Components/Account/Pages/InvalidUser.razor delete mode 100644 RobotApp/Components/Account/Pages/Lockout.razor delete mode 100644 RobotApp/Components/Account/Pages/LoginWith2fa.razor delete mode 100644 RobotApp/Components/Account/Pages/LoginWithRecoveryCode.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/ChangePassword.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/DeletePersonalData.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/Disable2fa.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/Email.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/EnableAuthenticator.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/ExternalLogins.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/Index.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/PersonalData.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/ResetAuthenticator.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/SetPassword.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/TwoFactorAuthentication.razor delete mode 100644 RobotApp/Components/Account/Pages/Manage/_Imports.razor delete mode 100644 RobotApp/Components/Account/Pages/RegisterConfirmation.razor delete mode 100644 RobotApp/Components/Account/Pages/ResendEmailConfirmation.razor delete mode 100644 RobotApp/Components/Account/Pages/ResetPassword.razor delete mode 100644 RobotApp/Components/Account/Pages/ResetPasswordConfirmation.razor delete mode 100644 RobotApp/Components/Account/Shared/ExternalLoginPicker.razor delete mode 100644 RobotApp/Components/Account/Shared/ManageLayout.razor delete mode 100644 RobotApp/Components/Account/Shared/ManageNavMenu.razor create mode 100644 RobotApp/Components/Account/Shared/RedirectToLogin.razor delete mode 100644 RobotApp/Components/Account/Shared/ShowRecoveryCodes.razor delete mode 100644 RobotApp/Components/Account/Shared/StatusMessage.razor create mode 100644 RobotApp/Data/ApplicationRole.cs create mode 100644 RobotApp/libman.json diff --git a/RobotApp.Client/Layout/MainLayout.razor b/RobotApp.Client/Layout/MainLayout.razor index 78624f3..e0abdd1 100644 --- a/RobotApp.Client/Layout/MainLayout.razor +++ b/RobotApp.Client/Layout/MainLayout.razor @@ -1,23 +1,20 @@ @inherits LayoutComponentBase -
- -
-
- About -
+
+ + + + + -
- @Body -
+
+ @Body
-
- An unhandled error has occurred. - Reload - 🗙 -
+ + + + + diff --git a/RobotApp.Client/Layout/MainLayout.razor.css b/RobotApp.Client/Layout/MainLayout.razor.css index 38d1f25..784b896 100644 --- a/RobotApp.Client/Layout/MainLayout.razor.css +++ b/RobotApp.Client/Layout/MainLayout.razor.css @@ -1,98 +1,11 @@ + +.app-shell { + display: flex; + min-height: 100vh; +} + .page { - position: relative; - display: flex; - flex-direction: column; + flex: 1 1 auto; + min-width: 0; + overflow: auto; } - -main { - flex: 1; -} - -.sidebar { - background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); -} - -.top-row { - background-color: #f7f7f7; - border-bottom: 1px solid #d6d5d5; - justify-content: flex-end; - height: 3.5rem; - display: flex; - align-items: center; -} - - .top-row ::deep a, .top-row ::deep .btn-link { - white-space: nowrap; - margin-left: 1.5rem; - text-decoration: none; - } - - .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { - text-decoration: underline; - } - - .top-row ::deep a:first-child { - overflow: hidden; - text-overflow: ellipsis; - } - -@media (max-width: 640.98px) { - .top-row { - justify-content: space-between; - } - - .top-row ::deep a, .top-row ::deep .btn-link { - margin-left: 0; - } -} - -@media (min-width: 641px) { - .page { - flex-direction: row; - } - - .sidebar { - width: 250px; - height: 100vh; - position: sticky; - top: 0; - } - - .top-row { - position: sticky; - top: 0; - z-index: 1; - } - - .top-row.auth ::deep a:first-child { - flex: 1; - text-align: right; - width: 0; - } - - .top-row, article { - padding-left: 2rem !important; - padding-right: 1.5rem !important; - } -} - -#blazor-error-ui { - color-scheme: light only; - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - box-sizing: border-box; - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; -} - - #blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; - } diff --git a/RobotApp.Client/Layout/NavMenu.razor b/RobotApp.Client/Layout/NavMenu.razor index 1a00e42..cab99df 100644 --- a/RobotApp.Client/Layout/NavMenu.razor +++ b/RobotApp.Client/Layout/NavMenu.razor @@ -1,92 +1,67 @@ -@implements IDisposable + -@inject NavigationManager NavigationManager - -