diff --git a/app/discussion/client/tabBar.ts b/app/discussion/client/tabBar.ts index bcdfb59b803..14bfe145c43 100644 --- a/app/discussion/client/tabBar.ts +++ b/app/discussion/client/tabBar.ts @@ -15,6 +15,6 @@ addAction('discussions', () => { icon: 'discussion', template, full: true, - order: 1, + order: 7, } : null), [discussionEnabled]); }); diff --git a/app/threads/client/flextab/threadlist.tsx b/app/threads/client/flextab/threadlist.tsx index 45bf9686633..75650d3dd6c 100644 --- a/app/threads/client/flextab/threadlist.tsx +++ b/app/threads/client/flextab/threadlist.tsx @@ -22,7 +22,7 @@ addAction('thread', (options) => { const room = options.room as unknown as ISubscription; const threadsEnabled = useSetting('Threads_enabled'); return useMemo(() => (threadsEnabled ? { - groups: ['channel', 'group', 'direct'], + groups: ['channel', 'group', 'direct', 'team'], id: 'thread', full: true, title: 'Threads', @@ -35,6 +35,6 @@ addAction('thread', (options) => { { unread > 0 && {unread} } ; }, - order: 2, + order: 4, } : null), [threadsEnabled, room.tunread?.length, room.tunreadUser?.length, room.tunreadGroup?.length]); }); diff --git a/client/views/room/contextualBar/RoomMembers/List/hooks/usePreventProgation.tsx b/client/hooks/usePreventProgation.ts similarity index 100% rename from client/views/room/contextualBar/RoomMembers/List/hooks/usePreventProgation.tsx rename to client/hooks/usePreventProgation.ts diff --git a/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.js b/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.js index f76b2541967..116ec42ae34 100644 --- a/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.js +++ b/client/views/room/contextualBar/Info/RoomInfo/RoomInfo.js @@ -49,6 +49,7 @@ export const RoomInfo = function RoomInfo({ rid, icon, retentionPolicy = {}, + onClickBack, onClickHide, onClickClose, onClickLeave, @@ -56,6 +57,7 @@ export const RoomInfo = function RoomInfo({ onClickDelete, onClickMoveToTeam, onClickConvertToTeam, + onClickEnterRoom, }) { const t = useTranslation(); @@ -67,6 +69,11 @@ export const RoomInfo = function RoomInfo({ } = retentionPolicy; const memoizedActions = useMemo(() => ({ + ...onClickEnterRoom && { enter: { + label: t('Enter'), + icon: 'login', + action: onClickEnterRoom, + } }, ...onClickEdit && { edit: { label: t('Edit'), icon: 'edit', @@ -97,7 +104,7 @@ export const RoomInfo = function RoomInfo({ action: onClickLeave, icon: 'sign-out', } }, - }), [onClickEdit, t, onClickDelete, onClickMoveToTeam, onClickConvertToTeam, onClickHide, onClickLeave]); + }), [onClickEdit, t, onClickDelete, onClickMoveToTeam, onClickConvertToTeam, onClickHide, onClickLeave, onClickEnterRoom]); const { actions: actionsDefinition, menu: menuOptions } = useActionSpread(memoizedActions); @@ -127,7 +134,7 @@ export const RoomInfo = function RoomInfo({ return ( <> - + {onClickBack ? : } {t('Room_Info')} { onClickClose && } @@ -186,9 +193,11 @@ export const RoomInfo = function RoomInfo({ ); }; -export default ({ +const RoomInfoWithData = ({ rid, openEditing, + onClickBack, + onEnterRoom, }) => { const onClickClose = useTabBarClose(); const t = useTranslation(); @@ -328,12 +337,15 @@ export default ({ />); }); + const onClickEnterRoom = useMutableCallback(() => onEnterRoom(room)); + return ( } description={room.description && } @@ -348,3 +361,5 @@ export default ({ /> ); }; + +export default RoomInfoWithData; diff --git a/client/views/room/contextualBar/Info/index.js b/client/views/room/contextualBar/Info/index.js index 40f9e52914f..f0a262c83c3 100644 --- a/client/views/room/contextualBar/Info/index.js +++ b/client/views/room/contextualBar/Info/index.js @@ -1,11 +1,15 @@ import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import React, { useState } from 'react'; -import EditChannelWithData from './EditRoomInfo'; -import RoomInfo from './RoomInfo'; +import EditRoomInfoWithData from './EditRoomInfo'; +import RoomInfoWithData from './RoomInfo'; -export default ({ rid }) => { +const RoomInfo = ({ rid, onClickBack, onEnterRoom }) => { const [editing, setEditing] = useState(false); - const onClickBack = useMutableCallback(() => setEditing(false)); - return editing ? : ; + const backToView = useMutableCallback(() => setEditing(false)); + return editing + ? + : ; }; + +export default RoomInfo; diff --git a/client/views/room/contextualBar/RoomMembers/List/components/MemberItem.js b/client/views/room/contextualBar/RoomMembers/List/components/MemberItem.js index b7ef8063c45..fd470fbf404 100644 --- a/client/views/room/contextualBar/RoomMembers/List/components/MemberItem.js +++ b/client/views/room/contextualBar/RoomMembers/List/components/MemberItem.js @@ -11,7 +11,7 @@ import { useUserInfoActions } from '../../../../hooks/useUserInfoActions'; import { useActionSpread } from '../../../../../hooks/useActionSpread'; import UserAvatar from '../../../../../../components/avatar/UserAvatar'; import { ReactiveUserStatus } from '../../../../../../components/UserStatus'; -import { usePreventProgation } from '../hooks/usePreventProgation'; +import { usePreventProgation } from '../../../../../../hooks/usePreventProgation'; const UserActions = ({ username, _id, rid }) => { const { menu: menuOptions } = useActionSpread(useUserInfoActions({ _id, username }, rid), 0); diff --git a/client/views/teams/contextualBar/TeamChannelItem.js b/client/views/teams/contextualBar/TeamChannelItem.js index d592889dd3e..cc076942e44 100644 --- a/client/views/teams/contextualBar/TeamChannelItem.js +++ b/client/views/teams/contextualBar/TeamChannelItem.js @@ -8,6 +8,7 @@ import { useSetModal } from '../../../contexts/ModalContext'; import RoomAvatar from '../../../components/avatar/RoomAvatar'; import ConfirmationModal from '../modals/ConfirmationModal'; import { roomTypes } from '../../../../app/utils/client'; +import { usePreventProgation } from '../../../hooks/usePreventProgation'; import Breadcrumbs from '../../../components/Breadcrumbs'; export const useReactModal = (Component, props) => { @@ -93,24 +94,28 @@ const RoomActions = ({ room }) => { />; }; -export const TeamChannelItem = ({ room }) => { +export const TeamChannelItem = ({ room, onClickView }) => { const t = useTranslation(); const [showButton, setShowButton] = useState(); const isReduceMotionEnabled = usePrefersReducedMotion(); const handleMenuEvent = { [isReduceMotionEnabled ? 'onMouseEnter' : 'onTransitionEnd']: setShowButton }; + const onClick = usePreventProgation(); + return (