From 47b8e98cf721b011e50c452f6ee1ce8d0e82b22c Mon Sep 17 00:00:00 2001 From: Kris <kris.aubuchon@discourse.org> Date: Thu, 29 Feb 2024 13:55:13 -0500 Subject: [PATCH] UX: enable badge title on mobile, style cleanup (#25968) --- .../discourse/app/components/badge-title.hbs | 60 ++++++++++--------- .../discourse/app/templates/badges/show.hbs | 8 +-- .../stylesheets/common/base/user-badges.scss | 41 +++++++++---- app/assets/stylesheets/mobile/_index.scss | 1 - .../stylesheets/mobile/user-badges.scss | 7 --- 5 files changed, 64 insertions(+), 53 deletions(-) delete mode 100644 app/assets/stylesheets/mobile/user-badges.scss diff --git a/app/assets/javascripts/discourse/app/components/badge-title.hbs b/app/assets/javascripts/discourse/app/components/badge-title.hbs index e125e591d3a..0a94afcb09a 100644 --- a/app/assets/javascripts/discourse/app/components/badge-title.hbs +++ b/app/assets/javascripts/discourse/app/components/badge-title.hbs @@ -1,36 +1,38 @@ <div class="badge-title"> - <section class="user-content" id="user-content"> - <form class="form-horizontal"> - <div class="control-group"> - <div class="controls"> - <h3>{{i18n "badges.select_badge_for_title"}}</h3> - </div> - </div> + <form class="form-horizontal"> - <div class="control-group"> - <div class="controls"> - <ComboBox - @value={{this._selectedUserBadgeId}} - @nameProperty="badge.name" - @content={{this.selectableUserBadges}} - @onChange={{action (mut this._selectedUserBadgeId)}} - /> - </div> - </div> + <h3>{{i18n "badges.select_badge_for_title"}}</h3> - <div class="control-group"> - <div class="controls"> + <div class="control-group"> + <div class="controls"> + <ComboBox + @value={{this._selectedUserBadgeId}} + @nameProperty="badge.name" + @content={{this.selectableUserBadges}} + @onChange={{action (mut this._selectedUserBadgeId)}} + /> + </div> + </div> + + <div class="control-group"> + <div class="controls"> + <DButton + @action={{this.saveBadgeTitle}} + @disabled={{this._isSaving}} + @label={{if this._isSaving "saving" "save"}} + class="btn-primary" + /> + {{#if this.closeAction}} <DButton - @action={{this.saveBadgeTitle}} - @disabled={{this._isSaving}} - @label={{if this._isSaving "saving" "save"}} - class="btn-primary" + @action={{this.closeAction}} + @label="close" + class="btn-default close-btn" /> - {{#if this._isSaved}} - <span>{{i18n "saved"}}</span> - {{/if}} - </div> + {{/if}} + {{#if this._isSaved}} + <span role="status" class="badge-title__saved">{{i18n "saved"}}</span> + {{/if}} </div> - </form> - </section> + </div> + </form> </div> \ No newline at end of file diff --git a/app/assets/javascripts/discourse/app/templates/badges/show.hbs b/app/assets/javascripts/discourse/app/templates/badges/show.hbs index d84e3eb9444..ff782afe480 100644 --- a/app/assets/javascripts/discourse/app/templates/badges/show.hbs +++ b/app/assets/javascripts/discourse/app/templates/badges/show.hbs @@ -37,11 +37,9 @@ {{#if this.canSelectTitle}} <div class="badge-set-title {{if this.hiddenSetTitle 'hidden' ''}}"> - <BadgeTitle @selectableUserBadges={{this.selectableUserBadges}} /> - <DButton - @action={{this.toggleSetUserTitle}} - @label="close" - class="btn-default close-btn" + <BadgeTitle + @selectableUserBadges={{this.selectableUserBadges}} + @closeAction={{this.toggleSetUserTitle}} /> </div> {{/if}} diff --git a/app/assets/stylesheets/common/base/user-badges.scss b/app/assets/stylesheets/common/base/user-badges.scss index 22e7de70a59..b62422dc3aa 100644 --- a/app/assets/stylesheets/common/base/user-badges.scss +++ b/app/assets/stylesheets/common/base/user-badges.scss @@ -216,7 +216,6 @@ @media screen and (min-width: 767px) { max-width: calc(var(--d-max-width) / 2); - margin-right: 1.5em; } .badge-contents { @@ -269,6 +268,7 @@ flex-direction: row; margin-bottom: 2em; margin-top: 1em; + gap: 1em; .badge-grant-info { &.hidden { @@ -285,23 +285,42 @@ } .badge-set-title { + flex: 0 1 auto; padding: 1.5em; border: 1px solid var(--primary-low); - .user-content { - padding: 0; - .control-group { - margin-bottom: 1em; + .badge-title { + height: 100%; + &__saved { + color: var(--success); } } - } - .badge-title .form-horizontal .controls { - margin-left: 0; - } + .control-group:last-child { + margin: auto 0 0; + } - .form-horizontal { - margin-bottom: 0; + .form-horizontal { + display: flex; + flex-direction: column; + height: 100%; + margin: 0; + } + + .controls { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 0.5em; + margin: 0; + button:last-of-type { + margin-right: auto; + } + } + + .combobox { + width: 100%; + } } } diff --git a/app/assets/stylesheets/mobile/_index.scss b/app/assets/stylesheets/mobile/_index.scss index a1ef8b22272..4bcc0ad0c35 100644 --- a/app/assets/stylesheets/mobile/_index.scss +++ b/app/assets/stylesheets/mobile/_index.scss @@ -33,5 +33,4 @@ @import "topic-post"; @import "topic"; @import "upload"; -@import "user-badges"; @import "user"; diff --git a/app/assets/stylesheets/mobile/user-badges.scss b/app/assets/stylesheets/mobile/user-badges.scss deleted file mode 100644 index dc43af5b038..00000000000 --- a/app/assets/stylesheets/mobile/user-badges.scss +++ /dev/null @@ -1,7 +0,0 @@ -.show-badge-details { - margin-bottom: 1em; - - .badge-grant-info { - display: none; - } -}