@@ -47,13 +47,14 @@ import { WithMessageId } from '../../../../session/types/with';
4747import { DeleteItem } from '../../../menu/items/DeleteMessage/DeleteMessageMenuItem' ;
4848import { RetryItem } from '../../../menu/items/RetrySend/RetrySendMenuItem' ;
4949import { useBanUserCb } from '../../../menuAndSettingsHooks/useBanUser' ;
50- import { useUnbanUserCb } from '../../../menuAndSettingsHooks/useUnbanUser' ;
5150import { tr } from '../../../../localization/localeTools' ;
5251import { sectionActions } from '../../../../state/ducks/section' ;
5352import { useRemoveSenderFromCommunityAdmin } from '../../../menuAndSettingsHooks/useRemoveSenderFromCommunityAdmin' ;
5453import { useAddSenderAsCommunityAdmin } from '../../../menuAndSettingsHooks/useAddSenderAsCommunityAdmin' ;
55- import { useServerBanUserCb } from '../../../menuAndSettingsHooks/useServerBanUser' ;
56- import { useServerUnbanUserCb } from '../../../menuAndSettingsHooks/useServerUnbanUser' ;
54+ import {
55+ useAddUserPermissions ,
56+ useClearUserPermissions ,
57+ } from '../../../menuAndSettingsHooks/useAddUserPermissions' ;
5758
5859export type MessageContextMenuSelectorProps = Pick <
5960 MessageRenderingProps ,
@@ -98,10 +99,27 @@ const CommunityAdminActionItems = ({ messageId }: WithMessageId) => {
9899 const sender = useMessageSender ( messageId ) ;
99100 const isSenderAdmin = useMessageSenderIsAdmin ( messageId ) ;
100101
101- const banUserCb = useBanUserCb ( convoId , sender ) ;
102- const unbanUserCb = useUnbanUserCb ( convoId , sender ) ;
103- const serverBanUser = useServerBanUserCb ( convoId , sender ) ;
104- const serverUnbanUser = useServerUnbanUserCb ( convoId , sender ) ;
102+ const sharedBanUnbanProps = {
103+ conversationId : convoId ,
104+ pubkey : sender ,
105+ } ;
106+
107+ const banUserCb = useBanUserCb ( {
108+ banType : 'ban' ,
109+ ...sharedBanUnbanProps ,
110+ } ) ;
111+ const unbanUserCb = useBanUserCb ( {
112+ banType : 'unban' ,
113+ ...sharedBanUnbanProps ,
114+ } ) ;
115+ const serverBanUser = useBanUserCb ( {
116+ banType : 'server-ban' ,
117+ ...sharedBanUnbanProps ,
118+ } ) ;
119+ const serverUnbanUser = useBanUserCb ( {
120+ banType : 'server-unban' ,
121+ ...sharedBanUnbanProps ,
122+ } ) ;
105123
106124 const removeSenderFromCommunityAdminCb = useRemoveSenderFromCommunityAdmin ( {
107125 conversationId : convoId ,
@@ -113,22 +131,16 @@ const CommunityAdminActionItems = ({ messageId }: WithMessageId) => {
113131 senderId : sender ,
114132 } ) ;
115133
116- const addUploadPermission = ( ) => {
117- void MessageInteraction . addUserPermissions ( sender , convoId , [ 'upload' ] ) ;
118- } ;
119-
120- const clearUploadPermission = ( ) => {
121- void MessageInteraction . clearUserPermissions ( sender , convoId , [ 'upload' ] ) ;
122- } ;
134+ const addUploadPermissionCb = useAddUserPermissions ( sender , convoId , [ 'upload' ] ) ;
135+ const clearUploadPermissionCb = useClearUserPermissions ( sender , convoId , [ 'upload' ] ) ;
123136
124- // TODO: This codebase is a pain.
125- // Fixed to `true`.
137+ // Fixed to `true` as not currently exposed by the backend/tracked in session-desktop
126138 const isRoomUploadRestricted = true ;
127139 const canSenderUpload = true ;
128140 const canSenderNotUpload = true ;
129141
130142 // Note: add/removeSenderFromCommunityAdminCb can be null if we are a moderator only, see below
131- if ( ! convoId || ! sender || ! banUserCb || ! unbanUserCb || ! serverBanUser || ! serverUnbanUser ) {
143+ if ( ! convoId || ! sender || ! banUserCb || ! unbanUserCb ) {
132144 return null ;
133145 }
134146
@@ -148,24 +160,25 @@ const CommunityAdminActionItems = ({ messageId }: WithMessageId) => {
148160 { tr ( 'adminPromoteToAdmin' ) }
149161 </ ItemWithDataTestId >
150162 ) : null }
151- < ItemWithDataTestId onClick = { serverBanUser } >
152- { tr ( 'serverBanUser' ) . toString ( ) }
153- </ ItemWithDataTestId >
154- < ItemWithDataTestId onClick = { serverUnbanUser } >
155- { tr ( 'serverUnbanUser' ) . toString ( ) }
156- </ ItemWithDataTestId >
163+
164+ { serverBanUser ? (
165+ < ItemWithDataTestId onClick = { serverBanUser } > { tr ( 'serverBanUser' ) } </ ItemWithDataTestId >
166+ ) : null }
167+ { serverUnbanUser ? (
168+ < ItemWithDataTestId onClick = { serverUnbanUser } > { tr ( 'serverUnbanUser' ) } </ ItemWithDataTestId >
169+ ) : null }
157170 { ! isSenderAdmin && isRoomUploadRestricted && (
158171 < >
159- { canSenderUpload && (
160- < ItemWithDataTestId onClick = { addUploadPermission } >
161- { tr ( 'addUploadPermission' ) . toString ( ) }
172+ { canSenderUpload && addUploadPermissionCb ? (
173+ < ItemWithDataTestId onClick = { addUploadPermissionCb } >
174+ { tr ( 'addUploadPermission' ) }
162175 </ ItemWithDataTestId >
163- ) }
164- { canSenderNotUpload && (
165- < ItemWithDataTestId onClick = { clearUploadPermission } >
166- { tr ( 'clearUploadPermission' ) . toString ( ) }
176+ ) : null }
177+ { canSenderNotUpload && clearUploadPermissionCb ? (
178+ < ItemWithDataTestId onClick = { clearUploadPermissionCb } >
179+ { tr ( 'clearUploadPermission' ) }
167180 </ ItemWithDataTestId >
168- ) }
181+ ) : null }
169182 </ >
170183 ) }
171184 </ >
0 commit comments