From fe646976782353836ee5ca58058125e7b9c53132 Mon Sep 17 00:00:00 2001 From: Ivan Sekovanikj <31964049+isekovanic@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:49:02 +0100 Subject: [PATCH 1/2] fix: android modal size (#2784) --- .../components/MessageInput/MessageInput.tsx | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/package/src/components/MessageInput/MessageInput.tsx b/package/src/components/MessageInput/MessageInput.tsx index 57c642a4b..2a5eb598c 100644 --- a/package/src/components/MessageInput/MessageInput.tsx +++ b/package/src/components/MessageInput/MessageInput.tsx @@ -895,21 +895,23 @@ const MessageInputWithContext = < )} {showPollCreationDialog ? ( - - - - - - - + + + + + + + + + ) : null} ); From 9b5b243cf91bc80a1fbe50913dbbdc954c973bca Mon Sep 17 00:00:00 2001 From: Ivan Sekovanikj <31964049+isekovanic@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:55:07 +0100 Subject: [PATCH 2/2] fix: backport crash fix (#2787) * fix: crash in some instances of useIsChannelMuted hook invocation * fix: properly use hook in channel preview * fix: edge cases and test --- .../hooks/__tests__/useChannelPreviewMuted.test.tsx | 9 +++++++-- .../ChannelPreview/hooks/useIsChannelMuted.ts | 10 +++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewMuted.test.tsx b/package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewMuted.test.tsx index f39d28316..1d52486f2 100644 --- a/package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewMuted.test.tsx +++ b/package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewMuted.test.tsx @@ -29,12 +29,17 @@ describe('useChannelPreviewMuted', () => { }); const mockChannel = { - muteStatus: jest.fn().mockReturnValue(false), + initialized: true, + muteStatus: jest.fn().mockReturnValue({ + createdAt: Date.now(), + expiresAt: Date.now() + 5000, + muted: false, + }), } as unknown as Channel; it('should return the correct mute status', () => { const { result } = renderHook(() => useIsChannelMuted(mockChannel)); - expect(result.current).toBe(false); + expect(result.current.muted).toBe(false); }); it("should update the mute status when the notification.channel_mutes_updated event is emitted'", () => { diff --git a/package/src/components/ChannelPreview/hooks/useIsChannelMuted.ts b/package/src/components/ChannelPreview/hooks/useIsChannelMuted.ts index 9b8e87fc3..580bd0c41 100644 --- a/package/src/components/ChannelPreview/hooks/useIsChannelMuted.ts +++ b/package/src/components/ChannelPreview/hooks/useIsChannelMuted.ts @@ -12,18 +12,18 @@ export const useIsChannelMuted = < channel: Channel, ) => { const { client } = useChatContext(); + const initialized = channel?.initialized; - const [muted, setMuted] = useState(channel.muteStatus()); + const [muted, setMuted] = useState(() => initialized && channel.muteStatus()); useEffect(() => { const handleEvent = () => { - setMuted(channel.muteStatus()); + setMuted(initialized && channel.muteStatus()); }; client.on('notification.channel_mutes_updated', handleEvent); return () => client.off('notification.channel_mutes_updated', handleEvent); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [muted]); + }, [channel, client, initialized, muted]); - return muted; + return muted || { createdAt: null, expiresAt: null, muted: false }; };