feat(admin): build shared admin shell
Sidebar (Dashboard/Catalog group/Products/Categories/Orders/Transactions/ Reviews/Reports/Content/Media/Marketplace Builder/Users/Settings/ Monitoring/Analytics + Documentation/Help/Logout), sticky topbar (breadcrumbs, page title/description, search, notifications, tenant selector and quick-publish placeholders, current user), reserved right-rail slot, scrollable content area. Desktop 280px sidebar, tablet icon rail, mobile drawer with focus management and Escape-to-close. Nav items without a built page (Reviews, Reports, Settings, Docs, Help) render disabled with a coming-soon badge instead of dead links; Content and Marketplace Builder route to the existing project-editor pages (static-pages / general) rather than duplicating them. All 15 /backoffice/** routes now render through AdminLayoutComponent; the public storefront header/back-button/footer no longer render on admin routes (app.ts/app.html gate on a new isAdminRoute signal). Added the adminShell i18n namespace (ru/en/hy) for every new shell string so this doesn't add to the existing untranslated-admin-UI gap tracked in KNOWN-ISSUES.md. Colors/type sizes follow DESIGN.md tokens; the two rgba() modal-scrim values are a documented, intentional exception (neutral overlay, not a themed token). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,7 @@ import { TelegramLoginComponent } from './components/telegram-login/telegram-log
|
||||
export class App implements OnInit {
|
||||
protected title = '';
|
||||
isHomePage = signal(true);
|
||||
isAdminRoute = signal(false);
|
||||
checkingServer = signal(true);
|
||||
serverAvailable = signal(false);
|
||||
|
||||
@@ -62,6 +63,9 @@ export class App implements OnInit {
|
||||
const url = navEnd.urlAfterRedirects || navEnd.url;
|
||||
// Home pages: /ru, /en, /hy (with or without trailing slash)
|
||||
this.isHomePage.set(/^\/[a-z]{2}\/?$/.test(url) || url === '/' || url === '');
|
||||
// Admin backoffice owns its own shell (AdminLayoutComponent) - the
|
||||
// storefront header/back-button/footer never render there.
|
||||
this.isAdminRoute.set(/^\/[a-z]{2}\/backoffice(\/|$|\?)/.test(url));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user