From 6c2717eda04885ca54a5836eb55c271548067e1e Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Mon, 30 Mar 2020 17:59:25 +0200 Subject: [PATCH] UX: ensures esc key is correctly working when in dates form (#9299) 1 esc close modal focus date button in toolbar 2 esc reduces composer --- .../discourse-local-dates-create-modal.js.es6 | 21 +++++++++++++++++++ .../discourse-local-dates-create-form.hbs | 1 + 2 files changed, 22 insertions(+) create mode 100644 plugins/discourse-local-dates/assets/javascripts/discourse/controllers/discourse-local-dates-create-modal.js.es6 diff --git a/plugins/discourse-local-dates/assets/javascripts/discourse/controllers/discourse-local-dates-create-modal.js.es6 b/plugins/discourse-local-dates/assets/javascripts/discourse/controllers/discourse-local-dates-create-modal.js.es6 new file mode 100644 index 00000000000..103ac02adcd --- /dev/null +++ b/plugins/discourse-local-dates/assets/javascripts/discourse/controllers/discourse-local-dates-create-modal.js.es6 @@ -0,0 +1,21 @@ +import Controller from "@ember/controller"; +import ModalFunctionality from "discourse/mixins/modal-functionality"; +import { schedule } from "@ember/runloop"; + +export default Controller.extend(ModalFunctionality, { + onShow() { + schedule("afterRender", () => { + const fromButton = document.getElementById("from-date-time"); + fromButton && fromButton.focus(); + }); + }, + + onClose() { + schedule("afterRender", () => { + const localDatesBtn = document.querySelector( + ".d-editor-button-bar .local-dates.btn" + ); + localDatesBtn && localDatesBtn.focus(); + }); + } +}); diff --git a/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs b/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs index 30bc69e34dc..92adae679a2 100644 --- a/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs +++ b/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs @@ -23,6 +23,7 @@
{{d-icon "calendar-alt"}} {{d-button + id="from-date-time" action=(action "focusFrom") translatedLabel=formattedFrom class="date-time"}}