Skip to content

Commit 88c5628

Browse files
committed
fix: remove unneccesary capability context from cahnnel details context
1 parent 997e742 commit 88c5628

3 files changed

Lines changed: 8 additions & 53 deletions

File tree

package/src/components/ChannelDetailsScreen/__tests__/ChannelDetailsScreen.test.tsx

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import type { Channel } from 'stream-chat';
88
import { useChannelDetailsContext } from '../../../contexts/channelDetailsContext/channelDetailsContext';
99
import { ChatContext } from '../../../contexts/chatContext/ChatContext';
1010
import { WithComponents } from '../../../contexts/componentsContext/ComponentsContext';
11-
import type { OwnCapabilitiesContextValue } from '../../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';
12-
import { useOwnCapabilitiesContext } from '../../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';
1311
import { ThemeProvider } from '../../../contexts/themeContext/ThemeContext';
1412
import { defaultTheme } from '../../../contexts/themeContext/utils/theme';
1513
import { TranslationProvider } from '../../../contexts/translationContext/TranslationContext';
@@ -136,44 +134,6 @@ describe('ChannelDetailsScreen', () => {
136134
expect(captured?.onChannelDismiss).toBe(onChannelDismiss);
137135
expect(captured?.onBack).toBe(onBack);
138136
});
139-
140-
it('exposes own capabilities derived from the channel via OwnCapabilitiesContext', () => {
141-
const unsubscribe = jest.fn();
142-
const channelWithCapabilities = {
143-
cid: 'messaging:test',
144-
id: 'test',
145-
data: { own_capabilities: ['send-message', 'delete-own-message'] },
146-
on: jest.fn(() => ({ unsubscribe })),
147-
} as unknown as Channel;
148-
149-
let captured: OwnCapabilitiesContextValue | undefined;
150-
const CapabilitiesProbe = () => {
151-
captured = useOwnCapabilitiesContext();
152-
return null;
153-
};
154-
155-
render(
156-
<Providers>
157-
<WithComponents
158-
overrides={{
159-
...SECTION_OVERRIDES,
160-
ChannelDetailsScreenContent: CapabilitiesProbe,
161-
}}
162-
>
163-
<ChannelDetailsScreen channel={channelWithCapabilities} />
164-
</WithComponents>
165-
</Providers>,
166-
);
167-
168-
expect(captured).toBeDefined();
169-
expect(captured?.sendMessage).toBe(true);
170-
expect(captured?.deleteOwnMessage).toBe(true);
171-
expect(captured?.banChannelMembers).toBe(false);
172-
expect(channelWithCapabilities.on).toHaveBeenCalledWith(
173-
'capabilities.changed',
174-
expect.any(Function),
175-
);
176-
});
177137
});
178138

179139
describe('ChannelDetailsScreenContent override', () => {

package/src/components/ChannelDetailsScreen/components/members/ChannelAllMembersModal.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import React from 'react';
22

33
import { useChannelDetailsContext } from '../../../../contexts/channelDetailsContext/channelDetailsContext';
44
import { useComponentsContext } from '../../../../contexts/componentsContext/ComponentsContext';
5-
import { useOwnCapabilitiesContext } from '../../../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';
65
import { useTranslationContext } from '../../../../contexts/translationContext/TranslationContext';
76
import { useChannelMemberCount } from '../../../../hooks';
7+
import { useChannelOwnCapabilities } from '../../../../hooks/useChannelOwnCapabilities';
88
import { UserAdd } from '../../../../icons/user-add';
99
import { Button } from '../../../ui/Button/Button';
1010
import { ChannelDetailsModal } from '../modal/Modal';
@@ -25,7 +25,8 @@ const ChannelAllMembersModalContent = ({
2525
const { channel } = useChannelDetailsContext();
2626
const { ChannelMemberList } = useComponentsContext();
2727
const { t } = useTranslationContext();
28-
const { updateChannelMembers } = useOwnCapabilitiesContext();
28+
const ownCapabilities = useChannelOwnCapabilities(channel);
29+
const updateChannelMembers = ownCapabilities?.includes('update-channel-members') ?? false;
2930
const total = useChannelMemberCount(channel);
3031

3132
return (

package/src/contexts/channelDetailsContext/channelDetailsContext.tsx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ import React, { PropsWithChildren, useContext } from 'react';
22

33
import { ChannelDetailsScreenProps } from '../../components';
44

5-
import { useCreateOwnCapabilitiesContext } from '../../components/Channel/hooks/useCreateOwnCapabilitiesContext';
6-
import { OwnCapabilitiesProvider } from '../ownCapabilitiesContext/OwnCapabilitiesContext';
75
import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
86
import { isTestEnvironment } from '../utils/isTestEnvironment';
97

@@ -23,15 +21,11 @@ export const ChannelDetailsContextProvider = ({
2321
value,
2422
}: PropsWithChildren<{
2523
value: ChannelDetailsContextValue;
26-
}>) => {
27-
const ownCapabilitiesContext = useCreateOwnCapabilitiesContext({ channel: value.channel });
28-
29-
return (
30-
<ChannelDetailsContext.Provider value={value as unknown as ChannelDetailsContextValue}>
31-
<OwnCapabilitiesProvider value={ownCapabilitiesContext}>{children}</OwnCapabilitiesProvider>
32-
</ChannelDetailsContext.Provider>
33-
);
34-
};
24+
}>) => (
25+
<ChannelDetailsContext.Provider value={value as unknown as ChannelDetailsContextValue}>
26+
{children}
27+
</ChannelDetailsContext.Provider>
28+
);
3529

3630
/**
3731
* @experimental This API is experimental and is subject to change.

0 commit comments

Comments
 (0)