DEV: Update composer-fullscreen-prompt to template-only component ()

1. Replace `{{did-insert` with the builtin `{{on` modifier
2. Move the i18n call into the template

With both of those changes, there is no logic left in the backing class, so we can switch to `templateOnly()` which is significantly faster. (granted, not a big deal for a component like this, but it makes for a good demonstration)
This commit is contained in:
David Taylor 2022-08-12 03:43:38 +01:00 committed by GitHub
parent 06030743e8
commit e4fbb3be21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 25 deletions
app/assets/javascripts
admin/addon/templates/components
discourse/app/components

@ -1,3 +1,3 @@
<div class="composer-fullscreen-prompt" {{did-insert this.registerAnimationListener}}>
{{html-safe this.exitPrompt}}
<div class="composer-fullscreen-prompt" {{on "animationend" @removeFullScreenExitPrompt}}>
{{html-safe (i18n "composer.exit_fullscreen_prompt")}}
</div>

@ -1,24 +1,3 @@
import { action } from "@ember/object";
import GlimmerComponent from "@glimmer/component";
import I18n from "I18n";
import templateOnly from "@ember/component/template-only";
export default class ComposerFullscreenPrompt extends GlimmerComponent {
@action
registerAnimationListener(element) {
this.#addAnimationEventListener(element);
}
#addAnimationEventListener(element) {
element.addEventListener(
"animationend",
() => {
this.args.removeFullScreenExitPrompt();
},
{ once: true }
);
}
get exitPrompt() {
return I18n.t("composer.exit_fullscreen_prompt");
}
}
export default templateOnly();