diff --git a/app/assets/javascripts/discourse/app/components/user-menu/bookmark-item.js b/app/assets/javascripts/discourse/app/components/user-menu/bookmark-item.js new file mode 100644 index 00000000000..4c0d2583eb2 --- /dev/null +++ b/app/assets/javascripts/discourse/app/components/user-menu/bookmark-item.js @@ -0,0 +1,36 @@ +import UserMenuItem from "discourse/components/user-menu/menu-item"; +import { NO_REMINDER_ICON } from "discourse/models/bookmark"; + +export default class UserMenuBookmarkItem extends UserMenuItem { + get className() { + return "bookmark"; + } + + get linkHref() { + return this.bookmark.bookmarkable_url; + } + + get linkTitle() { + return this.bookmark.name; + } + + get icon() { + return NO_REMINDER_ICON; + } + + get label() { + return this.bookmark.user?.username; + } + + get description() { + return this.bookmark.title; + } + + get topicId() { + return this.bookmark.topic_id; + } + + get bookmark() { + return this.args.item; + } +} diff --git a/app/assets/javascripts/discourse/app/components/user-menu/bookmark-notification-item.hbs b/app/assets/javascripts/discourse/app/components/user-menu/bookmark-notification-item.hbs new file mode 100644 index 00000000000..e0829c1c076 --- /dev/null +++ b/app/assets/javascripts/discourse/app/components/user-menu/bookmark-notification-item.hbs @@ -0,0 +1 @@ +{{component this.component item=@item}} diff --git a/app/assets/javascripts/discourse/app/components/user-menu/bookmark-notification-item.js b/app/assets/javascripts/discourse/app/components/user-menu/bookmark-notification-item.js new file mode 100644 index 00000000000..58dc4c66739 --- /dev/null +++ b/app/assets/javascripts/discourse/app/components/user-menu/bookmark-notification-item.js @@ -0,0 +1,12 @@ +import GlimmerComponent from "discourse/components/glimmer"; +import Notification from "discourse/models/notification"; + +export default class UserMenuBookmarkNotificationItem extends GlimmerComponent { + get component() { + if (this.args.item.constructor === Notification) { + return "user-menu/notification-item"; + } else { + return "user-menu/bookmark-item"; + } + } +} diff --git a/app/assets/javascripts/discourse/app/components/user-menu/bookmarks-list-empty-state.hbs b/app/assets/javascripts/discourse/app/components/user-menu/bookmarks-list-empty-state.hbs new file mode 100644 index 00000000000..6e4528e070f --- /dev/null +++ b/app/assets/javascripts/discourse/app/components/user-menu/bookmarks-list-empty-state.hbs @@ -0,0 +1,10 @@ +
+ {{html-safe (i18n "user.no_bookmarks_body" icon=(d-icon "bookmark"))}} +
+