@@ -3,8 +3,10 @@ import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
33import type { SubscriptionWithRoom , TranslationKey } from '@rocket.chat/ui-contexts' ;
44import { useUserPreference , useUserSubscriptions , useSetting } from '@rocket.chat/ui-contexts' ;
55import { useVideoConfIncomingCalls } from '@rocket.chat/ui-video-conf' ;
6+ import { useFeaturePreview } from '@rocket.chat/ui-client' ;
67import { useMemo } from 'react' ;
78
9+ import { useDraftRoomIds } from './useDraftRoomIds' ;
810import { useSortQueryOptions } from '../../hooks/useSortQueryOptions' ;
911import { useOmnichannelEnabled } from '../../views/omnichannel/hooks/useOmnichannelEnabled' ;
1012import { useQueuedInquiries } from '../../views/omnichannel/hooks/useQueuedInquiries' ;
@@ -19,6 +21,7 @@ const order = [
1921 'Open_Livechats' ,
2022 'On_Hold_Chats' ,
2123 'Unread' ,
24+ 'Drafts' ,
2225 'Favorites' ,
2326 'Teams' ,
2427 'Discussions' ,
@@ -40,7 +43,8 @@ export const useRoomList = ({ collapsedGroups }: { collapsedGroups?: string[] })
4043 const showOmnichannel = useOmnichannelEnabled ( ) ;
4144 const sidebarGroupByType = useUserPreference ( 'sidebarGroupByType' ) ;
4245 const favoritesEnabled = useUserPreference ( 'sidebarShowFavorites' ) ;
43- const sidebarOrder = useUserPreference < typeof order > ( 'sidebarSectionsOrder' ) ?? order ;
46+ const sidebarDrafts = useFeaturePreview ( 'sidebarDrafts' ) ;
47+ const sidebarOrder = useUserPreference < typeof order > ( 'sidebarSectionsOrder' ) ?? order ;
4448 const isDiscussionEnabled = useSetting ( 'Discussion_enabled' ) ;
4549 const sidebarShowUnread = useUserPreference ( 'sidebarShowUnread' ) ;
4650
@@ -52,12 +56,15 @@ export const useRoomList = ({ collapsedGroups }: { collapsedGroups?: string[] })
5256
5357 const incomingCalls = useVideoConfIncomingCalls ( ) ;
5458
59+ const draftRoomIds = useDraftRoomIds ( sidebarDrafts ) ;
60+
5561 const queue = inquiries . enabled ? inquiries . queue : emptyQueue ;
5662
5763 const { groupsCount, groupsList, roomList, groupedUnreadInfo } = useDebouncedValue (
5864 useMemo ( ( ) => {
5965 const isCollapsed = ( groupTitle : string ) => collapsedGroups ?. includes ( groupTitle ) ;
6066
67+ const drafts = new Set ( ) ;
6168 const incomingCall = new Set ( ) ;
6269 const favorite = new Set ( ) ;
6370 const team = new Set ( ) ;
@@ -82,6 +89,10 @@ export const useRoomList = ({ collapsedGroups }: { collapsedGroups?: string[] })
8289 return unread . add ( room ) ;
8390 }
8491
92+ if ( sidebarDrafts && draftRoomIds . has ( room . rid ) ) {
93+ return drafts . add ( room ) ;
94+ }
95+
8596 if ( favoritesEnabled && room . f ) {
8697 return favorite . add ( room ) ;
8798 }
@@ -122,6 +133,8 @@ export const useRoomList = ({ collapsedGroups }: { collapsedGroups?: string[] })
122133
123134 sidebarShowUnread && unread . size && groups . set ( 'Unread' , unread ) ;
124135
136+ sidebarDrafts && drafts . size && groups . set ( 'Drafts' , drafts ) ;
137+
125138 favoritesEnabled && favorite . size && groups . set ( 'Favorites' , favorite ) ;
126139
127140 sidebarGroupByType && team . size && groups . set ( 'Teams' , team ) ;
@@ -193,6 +206,7 @@ export const useRoomList = ({ collapsedGroups }: { collapsedGroups?: string[] })
193206 rooms ,
194207 showOmnichannel ,
195208 inquiries . enabled ,
209+ draftRoomIds ,
196210 queue ,
197211 sidebarShowUnread ,
198212 favoritesEnabled ,
0 commit comments