Skip to content

Commit 646d736

Browse files
AndreasGassmannmanucorporat
authored andcommitted
fix(navcontrollerbase): popToRoot should not remove root view
1 parent 7aa07b0 commit 646d736

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/navigation/nav-controller-base.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ export class NavControllerBase extends Ion implements NavController {
331331
if (ti.removeCount < 0) {
332332
ti.removeCount = (viewsLength - ti.removeStart);
333333
}
334-
ti.leavingRequiresTransition = ((ti.removeStart + ti.removeCount) === viewsLength);
334+
ti.leavingRequiresTransition = (ti.removeCount > 0) && ((ti.removeStart + ti.removeCount) === viewsLength);
335335
}
336336

337337
if (ti.insertViews) {

src/navigation/test/nav-controller.spec.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,25 @@ describe('NavController', () => {
622622
});
623623
}, 10000);
624624

625+
it('should not pop first view if it\'s the only view', (done: Function) => {
626+
let view1 = mockView(MockView1);
627+
mockViews(nav, [view1]);
628+
629+
nav.popToRoot(null, trnsDone).then(() => {
630+
let hasCompleted = true;
631+
let requiresTransition = false;
632+
expect(trnsDone).toHaveBeenCalledWith(
633+
hasCompleted, requiresTransition, undefined, undefined, undefined
634+
);
635+
expect(nav.length()).toEqual(1);
636+
expect(nav.getByIndex(0).component).toEqual(MockView1);
637+
done();
638+
}).catch((err: Error) => {
639+
fail(err);
640+
done(err);
641+
});
642+
}, 10000);
643+
625644
});
626645

627646
describe('remove', () => {

0 commit comments

Comments
 (0)