FEATURE: add drafts dropdown menu (#30277)

This change adds a new dropdown trigger next to the "New Topic" button.
When clicked a menu will display a list of topic/post drafts that can be
clicked to resume the draft within the composer.

The "New Topic" button will no longer change text to show "Open Draft"
when a draft topic exists, it will still attempt to load the existing
draft if one exists (this will change later when we support multiple
drafts in a separate PR).

The "My Posts" link in desktop sidebar will now be "My Drafts" and only
appear when the current user has existing drafts.
This commit is contained in:
David Battersby
2025-01-13 13:33:57 +04:00
committed by GitHub
parent 0b3663a16a
commit 47c8197ea1
22 changed files with 325 additions and 155 deletions

View File

@ -0,0 +1,37 @@
# frozen_string_literal: true
module PageObjects
module Components
class DraftsMenu < PageObjects::Components::Base
MENU_SELECTOR = ".topic-drafts-menu"
def visible?
has_css?(MENU_SELECTOR + "-trigger")
end
def hidden?
has_no_css?(MENU_SELECTOR + "-trigger")
end
def open?
has_css?(MENU_SELECTOR + "-content")
end
def closed?
has_no_css?(MENU_SELECTOR + "-content")
end
def open
find(MENU_SELECTOR + "-trigger").click
end
def draft_item_count
all(MENU_SELECTOR + "-content .topic-drafts-item").size
end
def other_drafts_count
find(MENU_SELECTOR + "-content .view-all-drafts span:first-child")["data-other-drafts"].to_i
end
end
end
end