FIX: prevent multiple requests when clicking drafts trigger (#30736)

Adds a loading state to prevent multiple requests when clicking the
drafts menu button.

We are also making a very slight adjustment to button spacing (needed
for both desktop and mobile).
This commit is contained in:
David Battersby 2025-01-14 11:37:36 +04:00 committed by GitHub
parent dbc9fbfd8b
commit 33ea3599c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 8 additions and 2 deletions

View File

@ -17,6 +17,7 @@ export default class TopicDraftsDropdown extends Component {
@service composer;
@tracked drafts = [];
@tracked loading = false;
get draftCount() {
return this.currentUser.draft_count;
@ -41,6 +42,8 @@ export default class TopicDraftsDropdown extends Component {
@action
async onShowMenu() {
this.loading = true;
try {
const draftsStream = this.currentUser.userDraftsStream;
draftsStream.reset();
@ -50,6 +53,8 @@ export default class TopicDraftsDropdown extends Component {
} catch (error) {
// eslint-disable-next-line no-console
console.error("Failed to fetch drafts with error:", error);
} finally {
this.loading = false;
}
}
@ -77,6 +82,7 @@ export default class TopicDraftsDropdown extends Component {
@onShow={{this.onShowMenu}}
@onRegisterApi={{this.onRegisterApi}}
@modalForMobile={{true}}
@disabled={{this.loading}}
class="btn-small"
>
<:content>

View File

@ -59,7 +59,7 @@
> * {
white-space: nowrap;
&:not(:last-child) {
margin-right: 0.5em;
margin-right: 0.4em;
}
}
.select-kit-header {

View File

@ -1,7 +1,7 @@
// Styles for the drafts dropdown menu
.topic-drafts-menu-trigger {
margin-left: -0.4em;
margin-left: -0.3em;
}
.topic-drafts-menu-content {