Skip to content

Commit 759cadf

Browse files
authored
feat!: remove onlySenderCanEdit prop from MessageProps (#3098)
BREAKING CHANGE: remove onlySenderCanEdit from MessageProps
1 parent a21a897 commit 759cadf

5 files changed

Lines changed: 13 additions & 40 deletions

File tree

src/components/Message/Message.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ const MessageWithContext = (props: MessageWithContextProps) => {
152152
const {
153153
canPin: canPinPropToNotPass, // eslint-disable-line @typescript-eslint/no-unused-vars
154154
messageActions: messageActionsPropToNotPass, // eslint-disable-line @typescript-eslint/no-unused-vars
155-
onlySenderCanEdit: onlySenderCanEditPropToNotPass, // eslint-disable-line @typescript-eslint/no-unused-vars
156155
onUserClick: onUserClickPropToNotPass, // eslint-disable-line @typescript-eslint/no-unused-vars
157156
onUserHover: onUserHoverPropToNotPass, // eslint-disable-line @typescript-eslint/no-unused-vars
158157
userRoles: userRolesPropToNotPass, // eslint-disable-line @typescript-eslint/no-unused-vars
@@ -193,7 +192,6 @@ export const Message = (props: MessageProps) => {
193192
closeReactionSelectorOnClick,
194193
disableQuotedMessages,
195194
message,
196-
onlySenderCanEdit = false,
197195
onMentionsClick: propOnMentionsClick,
198196
onMentionsHover: propOnMentionsHover,
199197
openThread: propOpenThread,
@@ -208,7 +206,7 @@ export const Message = (props: MessageProps) => {
208206
const handleOpenThread = useOpenThreadHandler(message, propOpenThread);
209207
const handleReaction = useReactionHandler(message);
210208
const handleRetry = useRetryHandler(propRetrySendMessage);
211-
const userRoles = useUserRole(message, onlySenderCanEdit, disableQuotedMessages);
209+
const userRoles = useUserRole(message, disableQuotedMessages);
212210

213211
const handleFetchReactions = useReactionsFetcher(message);
214212

src/components/Message/hooks/__tests__/useUserRole.test.tsx

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,12 @@ async function renderUserRoleHook(
2929
clientContextValue = {},
3030
disableQuotedMessages = undefined as any,
3131
message = generateMessage(),
32-
onlySenderCanEdit = false,
3332
} = {} as {
3433
channelProps?: GenerateChannelOptions & Record<string, unknown>;
3534
channelStateContextValue?: Partial<ChannelStateContextValue>;
3635
clientContextValue?: Partial<ChatContextValue>;
3736
disableQuotedMessages?: boolean;
3837
message?: LocalMessage;
39-
onlySenderCanEdit?: boolean;
4038
},
4139
) {
4240
const client = await getTestClientWithUser(alice);
@@ -59,7 +57,7 @@ async function renderUserRoleHook(
5957
);
6058

6159
const { result } = renderHook(
62-
() => useUserRole(message as any, onlySenderCanEdit, disableQuotedMessages),
60+
() => useUserRole(message as any, disableQuotedMessages),
6361
{ wrapper },
6462
);
6563
return result.current;
@@ -231,31 +229,17 @@ describe('useUserRole custom hook', () => {
231229

232230
describe('canDo flags', () => {
233231
it.each([
234-
[true, true, true, alice, true],
235-
[true, true, true, bob, false],
236-
[false, true, true, alice, true],
237-
[false, true, true, bob, true],
238-
[true, false, true, alice, true],
239-
[true, false, true, bob, false],
240-
[true, true, false, alice, false],
241-
[true, true, false, bob, false],
242-
[false, false, true, alice, true],
243-
[false, false, true, bob, false],
244-
[false, true, false, alice, true],
245-
[false, true, false, bob, true],
246-
[true, false, false, alice, false],
247-
[true, false, false, bob, false],
248-
[false, false, false, alice, false],
249-
[false, false, false, bob, false],
232+
[true, true, alice, true],
233+
[true, true, bob, true],
234+
[false, true, alice, true],
235+
[false, true, bob, false],
236+
[true, false, alice, true],
237+
[true, false, bob, true],
238+
[false, false, alice, false],
239+
[false, false, bob, false],
250240
])(
251241
'determine message edit permission',
252-
async (
253-
onlySenderCanEdit,
254-
updateAnyPermission,
255-
updateOwnPermission,
256-
messageAuthor,
257-
expected,
258-
) => {
242+
async (updateAnyPermission, updateOwnPermission, messageAuthor, expected) => {
259243
const message = generateMessage({ user: messageAuthor });
260244
const { canEdit } = await renderUserRoleHook({
261245
channelStateContextValue: {
@@ -265,7 +249,6 @@ describe('useUserRole custom hook', () => {
265249
},
266250
},
267251
message,
268-
onlySenderCanEdit,
269252
});
270253
expect(canEdit).toBe(expected);
271254
},

src/components/Message/hooks/useUserRole.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ import { useChannelStateContext } from '../../../context/ChannelStateContext';
22
import { useChatContext } from '../../../context/ChatContext';
33
import type { LocalMessage } from 'stream-chat';
44

5-
export const useUserRole = (
6-
message: LocalMessage,
7-
onlySenderCanEdit?: boolean,
8-
disableQuotedMessages?: boolean,
9-
) => {
5+
export const useUserRole = (message: LocalMessage, disableQuotedMessages?: boolean) => {
106
const { channel, channelCapabilities = {} } = useChannelStateContext('useUserRole');
117
const { client } = useChatContext('useUserRole');
128

@@ -39,7 +35,7 @@ export const useUserRole = (
3935
const canEdit =
4036
!message.poll &&
4137
message.command !== 'giphy' &&
42-
((!onlySenderCanEdit && channelCapabilities['update-any-message']) ||
38+
(channelCapabilities['update-any-message'] ||
4339
(isMyMessage && channelCapabilities['update-own-message']));
4440

4541
const canDelete =

src/components/Message/types.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ export type MessageProps = {
4747
messageActions?: MessageActionsArray;
4848
/** DOMRect object for parent MessageList component */
4949
messageListRect?: DOMRect;
50-
/** If true, only the sender of the message has editing privileges */
51-
onlySenderCanEdit?: boolean;
5250
/** Custom mention click handler to override default in [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/) */
5351
onMentionsClick?: ChannelActionContextValue['onMentionsClick'];
5452
/** Custom mention hover handler to override default in [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/) */

src/components/MessageList/MessageList.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ const MessageListWithContext = (props: MessageListWithContextProps) => {
210210
Message: props.Message,
211211
messageActions,
212212
messageListRect: wrapperRect,
213-
onlySenderCanEdit: props.onlySenderCanEdit,
214213
onMentionsClick: props.onMentionsClick,
215214
onMentionsHover: props.onMentionsHover,
216215
onUserClick: props.onUserClick,
@@ -467,7 +466,6 @@ type PropsDrilledToMessage =
467466
| 'formatDate'
468467
| 'Message'
469468
| 'messageActions'
470-
| 'onlySenderCanEdit'
471469
| 'onMentionsClick'
472470
| 'onMentionsHover'
473471
| 'onUserClick'

0 commit comments

Comments
 (0)