diff --git a/app/components/forum/forum-post-new.hbs b/app/components/forum/forum-post-new.hbs index 958ed41b4..982bee4dc 100644 --- a/app/components/forum/forum-post-new.hbs +++ b/app/components/forum/forum-post-new.hbs @@ -6,4 +6,4 @@ Annuleren Opslaan - \ No newline at end of file + diff --git a/app/components/forum/forum-post-new.js b/app/components/forum/forum-post-new.js index bf7f4935a..f6b0927c1 100644 --- a/app/components/forum/forum-post-new.js +++ b/app/components/forum/forum-post-new.js @@ -1,12 +1,24 @@ +// app/components/forum/forum-post-new.js import { inject as service } from '@ember/service'; import Component from '@glimmer/component'; import { action } from '@ember/object'; +import { tracked } from '@glimmer/tracking'; +import { modifier } from 'ember-apply'; // Import modifier for Glimmer components lifecycle -// todo: incorporate the model-save-util into components? export default class ForumPostNewComponent extends Component { @service store; @service flashNotice; + @tracked focusInTextArea = false; + + constructor() { + super(...arguments); + // Bind functions if using them as direct event handlers via modifiers + this.handleFocusIn = this.handleFocusIn.bind(this); + this.handleFocusOut = this.handleFocusOut.bind(this); + this.handleKeyDown = this.handleKeyDown.bind(this); + } + get content() { return this.args.content; } @@ -15,6 +27,48 @@ export default class ForumPostNewComponent extends Component { this.args.setContent(content); } + // Modifier to attach and remove event listeners + // This ensures listeners are correctly managed with component lifecycle + @modifier + setupTextAreaListeners(element) { + // element will be the