From 7831cb2c37d1584eae564b22e85b27711149eb91 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 16 Feb 2018 16:14:20 -0800 Subject: [PATCH] Makes Scrollspy SSR compatible #5 --- src/Scrollspy.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Scrollspy.js b/src/Scrollspy.js index 2c86024..0a81396 100644 --- a/src/Scrollspy.js +++ b/src/Scrollspy.js @@ -1,6 +1,6 @@ 'use strict'; -import core from 'metal'; +import {core, isServerSide} from 'metal'; import dom from 'metal-dom'; import Position from 'metal-position'; import State from 'metal-state'; @@ -15,6 +15,10 @@ class Scrollspy extends State { constructor(opt_config) { super(opt_config); + if (isServerSide()) { + return; + } + /** * Holds the regions cache. * @type {!Array} @@ -37,6 +41,10 @@ class Scrollspy extends State { * @inheritDoc */ disposeInternal() { + if (isServerSide()) { + return; + } + this.deactivateAll(); this.scrollHandle_.dispose(); super.disposeInternal(); @@ -255,7 +263,13 @@ Scrollspy.STATE = { */ scrollElement: { setter: dom.toElement, - value: document + valueFn: function() { + if (isServerSide()) { + return; + } + + return document; + } }, /**