update menus for channel bookmarks (#30801)

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Scott Bishel
2025-04-29 08:20:19 -06:00
коммит произвёл GitHub
родитель d443db2c21
Коммит 077f8e5061
4 изменённых файлов: 31 добавлений и 7 удалений

Просмотреть файл

@@ -23,6 +23,7 @@ import {
import {getChannelHeaderMenuPluginComponents} from 'selectors/plugins';
import {getIsChannelBookmarksEnabled} from 'components/channel_bookmarks/utils';
import * as Menu from 'components/menu';
import {Constants} from 'utils/constants';
@@ -53,6 +54,7 @@ export default function ChannelHeaderMenu({dmUser, gmMembers, isMobile, archived
const isMuted = useSelector(isCurrentChannelMuted);
const isLicensedForLDAPGroups = useSelector(getLicense).LDAPGroups === 'true';
const pluginMenuItems = useSelector(getChannelHeaderMenuPluginComponents);
const isChannelBookmarksEnabled = useSelector(getIsChannelBookmarksEnabled);
const isReadonly = false;
@@ -144,6 +146,7 @@ export default function ChannelHeaderMenu({dmUser, gmMembers, isMobile, archived
pluginItems={pluginItems}
isFavorite={isFavorite}
isMobile={isMobile || false}
isChannelBookmarksEnabled={isChannelBookmarksEnabled}
/>
)}
{isGroup && (
@@ -154,6 +157,7 @@ export default function ChannelHeaderMenu({dmUser, gmMembers, isMobile, archived
pluginItems={pluginItems}
isFavorite={isFavorite}
isMobile={isMobile || false}
isChannelBookmarksEnabled={isChannelBookmarksEnabled}
/>
)}
{(!isDirect && !isGroup) && (
@@ -167,6 +171,7 @@ export default function ChannelHeaderMenu({dmUser, gmMembers, isMobile, archived
isDefault={isDefault}
isReadonly={isReadonly}
isLicensedForLDAPGroups={isLicensedForLDAPGroups}
isChannelBookmarksEnabled={isChannelBookmarksEnabled}
/>
)}

Просмотреть файл

@@ -8,9 +8,12 @@ import {CogOutlineIcon} from '@mattermost/compass-icons/components';
import type {Channel} from '@mattermost/types/channels';
import type {UserProfile} from '@mattermost/types/users';
import {isGuest} from 'mattermost-redux/utils/user_utils';
import ChannelMoveToSubMenu from 'components/channel_move_to_sub_menu';
import * as Menu from 'components/menu';
import MenuItemChannelBookmarks from '../menu_items/channel_bookmarks_submenu';
import CloseMessage from '../menu_items/close_message';
import EditConversationHeader from '../menu_items/edit_conversation_header';
import MenuItemPluginItems from '../menu_items/plugins_submenu';
@@ -26,9 +29,10 @@ interface Props extends Menu.FirstMenuItemProps {
isMobile: boolean;
isFavorite: boolean;
pluginItems: ReactNode[];
isChannelBookmarksEnabled: boolean;
}
const ChannelHeaderDirectMenu = ({channel, user, isMuted, isMobile, isFavorite, pluginItems, ...rest}: Props) => {
const ChannelHeaderDirectMenu = ({channel, user, isMuted, isMobile, isFavorite, pluginItems, isChannelBookmarksEnabled, ...rest}: Props) => {
return (
<>
<MenuItemToggleInfo
@@ -56,6 +60,11 @@ const ChannelHeaderDirectMenu = ({channel, user, isMuted, isMobile, isFavorite,
channel={channel}
/>
<Menu.Separator/>
{!isGuest(user.roles) && isChannelBookmarksEnabled && (
<MenuItemChannelBookmarks
channel={channel}
/>
)}
<ChannelMoveToSubMenu
channel={channel}
/>

Просмотреть файл

@@ -19,6 +19,7 @@ import ChannelMoveToSubMenu from 'components/channel_move_to_sub_menu';
import * as Menu from 'components/menu';
import ChannelPermissionGate from 'components/permissions_gates/channel_permission_gate';
import MenuItemChannelBookmarks from '../menu_items/channel_bookmarks_submenu';
import CloseMessage from '../menu_items/close_message';
import MenuItemConvertToPrivate from '../menu_items/convert_gm_to_private';
import EditConversationHeader from '../menu_items/edit_conversation_header';
@@ -37,9 +38,10 @@ interface Props extends Menu.FirstMenuItemProps {
isMobile: boolean;
isFavorite: boolean;
pluginItems: ReactNode[];
isChannelBookmarksEnabled: boolean;
}
const ChannelHeaderGroupMenu = ({channel, user, isMuted, isMobile, isFavorite, pluginItems, ...rest}: Props) => {
const ChannelHeaderGroupMenu = ({channel, user, isMuted, isMobile, isFavorite, pluginItems, isChannelBookmarksEnabled, ...rest}: Props) => {
const isGroupConstrained = channel?.group_constrained === true;
const isArchived = channel.delete_at !== 0;
const {formatMessage} = useIntl();
@@ -72,7 +74,7 @@ const ChannelHeaderGroupMenu = ({channel, user, isMuted, isMobile, isFavorite, p
channel={channel}
/>
)}
{(isArchived && isGroupConstrained && isGuest(user.roles)) && (
{(!isArchived && isGuest(user.roles)) && (
<EditConversationHeader
leadingElement={<CogOutlineIcon size='18px'/>}
channel={channel}
@@ -100,6 +102,11 @@ const ChannelHeaderGroupMenu = ({channel, user, isMuted, isMobile, isFavorite, p
/>
</Menu.SubMenu>
)}
{!isArchived && !isGuest(user.roles) && isChannelBookmarksEnabled && (
<MenuItemChannelBookmarks
channel={channel}
/>
)}
<Menu.Separator/>
{(!isArchived && !isGroupConstrained) && (
<ChannelPermissionGate

Просмотреть файл

@@ -42,9 +42,10 @@ interface Props extends Menu.FirstMenuItemProps {
isFavorite: boolean;
isLicensedForLDAPGroups: boolean;
pluginItems: ReactNode[];
isChannelBookmarksEnabled: boolean;
}
const ChannelHeaderPublicMenu = ({channel, user, isMuted, isDefault, isMobile, isFavorite, isLicensedForLDAPGroups, pluginItems, ...rest}: Props) => {
const ChannelHeaderPublicMenu = ({channel, user, isMuted, isDefault, isMobile, isFavorite, isLicensedForLDAPGroups, pluginItems, isChannelBookmarksEnabled, ...rest}: Props) => {
const isGroupConstrained = channel?.group_constrained === true;
const isArchived = channel.delete_at !== 0;
const isPrivate = channel?.type === Constants.PRIVATE_CHANNEL;
@@ -73,9 +74,11 @@ const ChannelHeaderPublicMenu = ({channel, user, isMuted, isDefault, isMobile, i
<MenuItemChannelSettings
channel={channel}
/>
<MenuItemChannelBookmarks
channel={channel}
/>
{isChannelBookmarksEnabled && (
<MenuItemChannelBookmarks
channel={channel}
/>
)}
</>
)}
<Menu.Separator/>