From efac01d259b320272fb4f3fe86d77091c2c876e5 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Mon, 12 Jul 2021 02:48:23 +0200 Subject: [PATCH] FIX: Scroll to top on badge pages (#13694) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …so we don't end up at a random point on the page after a transition. --- .../discourse/app/routes/badges-index.js | 12 +++++++----- .../discourse/app/routes/badges-show.js | 15 +++++++++------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/discourse/app/routes/badges-index.js b/app/assets/javascripts/discourse/app/routes/badges-index.js index 63b2cac55ac..1b3b34be73c 100644 --- a/app/assets/javascripts/discourse/app/routes/badges-index.js +++ b/app/assets/javascripts/discourse/app/routes/badges-index.js @@ -2,6 +2,8 @@ import Badge from "discourse/models/badge"; import DiscourseRoute from "discourse/routes/discourse"; import I18n from "I18n"; import PreloadStore from "discourse/lib/preload-store"; +import { scrollTop } from "discourse/mixins/scroll-top"; +import { action } from "@ember/object"; export default DiscourseRoute.extend({ model() { @@ -18,10 +20,10 @@ export default DiscourseRoute.extend({ return I18n.t("badges.title"); }, - actions: { - didTransition() { - this.controllerFor("application").set("showFooter", true); - return true; - }, + @action + didTransition() { + this.controllerFor("application").set("showFooter", true); + scrollTop(); + return true; }, }); diff --git a/app/assets/javascripts/discourse/app/routes/badges-show.js b/app/assets/javascripts/discourse/app/routes/badges-show.js index 81a05ddeaa3..3cfc9dc7121 100644 --- a/app/assets/javascripts/discourse/app/routes/badges-show.js +++ b/app/assets/javascripts/discourse/app/routes/badges-show.js @@ -2,7 +2,9 @@ import Badge from "discourse/models/badge"; import DiscourseRoute from "discourse/routes/discourse"; import PreloadStore from "discourse/lib/preload-store"; import UserBadge from "discourse/models/user-badge"; +import { scrollTop } from "discourse/mixins/scroll-top"; import { hash } from "rsvp"; +import { action } from "@ember/object"; export default DiscourseRoute.extend({ queryParams: { @@ -10,12 +12,6 @@ export default DiscourseRoute.extend({ refreshModel: true, }, }, - actions: { - didTransition() { - this.controllerFor("badges/show")._showFooter(); - return true; - }, - }, serialize(model) { return model.getProperties("id", "slug"); @@ -68,4 +64,11 @@ export default DiscourseRoute.extend({ controller.set("userBadges", this.userBadgesGrant); controller.set("userBadgesAll", this.userBadgesAll); }, + + @action + didTransition() { + this.controllerFor("badges/show")._showFooter(); + scrollTop(); + return true; + }, });