From 7e61645b8210b4531cf3ad025bc582b0a45074b1 Mon Sep 17 00:00:00 2001 From: Jason Aden Date: Mon, 20 Aug 2018 12:03:51 -0700 Subject: [PATCH] fix(router): default scroll position restoration to disabled (#25586) Fixes #25145 FW-305 #resolve PR Close #25586 --- packages/router/src/router_scroller.ts | 6 +++++- packages/router/test/router_scroller.spec.ts | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/router/src/router_scroller.ts b/packages/router/src/router_scroller.ts index 15a2393265..fa2821b5ee 100644 --- a/packages/router/src/router_scroller.ts +++ b/packages/router/src/router_scroller.ts @@ -29,7 +29,11 @@ export class RouterScroller implements OnDestroy { /** @docsNotRequired */ public readonly viewportScroller: ViewportScroller, private options: { scrollPositionRestoration?: 'disabled' | 'enabled' | 'top', anchorScrolling?: 'disabled'|'enabled' - } = {}) {} + } = {}) { + // Default both options to 'disabled' + options.scrollPositionRestoration = options.scrollPositionRestoration || 'disabled'; + options.anchorScrolling = options.anchorScrolling || 'disabled'; + } init(): void { // we want to disable the automatic scrolling because having two places diff --git a/packages/router/test/router_scroller.spec.ts b/packages/router/test/router_scroller.spec.ts index b5565f65f2..64caa839f8 100644 --- a/packages/router/test/router_scroller.spec.ts +++ b/packages/router/test/router_scroller.spec.ts @@ -15,6 +15,24 @@ import {Scroll} from '../src/events'; import {RouterScroller} from '../src/router_scroller'; describe('RouterScroller', () => { + it('defaults to disabled', () => { + const events = new Subject(); + const router = { + events, + parseUrl: (url: any) => new DefaultUrlSerializer().parse(url), + triggerEvent: (e: any) => events.next(e) + }; + + const viewportScroller = jasmine.createSpyObj( + 'viewportScroller', + ['getScrollPosition', 'scrollToPosition', 'scrollToAnchor', 'setHistoryScrollRestoration']); + setScroll(viewportScroller, 0, 0); + const scroller = new RouterScroller(router, router); + + expect((scroller as any).options.scrollPositionRestoration).toBe('disabled'); + expect((scroller as any).options.anchorScrolling).toBe('disabled'); + }); + describe('scroll to top', () => { it('should scroll to the top', () => { const {events, viewportScroller} =