Skip to content

Commit 38a94de

Browse files
authored
Merge pull request #34 from lolmaus/ember-on-resize-modifier
Switch to ember-on-resize-modifier
2 parents 9118e9d + 565c6ae commit 38a94de

File tree

4 files changed

+29
-49
lines changed

4 files changed

+29
-49
lines changed

addon/-private/modifier.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import Modifier from 'ember-modifier';
2-
import { observeResize } from 'ember-resize-observer-modifier/modifiers/observe-resize';
32
import { action } from '@ember/object';
43
import window from 'ember-window-mock';
54
import { debounceTask } from 'ember-lifeline';
@@ -11,6 +10,7 @@ import {
1110
SIZES_DEFAULT,
1211
SIZES_HEIGHT_DEFAULT,
1312
} from 'ember-element-query';
13+
import { inject as service } from '@ember/service';
1414
export interface SizeObject {
1515
name: string;
1616
value: number;
@@ -19,8 +19,19 @@ export interface SizeObject {
1919

2020
export type RangeDirection = 'at' | 'from' | 'to';
2121

22+
interface ResizeObserverService {
23+
observe(element: HTMLElement, callback?: () => void): void;
24+
unobserve(element: HTMLElement, callback?: () => void): void;
25+
}
26+
2227
/** @internal */
2328
export default class ElementQueryModifier extends Modifier<ModifierArgs> {
29+
// -------------------
30+
// Services
31+
// -------------------
32+
33+
@service resizeObserver!: ResizeObserverService;
34+
2435
// -------------------
2536
// Properties
2637
// -------------------
@@ -30,7 +41,6 @@ export default class ElementQueryModifier extends Modifier<ModifierArgs> {
3041
sizesRatioDefault: Sizes = SIZES_RATIO_DEFAULT;
3142

3243
_element?: HTMLElement; // For some reason, this.element is not always available
33-
teardownResizeObserver?: () => void;
3444

3545
// -------------------
3646
// Computed properties
@@ -553,14 +563,11 @@ export default class ElementQueryModifier extends Modifier<ModifierArgs> {
553563
// -------------------
554564

555565
didInstall(): void {
556-
// @ts-ignore https://github.com/Microsoft/TypeScript/issues/28502#issuecomment-609607344
557-
if (!ResizeObserver) return;
558-
559566
if (!this.element) throw new Error('Expected this.element to be available');
560567

561568
this._element = this.element;
562569

563-
this.teardownResizeObserver = observeResize(this.element, [this.didResizeHandler]); // eslint-disable-line @typescript-eslint/unbound-method
570+
this.resizeObserver.observe(this.element, this.didResizeHandler); // eslint-disable-line @typescript-eslint/unbound-method
564571
}
565572

566573
didUpdateArguments(): void {
@@ -571,9 +578,8 @@ export default class ElementQueryModifier extends Modifier<ModifierArgs> {
571578
}
572579

573580
willRemove(): void {
574-
// @ts-ignore https://github.com/Microsoft/TypeScript/issues/28502#issuecomment-609607344
575-
if (!ResizeObserver) return;
581+
if (!this.element) throw new Error('Expected this.element to be available');
576582

577-
if (this.teardownResizeObserver) this.teardownResizeObserver();
583+
this.resizeObserver.unobserve(this.element, this.didResizeHandler); // eslint-disable-line @typescript-eslint/unbound-method
578584
}
579585
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
"ember-element-helper": "^0.5.5",
7474
"ember-lifeline": "^6.0.2",
7575
"ember-modifier": "^2.1.2",
76-
"ember-resize-observer-modifier": "^1.1.1",
76+
"ember-resize-observer-service": "^0.3.0",
7777
"ember-window-mock": "^0.7.2"
7878
},
7979
"devDependencies": {

tests/dummy/config/environment.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module.exports = function (environment) {
44
const ENV = {
55
modulePrefix: 'dummy',
66
environment,
7-
rootURL: '/ember-element-query/',
7+
rootURL: '/',
88
locationType: 'hash',
99
EmberENV: {
1010
FEATURES: {
@@ -45,6 +45,7 @@ module.exports = function (environment) {
4545

4646
if (environment === 'production') {
4747
// here you can enable a production-specific feature
48+
ENV.rootURL = '/ember-element-query/';
4849
}
4950

5051
return ENV;

yarn.lock

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3695,11 +3695,6 @@ babel-plugin-filter-imports@^4.0.0:
36953695
"@babel/types" "^7.7.2"
36963696
lodash "^4.17.15"
36973697

3698-
babel-plugin-htmlbars-inline-precompile@^4.1.0:
3699-
version "4.1.0"
3700-
resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-4.1.0.tgz#11796422e65d900a968481fa3fb37e0425c928dd"
3701-
integrity sha512-gM+UP6HO5RlGiOQzJVGRUHgAsefJeOdh5Pn+rZRS6Tr1MnEqVgTJ2G2ywnl+G+Zcuec18fz7XA+O2tHhsmct6w==
3702-
37033698
babel-plugin-htmlbars-inline-precompile@^5.0.0:
37043699
version "5.3.0"
37053700
resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-5.3.0.tgz#eeaff07c35415264aea4d6bafb5e71167f6ffb2f"
@@ -6665,7 +6660,7 @@ ember-cli-babel@^6.0.0-beta.4:
66656660
ember-cli-version-checker "^2.1.2"
66666661
semver "^5.5.0"
66676662

6668-
ember-cli-babel@^7.0.0, ember-cli-babel@^7.10.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.18.0, ember-cli-babel@^7.7.3:
6663+
ember-cli-babel@^7.0.0, ember-cli-babel@^7.10.0, ember-cli-babel@^7.13.0, ember-cli-babel@^7.7.3:
66696664
version "7.21.0"
66706665
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.21.0.tgz#c79e888876aee87dfc3260aee7cb580b74264bbc"
66716666
integrity sha512-jHVi9melAibo0DrAG3GAxid+29xEyjBoU53652B4qcu3Xp58feZGTH/JGXovH7TjvbeNn65zgNyoV3bk1onULw==
@@ -6697,7 +6692,7 @@ ember-cli-babel@^7.0.0, ember-cli-babel@^7.10.0, ember-cli-babel@^7.13.0, ember-
66976692
rimraf "^3.0.1"
66986693
semver "^5.5.0"
66996694

6700-
ember-cli-babel@^7.13.2, ember-cli-babel@^7.17.2, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.26.2, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.6:
6695+
ember-cli-babel@^7.13.2, ember-cli-babel@^7.17.2, ember-cli-babel@^7.20.5, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.26.2, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.6:
67016696
version "7.26.6"
67026697
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.6.tgz#322fbbd3baad9dd99e3276ff05bc6faef5e54b39"
67036698
integrity sha512-040svtfj2RC35j/WMwdWJFusZaXmNoytLAMyBDGLMSlRvznudTxZjGlPV6UupmtTBApy58cEF8Fq4a+COWoEmQ==
@@ -6746,7 +6741,7 @@ ember-cli-get-component-path-option@^1.0.0:
67466741
resolved "https://registry.yarnpkg.com/ember-cli-get-component-path-option/-/ember-cli-get-component-path-option-1.0.0.tgz#0d7b595559e2f9050abed804f1d8eff1b08bc771"
67476742
integrity sha1-DXtZVVni+QUKvtgE8djv8bCLx3E=
67486743

6749-
[email protected], ember-cli-htmlbars@^5.1.0, ember-cli-htmlbars@^5.3.1, ember-cli-htmlbars@^5.7.1:
6744+
[email protected], ember-cli-htmlbars@^5.1.0, ember-cli-htmlbars@^5.1.2, ember-cli-htmlbars@^5.3.1, ember-cli-htmlbars@^5.7.1:
67506745
version "5.7.1"
67516746
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-5.7.1.tgz#eb5b88c7d9083bc27665fb5447a9b7503b32ce4f"
67526747
integrity sha512-9laCgL4tSy48orNoQgQKEHp93MaqAs9ZOl7or5q+8iyGGJHW6sVXIYrVv5/5O9HfV6Ts8/pW1rSoaeKyLUE+oA==
@@ -6778,27 +6773,6 @@ ember-cli-htmlbars@^3.0.0:
67786773
json-stable-stringify "^1.0.1"
67796774
strip-bom "^3.0.0"
67806775

6781-
ember-cli-htmlbars@^5.0.0:
6782-
version "5.1.2"
6783-
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-5.1.2.tgz#b07cdb6b870bb223605dbed915c9c8d5185c53bb"
6784-
integrity sha512-//TZ3g0YYsSXylK4RhaFDDr694YOnjrO884+vzNteirYDLB9Yk0SnERlFC2qH6UKZ8koSZtdiXeEtltEqv5wew==
6785-
dependencies:
6786-
"@ember/edition-utils" "^1.2.0"
6787-
babel-plugin-htmlbars-inline-precompile "^4.1.0"
6788-
broccoli-debug "^0.6.5"
6789-
broccoli-persistent-filter "^2.3.1"
6790-
broccoli-plugin "^4.0.3"
6791-
common-tags "^1.8.0"
6792-
ember-cli-babel-plugin-helpers "^1.1.0"
6793-
fs-tree-diff "^2.0.1"
6794-
hash-for-dep "^1.5.1"
6795-
heimdalljs-logger "^0.1.10"
6796-
json-stable-stringify "^1.0.1"
6797-
semver "^7.3.2"
6798-
silent-error "^1.1.1"
6799-
strip-bom "^4.0.0"
6800-
walk-sync "^2.1.0"
6801-
68026776
ember-cli-inject-live-reload@^2.1.0:
68036777
version "2.1.0"
68046778
resolved "https://registry.yarnpkg.com/ember-cli-inject-live-reload/-/ember-cli-inject-live-reload-2.1.0.tgz#ef63c733c133024d5726405a3c247fa12e88a385"
@@ -7208,7 +7182,7 @@ ember-modifier-manager-polyfill@^1.1.0, ember-modifier-manager-polyfill@^1.2.0:
72087182
ember-cli-version-checker "^2.1.2"
72097183
ember-compatibility-helpers "^1.2.0"
72107184

7211-
ember-modifier@^2.1.0, ember-modifier@^2.1.2:
7185+
ember-modifier@^2.1.2:
72127186
version "2.1.2"
72137187
resolved "https://registry.yarnpkg.com/ember-modifier/-/ember-modifier-2.1.2.tgz#62d18faedf972dcd9d34f90d5321fbc943d139b1"
72147188
integrity sha512-3Lsu1fV1sIGa66HOW07RZc6EHISwKt5VA5AUnFss2HX6OTfpxTJ2qvPctt2Yt0XPQXJ4G6BQasr/F35CX7UGJA==
@@ -7243,14 +7217,13 @@ ember-qunit@^5.1.4:
72437217
silent-error "^1.1.1"
72447218
validate-peer-dependencies "^1.1.0"
72457219

7246-
ember-resize-observer-modifier@^1.1.1:
7247-
version "1.1.1"
7248-
resolved "https://registry.yarnpkg.com/ember-resize-observer-modifier/-/ember-resize-observer-modifier-1.1.1.tgz#848567a33901d799a6b4e5e187c1ca9574d1878c"
7249-
integrity sha512-M4XLrXw7L5AQgVM5INiENEjxHBiatHcWoOKWruuTsiyWkkIa7J5KZX44KGK3bUNmEAWHX/BAYjxGxBDP6V/loQ==
7220+
ember-resize-observer-service@^0.3.0:
7221+
version "0.3.0"
7222+
resolved "https://registry.yarnpkg.com/ember-resize-observer-service/-/ember-resize-observer-service-0.3.0.tgz#69b6e29bd6d742001ebe0ec70249f20f46fedc4a"
7223+
integrity sha512-FrKPowJ9CwLBok+WZOhudoRXPg9xHArpotMdZ2FyztcBHIb8D1mVB6ELLw62KGa62Wf7RoRhfmkloZax/5WHwg==
72507224
dependencies:
7251-
ember-cli-babel "^7.18.0"
7252-
ember-cli-htmlbars "^5.0.0"
7253-
ember-modifier "^2.1.0"
7225+
ember-cli-babel "^7.20.5"
7226+
ember-cli-htmlbars "^5.1.2"
72547227

72557228
ember-resolver@^8.0.2:
72567229
version "8.0.2"
@@ -15195,7 +15168,7 @@ walk-sync@^1.0.0, walk-sync@^1.1.3:
1519515168
ensure-posix-path "^1.1.0"
1519615169
matcher-collection "^1.1.1"
1519715170

15198-
walk-sync@^2.0.0, walk-sync@^2.0.2, walk-sync@^2.1.0:
15171+
walk-sync@^2.0.0, walk-sync@^2.0.2:
1519915172
version "2.1.0"
1520015173
resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.1.0.tgz#e214248e5f5cf497ddd87db5a2a02e47e29c6501"
1520115174
integrity sha512-KpH9Xw64LNSx7/UI+3guRZvJWlDxVA4+KKb/4puRoVrG8GkvZRxnF3vhxdjgpoKJGL2TVg1OrtkXIE/VuGPLHQ==

0 commit comments

Comments
 (0)