From b962f28edc2a0a31298896a295d7381d9811d733 Mon Sep 17 00:00:00 2001 From: Shivangi Shree Date: Fri, 24 Jul 2026 11:20:44 +0530 Subject: [PATCH] [ACS-9583] Strip details segment from url (#5294) * [ACS-9583] Fix the routing to viewer * [ACS-9583] Splice all segments after details * [ACS-9583] Fix unit test --- .../src/lib/store/effects/viewer.effects.spec.ts | 9 +++++++++ .../aca-content/src/lib/store/effects/viewer.effects.ts | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/projects/aca-content/src/lib/store/effects/viewer.effects.spec.ts b/projects/aca-content/src/lib/store/effects/viewer.effects.spec.ts index bd341c925..e37cfc112 100644 --- a/projects/aca-content/src/lib/store/effects/viewer.effects.spec.ts +++ b/projects/aca-content/src/lib/store/effects/viewer.effects.spec.ts @@ -89,5 +89,14 @@ describe('ViewerEffects', () => { expect(router.navigateByUrl['calls'].argsFor(0)[0].toString()).toEqual('/view/(viewer:nodeId)?path=absolute-path'); })); + + it('should navigate to the parent route and preserve the original location when opening the viewer', fakeAsync(() => { + store.dispatch(new ViewNodeAction('nodeId', { location: 'personal-files/details/abc123/permissions' })); + tick(100); + + expect(router.navigateByUrl['calls'].argsFor(0)[0].toString()).toEqual( + '/personal-files/(viewer:view/nodeId)?location=personal-files%2Fdetails%2Fabc123%2Fpermissions' + ); + })); }); }); diff --git a/projects/aca-content/src/lib/store/effects/viewer.effects.ts b/projects/aca-content/src/lib/store/effects/viewer.effects.ts index 472c58159..8ce9a85c3 100644 --- a/projects/aca-content/src/lib/store/effects/viewer.effects.ts +++ b/projects/aca-content/src/lib/store/effects/viewer.effects.ts @@ -215,6 +215,11 @@ export class ViewerEffects { const urlSegments: UrlSegment[] = urlSegmentGroup.segments; + const detailsIndex = urlSegments.findIndex((segment) => segment.path === 'details'); + if (detailsIndex > -1) { + urlSegments.splice(detailsIndex); + } + return urlSegments.reduce(function (acc, item) { acc.push(item.path, item.parameters); return acc;