Skip to content

Commit e17c99e

Browse files
authored
feat: Export useLocalization hook & ThreadReplySelectType (#1227)
[CLNP-5330](https://sendbird.atlassian.net/browse/CLNP-5330) [SBISSUE-17397](https://sendbird.atlassian.net/browse/SBISSUE-17397) ### ChangeLog Features: - Exported `useLocalization` Hook: - Provided access to stringSet and dateLocale. - Note: Required SendbirdProvider to wrap your component for proper usage. - Import Path: `"@sendbird/uikit-react/hooks/useLocalization"` - Exported `ThreadReplySelectType`: - Import Paths: - `"@sendbird/uikit-react/Channel/context"` - `"@sendbird/uikit-react/GroupChannel/context"`
1 parent 578faa9 commit e17c99e

File tree

5 files changed

+20
-1
lines changed

5 files changed

+20
-1
lines changed

rollup.module-exports.mjs

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export default {
3232
'pubSub/topics': 'src/lib/pubSub/topics.ts',
3333
// hooks
3434
'hooks/useModal': 'src/hooks/useModal/index.tsx',
35+
'hooks/useLocalization': 'src/hooks/useLocalization.ts',
3536
// utils
3637
'utils/message/getOutgoingMessageState': 'src/utils/exports/getOutgoingMessageState.ts',
3738
'utils/message/isVoiceMessage': 'src/utils/isVoiceMessage.ts',

src/hooks/useLocalization.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/**
2+
* This file is only for re-exporting the `useLocalization` hook.
3+
* It should not be used internally within the project.
4+
*/
5+
import { useLocalization } from '../lib/LocalizationContext';
6+
7+
export { useLocalization } from '../lib/LocalizationContext';
8+
export default useLocalization;

src/lib/LocalizationContext.tsx

+7-1
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,11 @@ const LocalizationProvider = (props: LocalizationProviderProps): React.ReactElem
2121
return <LocalizationContext.Provider value={{ ...LocalizationContextDefault, ...props }}>{children}</LocalizationContext.Provider>;
2222
};
2323

24-
const useLocalization = () => React.useContext(LocalizationContext);
24+
const useLocalization = () => {
25+
const context = React.useContext(LocalizationContext);
26+
if (!context) {
27+
throw new Error('`useLocalization` hook must be used within `SendbirdProvider` that includes `LocalizationProvider`.');
28+
}
29+
return context;
30+
};
2531
export { LocalizationContext, LocalizationProvider, useLocalization };

src/modules/Channel/context/ChannelProvider.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ import { PublishingModuleType } from '../../internalInterfaces';
5353
import { ChannelActionTypes } from './dux/actionTypes';
5454
import { useMessageLayoutDirection } from '../../../hooks/useHTMLTextDirection';
5555

56+
export { ThreadReplySelectType } from './const'; // export for external usage
57+
5658
export interface MessageListParams extends Partial<SDKMessageListParams> { // make `prevResultSize` and `nextResultSize` to optional
5759
/** @deprecated It won't work even if you activate this props */
5860
reverse?: boolean;

src/modules/GroupChannel/context/GroupChannelProvider.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import { useMessageActions } from './hooks/useMessageActions';
2828
import { getIsReactionEnabled } from '../../../utils/getIsReactionEnabled';
2929
import { useMessageLayoutDirection } from '../../../hooks/useHTMLTextDirection';
3030

31+
export { ThreadReplySelectType } from './const'; // export for external usage
32+
3133
type OnBeforeHandler<T> = (params: T) => T | Promise<T>;
3234
type MessageListQueryParamsType = Omit<MessageCollectionParams, 'filter'> & MessageFilterParams;
3335
type MessageActions = ReturnType<typeof useMessageActions>;

0 commit comments

Comments
 (0)