Skip to content

Commit

Permalink
Move viewport config to addon folder close #124 (#125)
Browse files Browse the repository at this point in the history
  • Loading branch information
snewcomer authored Feb 14, 2018
1 parent 79cf68d commit 0c32ff7
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 44 deletions.
42 changes: 42 additions & 0 deletions addon/initializers/viewport-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { assign } from '@ember/polyfills';
import canUseDOM from 'ember-in-viewport/utils/can-use-dom';

const defaultConfig = {
viewportEnabled: true,
viewportSpy: false,
viewportScrollSensitivity: 1,
viewportRefreshRate: 100,
viewportListeners: [
{ context: window, event: 'scroll.scrollable' },
{ context: window, event: 'resize.resizable' }
],
viewportTolerance: {
top: 0,
left: 0,
bottom: 0,
right: 0
},
intersectionThreshold: 1.0,
scrollableArea: null // defaults to layout view (document.documentElement)
};

if (canUseDOM) {
defaultConfig.viewportListeners.push({
context: document,
event: 'touchmove.scrollable'
});
}

export function initialize() {
const application = arguments[1] || arguments[0];
const config = application.resolveRegistration('config:environment');
const { viewportConfig = {} } = config;
const mergedConfig = assign({}, defaultConfig, viewportConfig);

application.register('config:in-viewport', mergedConfig, { instantiate: false });
}

export default {
name: 'viewport-config',
initialize: initialize
};
42 changes: 1 addition & 41 deletions app/initializers/viewport-config.js
Original file line number Diff line number Diff line change
@@ -1,42 +1,2 @@
import { assign } from '@ember/polyfills';
import config from '../config/environment';
import canUseDOM from 'ember-in-viewport/utils/can-use-dom';
export { default, initialize } from 'ember-in-viewport/initializers/viewport-config';

const defaultConfig = {
viewportEnabled: true,
viewportSpy: false,
viewportScrollSensitivity: 1,
viewportRefreshRate: 100,
viewportListeners: [
{ context: window, event: 'scroll.scrollable' },
{ context: window, event: 'resize.resizable' }
],
viewportTolerance: {
top: 0,
left: 0,
bottom: 0,
right: 0
},
intersectionThreshold: 1.0,
scrollableArea: null // defaults to layout view (document.documentElement)
};

if (canUseDOM) {
defaultConfig.viewportListeners.push({
context: document,
event: 'touchmove.scrollable'
});
}

export function initialize() {
const application = arguments[1] || arguments[0];
const { viewportConfig = {} } = config;
const mergedConfig = assign({}, defaultConfig, viewportConfig);

application.register('config:in-viewport', mergedConfig, { instantiate: false });
}

export default {
name: 'viewport-config',
initialize: initialize
};
8 changes: 5 additions & 3 deletions tests/unit/initializers/viewport-config-test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import Ember from 'ember';
import Application from '@ember/application';
import { run } from '@ember/runloop';
import ViewportConfigInitializer from 'dummy/initializers/viewport-config';
import { module, test } from 'qunit';

Expand All @@ -8,9 +9,10 @@ let container, application;

module('Unit | Initializer | viewport config', {
beforeEach() {
Ember.run(function() {
application = Ember.Application.create();
run(function() {
application = Application.create();
container = application.__container__;
application.register('config:environment', {});
application.deferReadiness();
});
}
Expand Down

0 comments on commit 0c32ff7

Please sign in to comment.