UNPKG

shopperman

Version:

shopping cart ui for shopify stores

62 lines 2.52 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); var mobx_1 = require("mobx"); var toolbox_1 = require("../toolbox"); var scrollEvents = ["scroll", "resize"]; var ScrollTracker = /** @class */ (function () { function ScrollTracker() { var _this = this; this.scroll = 0; this.tracking = false; this.handleScrollUpdate = function () { _this.updateScroll(); }; } ScrollTracker.prototype.updateScroll = function () { if (this.tracking) { var scroll_1 = toolbox_1.getScrollTop(); this.setScroll(scroll_1); } }; ScrollTracker.prototype.setScroll = function (scroll) { this.scroll = scroll; }; ScrollTracker.prototype.setTracking = function (tracking) { this.tracking = tracking; this.updateScroll(); }; ScrollTracker.prototype.mount = function () { for (var _i = 0, scrollEvents_1 = scrollEvents; _i < scrollEvents_1.length; _i++) { var event_1 = scrollEvents_1[_i]; window.addEventListener(event_1, this.handleScrollUpdate); } this.handleScrollUpdate(); }; ScrollTracker.prototype.unmount = function () { for (var _i = 0, scrollEvents_2 = scrollEvents; _i < scrollEvents_2.length; _i++) { var event_2 = scrollEvents_2[_i]; window.removeEventListener(event_2, this.handleScrollUpdate); } }; __decorate([ mobx_1.observable ], ScrollTracker.prototype, "scroll", void 0); __decorate([ mobx_1.observable ], ScrollTracker.prototype, "tracking", void 0); __decorate([ mobx_1.action ], ScrollTracker.prototype, "setScroll", null); __decorate([ mobx_1.action ], ScrollTracker.prototype, "setTracking", null); return ScrollTracker; }()); exports.ScrollTracker = ScrollTracker; //# sourceMappingURL=scroll-tracker.js.map