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); + }, + }, + }); + } + + +} 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 @@