Skip to content

Commit 508ee6c

Browse files
committed
use modifier
1 parent 62ee436 commit 508ee6c

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

app/assets/javascripts/admin/addon/components/changes-banner.gjs

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
import Component from "@glimmer/component";
22
import { tracked } from "@glimmer/tracking";
33
import { action } from "@ember/object";
4-
import didInsert from "@ember/render-modifiers/modifiers/did-insert";
5-
import willDestroy from "@ember/render-modifiers/modifiers/will-destroy";
4+
import { modifier } from "ember-modifier";
65
import DButton from "discourse/components/d-button";
76
import htmlSafe from "discourse/helpers/html-safe";
87

98
export default class ChangesBanner extends Component {
109
@tracked isSaving = false;
11-
_resizer = null;
10+
11+
resizerModifier = modifier((element) => {
12+
const container = document.getElementById("main-container");
13+
const resizer = () => this.positionBanner(container, element);
14+
resizer();
15+
16+
window.addEventListener("resize", resizer);
17+
return () => window.removeEventListener("resize", resizer);
18+
});
1219

1320
@action
1421
async save() {
@@ -21,21 +28,6 @@ export default class ChangesBanner extends Component {
2128
}
2229
}
2330

24-
@action
25-
setupResizeObserver(element) {
26-
const container = document.getElementById("main-container");
27-
this._resizer = () => this.positionBanner(container, element);
28-
29-
this._resizer();
30-
31-
this._resizeObserver = window.addEventListener("resize", this._resizer);
32-
}
33-
34-
@action
35-
teardownResizeObserver() {
36-
window.removeEventListener("resize", this._resizer);
37-
}
38-
3931
positionBanner(container, element) {
4032
if (container) {
4133
const { width } = container.getBoundingClientRect();
@@ -45,11 +37,7 @@ export default class ChangesBanner extends Component {
4537
}
4638

4739
<template>
48-
<div
49-
class="admin-changes-banner"
50-
{{didInsert this.setupResizeObserver}}
51-
{{willDestroy this.teardownResizeObserver}}
52-
>
40+
<div class="admin-changes-banner" {{this.resizerModifier}}>
5341
<span class="admin-changes-banner__main-label">{{htmlSafe
5442
@bannerLabel
5543
}}</span>

0 commit comments

Comments
 (0)