DEV: Ship first pass of new user page navigation behind feature flag (#18285)

This commits introduces a new SiteSetting.enable_new_user_profile_nav_groups
feature flag. When configured, users of the configured groups will see
the new user page navigation links.

As of this commit, only the user activity navigation link has been
converted to the newly proposed dropdown of navigation links.

Mobile support has not been considered.
This commit is contained in:
Alan Guo Xiang Tan
2022-09-21 12:32:47 +08:00
committed by GitHub
parent 1413de2809
commit da3e72c2b4
13 changed files with 414 additions and 79 deletions

View File

@ -78,13 +78,15 @@ class CurrentUserSerializer < BasicUserSerializer
:sidebar_category_ids,
:likes_notifications_disabled,
:grouped_unread_notifications,
:redesigned_user_menu_enabled
:redesigned_user_menu_enabled,
:redesigned_user_page_nav_enabled
delegate :user_stat, to: :object, private: true
delegate :any_posts, :draft_count, :pending_posts_count, :read_faq?, to: :user_stat
def groups
owned_group_ids = GroupUser.where(user_id: id, owner: true).pluck(:group_id).to_set
object.visible_groups.pluck(:id, :name, :has_messages).map do |id, name, has_messages|
group = { id: id, name: name, has_messages: has_messages }
group[:owner] = true if owned_group_ids.include?(id)
@ -342,4 +344,12 @@ class CurrentUserSerializer < BasicUserSerializer
def include_unseen_reviewable_count?
redesigned_user_menu_enabled
end
def redesigned_user_page_nav_enabled
if SiteSetting.enable_new_user_profile_nav_groups.present?
GroupUser.exists?(user_id: object.id, group_id: SiteSetting.enable_new_user_profile_nav_groups.split("|"))
else
false
end
end
end