diff --git a/app/assets/javascripts/discourse/app/components/ignored-user-list.gjs b/app/assets/javascripts/discourse/app/components/ignored-user-list.gjs
new file mode 100644
index 00000000000..74e205e8c98
--- /dev/null
+++ b/app/assets/javascripts/discourse/app/components/ignored-user-list.gjs
@@ -0,0 +1,65 @@
+import Component from "@glimmer/component";
+import { action } from "@ember/object";
+import { service } from "@ember/service";
+import DButton from "discourse/components/d-button";
+import { popupAjaxError } from "discourse/lib/ajax-error";
+import User from "discourse/models/user";
+import i18n from "discourse-common/helpers/i18n";
+import IgnoredUserListItem from "./ignored-user-list-item";
+import IgnoreDurationModal from "./modal/ignore-duration-with-username";
+
+export default class IgnoredUserList extends Component {
+ @service modal;
+
+ @action
+ async removeIgnoredUser(item) {
+ this.args.items.removeObject(item);
+
+ try {
+ const user = await User.findByUsername(item);
+ await user.updateNotificationLevel({
+ level: "normal",
+ actingUser: this.args.model,
+ });
+ } catch (e) {
+ popupAjaxError(e);
+ }
+ }
+
+ @action
+ newIgnoredUser() {
+ this.modal.show(IgnoreDurationModal, {
+ model: {
+ actingUser: this.args.model,
+ ignoredUsername: null,
+ onUserIgnored: (username) => {
+ this.args.items.addObject(username);
+ },
+ },
+ });
+ }
+
+
+
+
+ {{#each @items as |item|}}
+
+ {{else}}
+ {{i18n "user.user_notifications.ignore_no_users"}}
+ {{/each}}
+
+
{{i18n "user.ignored_users_instructions"}}
+
+
+
+
+
+}
diff --git a/app/assets/javascripts/discourse/app/components/ignored-user-list.hbs b/app/assets/javascripts/discourse/app/components/ignored-user-list.hbs
deleted file mode 100644
index 8c5c9f2b39c..00000000000
--- a/app/assets/javascripts/discourse/app/components/ignored-user-list.hbs
+++ /dev/null
@@ -1,17 +0,0 @@
-
- {{#each this.items as |item|}}
-
- {{else}}
- {{i18n "user.user_notifications.ignore_no_users"}}
- {{/each}}
-
-{{i18n "user.ignored_users_instructions"}}
-
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/app/components/ignored-user-list.js b/app/assets/javascripts/discourse/app/components/ignored-user-list.js
deleted file mode 100644
index 9b1c2022e26..00000000000
--- a/app/assets/javascripts/discourse/app/components/ignored-user-list.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import Component from "@ember/component";
-import { service } from "@ember/service";
-import { popupAjaxError } from "discourse/lib/ajax-error";
-import User from "discourse/models/user";
-import IgnoreDurationModal from "./modal/ignore-duration-with-username";
-
-export default Component.extend({
- modal: service(),
- item: null,
- actions: {
- removeIgnoredUser(item) {
- this.set("saved", false);
- this.items.removeObject(item);
- User.findByUsername(item).then((user) => {
- user
- .updateNotificationLevel({
- level: "normal",
- actingUser: this.model,
- })
- .catch(popupAjaxError)
- .finally(() => this.set("saved", true));
- });
- },
- newIgnoredUser() {
- this.modal.show(IgnoreDurationModal, {
- model: {
- actingUser: this.model,
- ignoredUsername: null,
- onUserIgnored: (username) => {
- this.items.addObject(username);
- },
- },
- });
- },
- },
-});
diff --git a/app/assets/javascripts/discourse/app/templates/preferences/users.hbs b/app/assets/javascripts/discourse/app/templates/preferences/users.hbs
index 37d39f3f93e..1206dbb69bb 100644
--- a/app/assets/javascripts/discourse/app/templates/preferences/users.hbs
+++ b/app/assets/javascripts/discourse/app/templates/preferences/users.hbs
@@ -8,7 +8,6 @@