fix(admin): products canDeactivate guard, unblock npm, drop dead deps
RC-01 Phase 1 mechanical fixes (verified against current repo state, not blindly reapplied from TODO.md): - admin/products create/edit/duplicate now protected by an unsaved- changes guard (adminProductDirtyGuard), mirroring the existing categories pattern. AdminProductsFacade had zero dirty-tracking before this - added a dirty signal, set true on updateDraft(), cleared on load/create/successful save. Added confirmLeaveUnsaved to the adminProducts i18n section (en/ru/hy) - categories already had its own copy of this key, products didn't. - barry-cache bumped ^0.1.0 -> ^0.9.3 (the pinned range no longer resolved on the registry - ETARGET - which had been silently blocking every npm install/uninstall all cycle). - Removed primeng/primeicons (npm uninstall, now unblocked) - the only consumer (items-carousel) was already deleted in RC PERF-01. - Removed core/search/services/search-history.service.ts, a dead 1-line re-export with zero importers (verified: the real implementation is features/search/services/search-history.service.ts, used by search.facade.ts). Left core/search/models/* alone - those ARE live, imported by catalog components. Verified before touching: HeaderConfig.showProfile toggle is already removed from the header-section editor template (TODO.md was stale on this one) - no change needed, will correct the tracking doc separately. tsc --noEmit clean, npm run build green (bundle unchanged, primeng was already tree-shaken out, this just removes the dead dependency declaration itself). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import { projectEditorDirtyGuard } from './features/project-editor/guards/projec
|
||||
import { adminAuthGuard } from './core/admin-auth/admin-auth.guard';
|
||||
import { authRoutes } from './core/auth/auth.routes';
|
||||
import { adminCategoryDirtyGuard } from './features/admin/categories/guards/admin-category-dirty.guard';
|
||||
import { adminProductDirtyGuard } from './features/admin/products/guards/admin-product-dirty.guard';
|
||||
import { AdminLayoutComponent } from './features/admin/shell/admin-layout.component';
|
||||
import { environment } from '../environments/environment';
|
||||
|
||||
@@ -82,6 +83,7 @@ const coreRoutes: Routes = [
|
||||
{
|
||||
path: 'products/create',
|
||||
loadComponent: () => import('./features/admin/products/pages/admin-product-editor-page.component').then(m => m.AdminProductEditorPageComponent),
|
||||
canDeactivate: [adminProductDirtyGuard],
|
||||
data: {
|
||||
titleKey: 'adminShell.pages.productCreate.title',
|
||||
descriptionKey: 'adminShell.pages.productCreate.description',
|
||||
@@ -91,6 +93,7 @@ const coreRoutes: Routes = [
|
||||
{
|
||||
path: 'products/:id/edit',
|
||||
loadComponent: () => import('./features/admin/products/pages/admin-product-editor-page.component').then(m => m.AdminProductEditorPageComponent),
|
||||
canDeactivate: [adminProductDirtyGuard],
|
||||
data: {
|
||||
titleKey: 'adminShell.pages.productEdit.title',
|
||||
descriptionKey: 'adminShell.pages.productEdit.description',
|
||||
@@ -100,6 +103,7 @@ const coreRoutes: Routes = [
|
||||
{
|
||||
path: 'products/:id/duplicate',
|
||||
loadComponent: () => import('./features/admin/products/pages/admin-product-editor-page.component').then(m => m.AdminProductEditorPageComponent),
|
||||
canDeactivate: [adminProductDirtyGuard],
|
||||
data: {
|
||||
titleKey: 'adminShell.pages.productDuplicate.title',
|
||||
descriptionKey: 'adminShell.pages.productDuplicate.description',
|
||||
|
||||
Reference in New Issue
Block a user