@droppii-org/chat-mobile 0.2.95 → 0.2.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +10 -1
  2. package/lib/module/assets/images/index.js +1 -0
  3. package/lib/module/assets/images/index.js.map +1 -1
  4. package/lib/module/assets/images/tag_bot_mall.png +0 -0
  5. package/lib/module/components/Avatar/Avatar.utils.js +9 -2
  6. package/lib/module/components/Avatar/Avatar.utils.js.map +1 -1
  7. package/lib/module/config/api-endpoints.js +3 -2
  8. package/lib/module/config/api-endpoints.js.map +1 -1
  9. package/lib/module/config/configuration.js +24 -2
  10. package/lib/module/config/configuration.js.map +1 -1
  11. package/lib/module/core/index.js +7 -1
  12. package/lib/module/core/index.js.map +1 -1
  13. package/lib/module/hooks/groups/useJoinGroupByInviteLink.js +155 -0
  14. package/lib/module/hooks/groups/useJoinGroupByInviteLink.js.map +1 -0
  15. package/lib/module/hooks/groups/useResolveGroupInviteLink.js +18 -0
  16. package/lib/module/hooks/groups/useResolveGroupInviteLink.js.map +1 -0
  17. package/lib/module/hooks/message/useSearchMessage.js +9 -8
  18. package/lib/module/hooks/message/useSearchMessage.js.map +1 -1
  19. package/lib/module/hooks/query-keys.js +2 -1
  20. package/lib/module/hooks/query-keys.js.map +1 -1
  21. package/lib/module/screens/inbox/Inbox.js +11 -1
  22. package/lib/module/screens/inbox/Inbox.js.map +1 -1
  23. package/lib/module/services/endpoints.js +2 -1
  24. package/lib/module/services/endpoints.js.map +1 -1
  25. package/lib/module/services/groupInvite.js +12 -0
  26. package/lib/module/services/groupInvite.js.map +1 -0
  27. package/lib/module/translation/resources/i18n.js +6 -1
  28. package/lib/module/translation/resources/i18n.js.map +1 -1
  29. package/lib/module/types/chat.js +2 -0
  30. package/lib/module/types/chat.js.map +1 -1
  31. package/lib/module/utils/messageUtils.js +14 -4
  32. package/lib/module/utils/messageUtils.js.map +1 -1
  33. package/lib/typescript/src/assets/images/index.d.ts +1 -0
  34. package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
  35. package/lib/typescript/src/components/Avatar/Avatar.utils.d.ts.map +1 -1
  36. package/lib/typescript/src/config/api-endpoints.d.ts +1 -0
  37. package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -1
  38. package/lib/typescript/src/config/configuration.d.ts +15 -0
  39. package/lib/typescript/src/config/configuration.d.ts.map +1 -1
  40. package/lib/typescript/src/core/index.d.ts +7 -0
  41. package/lib/typescript/src/core/index.d.ts.map +1 -1
  42. package/lib/typescript/src/hooks/groups/useJoinGroupByInviteLink.d.ts +21 -0
  43. package/lib/typescript/src/hooks/groups/useJoinGroupByInviteLink.d.ts.map +1 -0
  44. package/lib/typescript/src/hooks/groups/useResolveGroupInviteLink.d.ts +3 -0
  45. package/lib/typescript/src/hooks/groups/useResolveGroupInviteLink.d.ts.map +1 -0
  46. package/lib/typescript/src/hooks/message/useSearchMessage.d.ts +24 -25
  47. package/lib/typescript/src/hooks/message/useSearchMessage.d.ts.map +1 -1
  48. package/lib/typescript/src/hooks/query-keys.d.ts +1 -0
  49. package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
  50. package/lib/typescript/src/screens/inbox/Inbox.d.ts +4 -3
  51. package/lib/typescript/src/screens/inbox/Inbox.d.ts.map +1 -1
  52. package/lib/typescript/src/services/endpoints.d.ts +1 -0
  53. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  54. package/lib/typescript/src/services/groupInvite.d.ts +5 -0
  55. package/lib/typescript/src/services/groupInvite.d.ts.map +1 -0
  56. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  57. package/lib/typescript/src/types/chat.d.ts +13 -2
  58. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  59. package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
  60. package/package.json +1 -1
  61. package/src/assets/images/index.ts +1 -0
  62. package/src/assets/images/tag_bot_mall.png +0 -0
  63. package/src/components/Avatar/Avatar.utils.ts +7 -2
  64. package/src/config/api-endpoints.ts +3 -1
  65. package/src/config/configuration.ts +24 -1
  66. package/src/core/index.ts +14 -2
  67. package/src/hooks/groups/useJoinGroupByInviteLink.tsx +167 -0
  68. package/src/hooks/groups/useResolveGroupInviteLink.ts +20 -0
  69. package/src/hooks/message/useSearchMessage.ts +9 -12
  70. package/src/hooks/query-keys.ts +2 -0
  71. package/src/screens/inbox/Inbox.tsx +21 -2
  72. package/src/services/endpoints.ts +2 -0
  73. package/src/services/groupInvite.ts +15 -0
  74. package/src/translation/resources/i18n.ts +6 -0
  75. package/src/types/chat.ts +14 -8
  76. package/src/utils/messageUtils.ts +18 -3
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/types/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/types/chat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"messageUtils.d.ts","sourceRoot":"","sources":["../../../../src/utils/messageUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EAEX,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,gBAAgB,GAAI,SAAS,WAAW,KAAG,OACL,CAAC;AAKpD,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAC3C,MAAM,CAAC,WAAW,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAqEjE,CAAC;AAMF,eAAO,MAAM,wBAAwB,EAEpB,WAAW,EAAE,CAAC;AA2B/B,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAQD,eAAO,MAAM,uBAAuB,GAClC,SAAS,WAAW,KACnB,wBAAwB,GAAG,SA8D7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,MAYzD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,WAAW,KAAG,MA8FzD,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,UAAU,WAAW,KACpB,SAUF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,WAAW,KACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAGrC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,sBAAsB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmBD,eAAO,MAAM,uBAAuB,GAClC,SAAS,WAAW,KACnB,oBA0DF,CAAC;AAKF,eAAO,MAAM,6BAA6B,GACxC,SAAS,WAAW,KACnB,MAAM,GAAG,SAaX,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,WAAW,EACpB,gBAAgB,MAAM,EACtB,eAAe,gBAAgB,KAC9B,MAgBF,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,kBAAkB,GAAI,0EAKhC,wBAAwB,KAAG,MAyB7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,WAAW,EACrB,gBAAgB,MAAM,EACtB,eAAe,gBAAgB,EAC/B,SAAS,OAAO,KACf,MAOF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,YAAY,GAAG,SAS7D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,KAAG,MAUhE,CAAC"}
1
+ {"version":3,"file":"messageUtils.d.ts","sourceRoot":"","sources":["../../../../src/utils/messageUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,WAAW,EAEX,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,gBAAgB,GAAI,SAAS,WAAW,KAAG,OACL,CAAC;AAKpD,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAC3C,MAAM,CAAC,WAAW,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAqEjE,CAAC;AAMF,eAAO,MAAM,wBAAwB,EAEpB,WAAW,EAAE,CAAC;AA2B/B,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAQD,eAAO,MAAM,uBAAuB,GAClC,SAAS,WAAW,KACnB,wBAAwB,GAAG,SAsE7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,MAYzD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,WAAW,KAAG,MA8FzD,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,UAAU,WAAW,KACpB,SAUF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,WAAW,KACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAGrC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,sBAAsB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmBD,eAAO,MAAM,uBAAuB,GAClC,SAAS,WAAW,KACnB,oBA0DF,CAAC;AAKF,eAAO,MAAM,6BAA6B,GACxC,SAAS,WAAW,KACnB,MAAM,GAAG,SAmBX,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,WAAW,EACpB,gBAAgB,MAAM,EACtB,eAAe,gBAAgB,KAC9B,MAgBF,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,kBAAkB,GAAI,0EAKhC,wBAAwB,KAAG,MAyB7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,WAAW,EACrB,gBAAgB,MAAM,EACtB,eAAe,gBAAgB,EAC/B,SAAS,OAAO,KACf,MAOF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,YAAY,GAAG,SAS7D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,KAAG,MAUhE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-mobile",
3
- "version": "0.2.95",
3
+ "version": "0.2.97",
4
4
  "description": "Droppii chat mobile",
5
5
  "keywords": [
6
6
  "react-native",
@@ -7,6 +7,7 @@ const Images = {
7
7
  ICON_WORD: require('./icon_word.png'),
8
8
  NOTIFICATION_WARNING: require('./notification-warning.png'),
9
9
  TAG_BOT: require('./tag_bot.png'),
10
+ TAG_BOT_MALL: require('./tag_bot_mall.png'),
10
11
  TAG_MALL: require('./tag_mall.png'),
11
12
  ICON_DROPPII: require('./icon_droppii.png'),
12
13
  BTN_RESEND: require('./btn_resend.png'),
@@ -39,14 +39,19 @@ export const getInitials = (fullName?: string): string => {
39
39
 
40
40
  export const getBadgeImage = (variant?: string) => {
41
41
  const Images = require('../../assets/images').default;
42
+ const { getPlatform } = require('../../config/configuration');
43
+ const { DChatProject } = require('../../types/chat');
44
+ const botImage =
45
+ getPlatform() === DChatProject.CUS ? Images.TAG_BOT_MALL : Images.TAG_BOT;
46
+
42
47
  switch (variant) {
43
48
  case 'mall':
44
49
  return Images.TAG_MALL;
45
50
  case 'bot':
46
51
  case 'support':
47
- return Images.TAG_BOT;
52
+ return botImage;
48
53
  default:
49
- return Images.TAG_BOT;
54
+ return botImage;
50
55
  }
51
56
  };
52
57
 
@@ -23,13 +23,14 @@ export interface ApiEndpoints {
23
23
  messagesResources: string;
24
24
  messages: string;
25
25
  contacts: string;
26
+ groupJoinLink: string;
26
27
  }
27
28
 
28
29
  const DEFAULT_ENDPOINTS: ApiEndpoints = {
29
30
  urlMetadata: '/chat-service/v1/utils/url-metadata',
30
31
  conversation: '/chat-service/v1/app/conversations',
31
32
  imageUpload: '/uploader-service/v1/uploader/permanently',
32
- bot: '/chat-service/v1/app/bots/',
33
+ bot: '/chat-service/v1/app/bots',
33
34
  uploadFcmToken: '/chat-service/third/fcm_update_token',
34
35
  stickerCategories: '/chat-service/v1/app/sticker-categories',
35
36
  stickersByCategory: '/chat-service/v1/app/sticker-categories',
@@ -37,6 +38,7 @@ const DEFAULT_ENDPOINTS: ApiEndpoints = {
37
38
  messagesResources: '/chat-service/v1/app/messages/resources',
38
39
  messages: '/chat-service/v1/app/messages',
39
40
  contacts: '/chat-service/v1/app/contacts',
41
+ groupJoinLink: '/chat-service/v1/app/conversations/join-link',
40
42
  };
41
43
 
42
44
  let endpoints: ApiEndpoints = { ...DEFAULT_ENDPOINTS };
@@ -6,12 +6,16 @@
6
6
  * from the same base URL configuration.
7
7
  */
8
8
 
9
+ import { DChatProject } from '../types/chat';
10
+
9
11
  export interface AppConfig {
10
12
  apiBaseUrl: string;
13
+ platform: DChatProject;
11
14
  }
12
15
 
13
16
  let config: AppConfig = {
14
17
  apiBaseUrl: '',
18
+ platform: DChatProject.BIZ,
15
19
  };
16
20
 
17
21
  /**
@@ -39,7 +43,26 @@ export const getBaseUrl = (): string => {
39
43
  * Reset configuration (useful for testing)
40
44
  */
41
45
  export const resetBaseUrl = (): void => {
42
- config = { apiBaseUrl: '' };
46
+ config = { apiBaseUrl: '', platform: DChatProject.BIZ };
47
+ };
48
+
49
+ /**
50
+ * Initialize which app (project) the library is running in.
51
+ * This should be called during app startup, e.g. via initChatSdk().
52
+ * Components that render app-specific assets (e.g. bot badge) read this
53
+ * instead of requiring every call site to pass it down as a prop.
54
+ *
55
+ * @param platform - DChatProject.BIZ (default) or DChatProject.CUS
56
+ */
57
+ export const initPlatform = (platform: DChatProject): void => {
58
+ config.platform = platform;
59
+ };
60
+
61
+ /**
62
+ * Get the configured platform (DChatProject.BIZ by default)
63
+ */
64
+ export const getPlatform = (): DChatProject => {
65
+ return config.platform;
43
66
  };
44
67
 
45
68
  /**
package/src/core/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import OpenIMSDK from '@droppii/openim-rn-client-sdk';
2
2
  import type { InitOptions } from '@droppii/openim-rn-client-sdk';
3
- import { initBaseUrl } from '../config/configuration';
3
+ import { initBaseUrl, initPlatform } from '../config/configuration';
4
+ import type { DChatProject } from '../types/chat';
4
5
  import { useUserListener } from './useUserListener';
5
6
  import { useChatListener } from './useChatListener';
6
7
  import { useBackgroundStatusSync } from './notification/useBackgroundStatusSync';
@@ -14,6 +15,12 @@ export interface InitChatSdkOptions extends InitOptions {
14
15
  * Will be set as the centralized configuration
15
16
  */
16
17
  apiBaseUrl?: string;
18
+ /**
19
+ * Which app the library is running in — DChatProject.BIZ (default) or
20
+ * DChatProject.CUS. Drives app-specific assets (e.g. the bot avatar
21
+ * badge) without requiring every consumer to pass it down manually.
22
+ */
23
+ platform?: DChatProject;
17
24
  }
18
25
 
19
26
  /**
@@ -21,7 +28,7 @@ export interface InitChatSdkOptions extends InitOptions {
21
28
  * @param options - SDK initialization options + apiBaseUrl for centralized config
22
29
  */
23
30
  export const initChatSdk = (options: InitChatSdkOptions) => {
24
- const { apiBaseUrl, ...sdkOptions } = options;
31
+ const { apiBaseUrl, platform, ...sdkOptions } = options;
25
32
 
26
33
  // Initialize OpenIM SDK
27
34
  OpenIMSDK.initSDK(sdkOptions);
@@ -30,6 +37,11 @@ export const initChatSdk = (options: InitChatSdkOptions) => {
30
37
  if (apiBaseUrl) {
31
38
  initBaseUrl(apiBaseUrl);
32
39
  }
40
+
41
+ // Initialize which app (biz/mall) the library is running in
42
+ if (platform) {
43
+ initPlatform(platform);
44
+ }
33
45
  };
34
46
 
35
47
  export const useChatSdk = () => {
@@ -0,0 +1,167 @@
1
+ import { memo, useCallback, useEffect, useRef } from 'react';
2
+ import { GroupJoinSource } from '@droppii/openim-rn-client-sdk';
3
+ import { KButton, KColors, KContainer, KLabel } from '@droppii/libs';
4
+ import { Avatar } from '../../components/Avatar';
5
+ import { UIUtils } from '../../utils/UIUtils';
6
+ import { trans } from '../../translation';
7
+ import type { GroupInviteLinkInfo } from '../../types/chat';
8
+ import { useJoinGroup } from './useJoinGroup';
9
+ import { useResolveGroupInviteLink } from './useResolveGroupInviteLink';
10
+
11
+ const showGroupInviteLinkUnavailableModal = () => {
12
+ UIUtils.alert.open({
13
+ title: trans('group:invite_link_unavailable_title'),
14
+ message: trans('group:invite_link_unavailable_desc'),
15
+ primaryIndex: 0,
16
+ buttonType: 'horizontal-button',
17
+ buttons: [{ label: trans('group:access_blocked_button'), kind: 'primary' }],
18
+ ignoreStack: true,
19
+ });
20
+ };
21
+
22
+ interface JoinGroupConfirmSheetContentProps {
23
+ groupInfo: GroupInviteLinkInfo;
24
+ onJoined: () => void;
25
+ }
26
+
27
+ const JoinGroupConfirmSheetContent = memo(
28
+ ({ groupInfo, onJoined }: JoinGroupConfirmSheetContentProps) => {
29
+ const { mutate: joinGroup, isPending } = useJoinGroup();
30
+
31
+ const handleConfirm = useCallback(() => {
32
+ if (isPending) return;
33
+ joinGroup(
34
+ {
35
+ groupID: groupInfo.groupId,
36
+ reqMsg: '',
37
+ joinSource: GroupJoinSource.QrCode,
38
+ groupName: groupInfo.groupName,
39
+ },
40
+ {
41
+ onSuccess: () => {
42
+ UIUtils.bottomSheet.dismiss();
43
+ onJoined();
44
+ },
45
+ onError: () => {
46
+ UIUtils.toast.open({
47
+ title: trans('chat:generic_error'),
48
+ theme: 'error',
49
+ });
50
+ },
51
+ }
52
+ );
53
+ }, [joinGroup, groupInfo, onJoined, isPending]);
54
+
55
+ return (
56
+ <KContainer.View paddingH="1rem" paddingB="1rem" alignItems>
57
+ <Avatar
58
+ size="4xlg"
59
+ source={groupInfo.groupAvatar}
60
+ fullName={groupInfo.groupName}
61
+ />
62
+ <KLabel.Text
63
+ typo="TextLgBold"
64
+ color={KColors.black}
65
+ paddingT="0.75rem"
66
+ numberOfLines={2}
67
+ textAlign="center"
68
+ >
69
+ {groupInfo.groupName}
70
+ </KLabel.Text>
71
+ <KLabel.Text
72
+ typo="TextMdNormal"
73
+ color={KColors.gray.normal}
74
+ paddingT="0.25rem"
75
+ >
76
+ {trans('group:member_count', { count: groupInfo.groupTotalMember })}
77
+ </KLabel.Text>
78
+ <KButton.Solid
79
+ label={trans('group:join_group_confirm_button')}
80
+ onPress={handleConfirm}
81
+ loading={isPending}
82
+ isLightSolid
83
+ kind="primary"
84
+ stretch
85
+ marginT="1rem"
86
+ />
87
+ </KContainer.View>
88
+ );
89
+ }
90
+ );
91
+
92
+ const openJoinGroupConfirmSheet = (params: {
93
+ groupInfo: GroupInviteLinkInfo;
94
+ onJoined: () => void;
95
+ }) => {
96
+ UIUtils.bottomSheet.open({
97
+ header: {
98
+ title: { text: trans('group:join_group_confirm_title') },
99
+ alignment: 'left',
100
+ showCloseButton: true,
101
+ },
102
+ touchOutsideToDismiss: true,
103
+ body: {
104
+ renderContent: () => (
105
+ <JoinGroupConfirmSheetContent
106
+ groupInfo={params.groupInfo}
107
+ onJoined={params.onJoined}
108
+ />
109
+ ),
110
+ },
111
+ });
112
+ };
113
+
114
+ interface UseJoinGroupByInviteLinkParams {
115
+ code?: string;
116
+ /** Fired once membership is resolved (existing member, or just-joined group) — navigate into the group thread. */
117
+ onAllowed: (target: { groupId: string; conversationId: string }) => void;
118
+ }
119
+
120
+ /**
121
+ * Orchestrates the invite-link entry flow: resolves the code via BE, then
122
+ * routes to the right outcome — existing member / public non-member both
123
+ * resolve immediately via `onAllowed` (the group screen's own access guard
124
+ * derives view-only vs full access on its own), a private non-member sees a
125
+ * confirm-join bottom sheet first, and any resolve failure shows the
126
+ * Unavailable Link modal. Settles at most once per `code` — a background
127
+ * refetch of the resolve query must not re-open the sheet or re-fire
128
+ * `onAllowed`.
129
+ */
130
+ export const useJoinGroupByInviteLink = ({
131
+ code,
132
+ onAllowed,
133
+ }: UseJoinGroupByInviteLinkParams) => {
134
+ const { data, isLoading, isError } = useResolveGroupInviteLink(code);
135
+ const settledCodeRef = useRef<string | undefined>(undefined);
136
+
137
+ useEffect(() => {
138
+ if (!code || isLoading || settledCodeRef.current === code) return;
139
+
140
+ if (isError || !data) {
141
+ settledCodeRef.current = code;
142
+ showGroupInviteLinkUnavailableModal();
143
+ return;
144
+ }
145
+
146
+ if (data.isMember) {
147
+ settledCodeRef.current = code;
148
+ onAllowed({ groupId: data.groupId, conversationId: data.conversationId });
149
+ return;
150
+ }
151
+
152
+ settledCodeRef.current = code;
153
+ UIUtils.bottomSheet.dismiss();
154
+ openJoinGroupConfirmSheet({
155
+ groupInfo: data,
156
+ onJoined: () => {
157
+ onAllowed({
158
+ groupId: data.groupId,
159
+ conversationId: data.conversationId,
160
+ });
161
+ },
162
+ });
163
+ // Do not add code as dependency
164
+ // Because data is delayed compared to code -> cause stalling data
165
+ // eslint-disable-next-line react-hooks/exhaustive-deps
166
+ }, [isLoading, isError, data, onAllowed]);
167
+ };
@@ -0,0 +1,20 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { groupQueryKeys } from '../query-keys';
3
+ import type { GroupInviteLinkInfo } from '../../types/chat';
4
+ import { apiInstance, unwrapEnvelope } from '../../services/apis';
5
+ import type { BaseResponse } from '../../types/auth';
6
+ import { ENDPOINTS } from '../../services/endpoints';
7
+
8
+ export const useResolveGroupInviteLink = (code?: string) => {
9
+ return useQuery({
10
+ queryKey: groupQueryKeys.inviteInfo(code ?? ''),
11
+ enabled: Boolean(code),
12
+ queryFn: async () => {
13
+ const res = await apiInstance?.get<BaseResponse<GroupInviteLinkInfo>>(
14
+ ENDPOINTS.chatService.groupJoinLink(code!)
15
+ );
16
+ return unwrapEnvelope<GroupInviteLinkInfo>(res);
17
+ },
18
+ refetchOnWindowFocus: false,
19
+ });
20
+ };
@@ -1,6 +1,6 @@
1
1
  import { useInfiniteQuery } from '@tanstack/react-query';
2
2
  import { messageQueryKeys } from '../query-keys';
3
- import { apiInstance } from '../../services/apis';
3
+ import { apiInstance, unwrapEnvelope } from '../../services/apis';
4
4
  import { ENDPOINTS } from '../../services/endpoints';
5
5
  import { MessageType } from '@droppii/openim-rn-client-sdk';
6
6
  import type {
@@ -45,17 +45,18 @@ export const useSearchMessage = ({
45
45
  searchTerm: query.trim(),
46
46
  conversationId,
47
47
  };
48
- console.log('params', params);
49
48
  const res = await apiInstance?.post<BaseResponse<ISearchMessageItem[]>>(
50
49
  ENDPOINTS.chatService.searchMessages(),
51
50
  params
52
51
  );
53
- return res?.data;
52
+ return unwrapEnvelope<ISearchMessageItem[]>(res) ?? [];
54
53
  },
55
- getNextPageParam: (lastPage) => {
56
- const currentPage = lastPage?.pageable?.pageNumber || 1;
57
- const dataLength = lastPage?.data?.length || 0;
58
- return dataLength < pageSize ? undefined : currentPage + 1;
54
+ getNextPageParam: (lastPage, allPages) => {
55
+ // unwrapEnvelope always resolves a page down to the bare item array, so there's
56
+ // no server-echoed pageable metadata here — derive the next page from how many
57
+ // pages we've already fetched instead of `lastPage.pageable.pageNumber`.
58
+ const dataLength = lastPage?.length || 0;
59
+ return dataLength < pageSize ? undefined : allPages.length + 1;
59
60
  },
60
61
  initialPageParam: 1,
61
62
  enabled: enabled && !!query && !!applicationType,
@@ -63,11 +64,7 @@ export const useSearchMessage = ({
63
64
 
64
65
  const baseItems = useMemo<ISearchMessageItem[]>(() => {
65
66
  if (!query.trim() || !data) return [];
66
- return (
67
- data?.pages
68
- ?.flatMap?.((page) => page?.data)
69
- ?.filter((item) => item !== undefined) || []
70
- );
67
+ return data?.pages?.flat?.() || [];
71
68
  }, [data, query]);
72
69
 
73
70
  const [dataFlatten, setDataFlatten] =
@@ -81,4 +81,6 @@ export const groupQueryKeys = {
81
81
  [...groupQueryKeys.public(), keyword] as const,
82
82
  join: () => [...groupQueryKeys.all, 'join'] as const,
83
83
  leave: () => [...groupQueryKeys.all, 'leave'] as const,
84
+ inviteInfo: (code: string) =>
85
+ [...groupQueryKeys.all, 'inviteInfo', code] as const,
84
86
  };
@@ -9,17 +9,22 @@ import {
9
9
  KRadiusValue,
10
10
  KSpacingValue,
11
11
  } from '@droppii/libs';
12
+ import {
13
+ GroupJoinSource,
14
+ type ConversationItem,
15
+ } from '@droppii/openim-rn-client-sdk';
12
16
  import { MessagesTab } from './MessagesTab';
13
- import type { ConversationItem } from '@droppii/openim-rn-client-sdk';
14
17
  import { trans } from '../../translation';
15
18
  import { CommunityTab } from './CommunityTab';
19
+ import { useJoinGroupByInviteLink } from '../../hooks/groups/useJoinGroupByInviteLink';
16
20
 
17
21
  interface InboxProps {
18
22
  onPressThread?: (item?: ConversationItem) => void;
19
23
  onPressSearch?: () => void;
20
24
  onPressEdit?: () => void;
21
25
  onPressContact?: () => void;
22
- onPressGroup?: (groupId: string) => void;
26
+ onPressGroup?: (groupId: string, groupJoinSource?: GroupJoinSource) => void;
27
+ groupInviteLinkCode?: string;
23
28
  }
24
29
 
25
30
  type TabRoute = { key: string; title: string };
@@ -36,8 +41,22 @@ const Inbox = memo(
36
41
  onPressEdit,
37
42
  onPressContact,
38
43
  onPressGroup,
44
+ groupInviteLinkCode,
39
45
  }: InboxProps) => {
40
46
  const [index, setIndex] = useState(0);
47
+
48
+ const handleGroupInviteLinkAllowed = useCallback(
49
+ (target: { groupId: string; conversationId: string }) => {
50
+ onPressGroup?.(target.groupId, GroupJoinSource.QrCode);
51
+ },
52
+ [onPressGroup]
53
+ );
54
+
55
+ useJoinGroupByInviteLink({
56
+ code: groupInviteLinkCode,
57
+ onAllowed: handleGroupInviteLinkAllowed,
58
+ });
59
+
41
60
  const [routes] = useState<TabRoute[]>(TabRoutes);
42
61
 
43
62
  const renderScene = useCallback(
@@ -40,6 +40,8 @@ export const ENDPOINTS = {
40
40
  stickerHistory: () => getApiEndpoint('stickerHistory'),
41
41
  searchMessages: () => `${getApiEndpoint('messages')}/search`,
42
42
  searchContacts: () => `${getApiEndpoint('contacts')}/search`,
43
+ groupJoinLink: (code: string) =>
44
+ `${getApiEndpoint('groupJoinLink')}/${code}`,
43
45
  },
44
46
  uploaderService: {
45
47
  get uploadImage() {
@@ -0,0 +1,15 @@
1
+ import { apiInstance, unwrapEnvelope } from './apis';
2
+ import { getApiEndpoint } from '../config/api-endpoints';
3
+ import type { BaseResponse } from '../types/auth';
4
+ import type { GroupInviteLinkInfo } from '../types/chat';
5
+
6
+ export namespace GroupInviteService {
7
+ export const fetchGroupInviteLinkInfo = async (
8
+ code: string
9
+ ): Promise<GroupInviteLinkInfo | null> => {
10
+ const res = await apiInstance?.get<BaseResponse<GroupInviteLinkInfo>>(
11
+ `${getApiEndpoint('groupJoinLink')}/${code}`
12
+ );
13
+ return unwrapEnvelope<GroupInviteLinkInfo>(res);
14
+ };
15
+ }
@@ -104,6 +104,7 @@ const i18nKey: Record<string, string> = {
104
104
  'chat:group_message_unpinned_by': '{{sender}} đã bỏ ghim một tin nhắn',
105
105
  'msg_type_member_enter': 'Đã tham gia nhóm',
106
106
  'chat:member_enter_by': '{{sender}} đã tham gia nhóm',
107
+ 'chat:member_enter_via_link': '{{sender}} đã tham gia nhóm qua link',
107
108
  'msg_type_group_dismissed': 'Nhóm đã bị giải tán',
108
109
  'chat:group_dismissed_by': '{{sender}} đã giải tán nhóm',
109
110
  'msg_type_group_member_muted': 'Đã tắt tiếng thành viên',
@@ -227,6 +228,11 @@ const i18nKey: Record<string, string> = {
227
228
  'group:access_blocked_desc':
228
229
  'Bạn hiện không có quyền truy cập vào cuộc trò chuyện hoặc tin nhắn này.',
229
230
  'group:access_blocked_button': 'Đã hiểu',
231
+ 'group:join_group_confirm_title': 'Tham gia nhóm',
232
+ 'group:join_group_confirm_button': 'Tham gia nhóm',
233
+ 'group:invite_link_unavailable_title': 'Liên kết không còn khả dụng',
234
+ 'group:invite_link_unavailable_desc':
235
+ 'Liên kết đã bị thu hồi, thay thế hoặc nhóm không còn tồn tại. Vui lòng liên hệ người gửi để nhận liên kết mới.',
230
236
  };
231
237
 
232
238
  export default {
package/src/types/chat.ts CHANGED
@@ -2,6 +2,7 @@ import {
2
2
  MessageType,
3
3
  type ConversationItem,
4
4
  type GroupItem,
5
+ type GroupVisibility,
5
6
  type MessageItem,
6
7
  type SelfUserInfo,
7
8
  } from '@droppii/openim-rn-client-sdk';
@@ -37,14 +38,7 @@ export interface ChatUIAdapter {
37
38
  }
38
39
 
39
40
  export type GenerateChatDetailLinkFn = (
40
- params: Pick<
41
- ChatDetailProps,
42
- | 'targetConversationId'
43
- | 'targetUserId'
44
- | 'targetGroupId'
45
- | 'targetBotId'
46
- | 'targetMessageId'
47
- >
41
+ params: Pick<ChatDetailProps, 'targetConversationId' | 'targetMessageId'>
48
42
  ) => string;
49
43
 
50
44
  export interface ChatContextType {
@@ -407,3 +401,15 @@ export interface IContactSearchItem {
407
401
  memberCount?: number;
408
402
  description?: string;
409
403
  }
404
+
405
+ /** Response shape of `GET /chat-service/v1/app/conversations/join-link/{code}`. */
406
+ export interface GroupInviteLinkInfo {
407
+ conversationId: string;
408
+ groupId: string;
409
+ groupName: string;
410
+ groupDescription: string;
411
+ groupVisibility: GroupVisibility;
412
+ groupAvatar: string;
413
+ isMember: boolean;
414
+ groupTotalMember: number;
415
+ }
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import {
6
+ GroupJoinSource,
6
7
  MessageType,
7
8
  PeerType,
8
9
  type ConversationItem,
@@ -196,6 +197,14 @@ export const resolveNotificationText = (
196
197
  }
197
198
  break;
198
199
  }
200
+ case MessageType.MemberEnter: {
201
+ const joinSource = detail?.entrantUser?.joinSource;
202
+ if (joinSource === GroupJoinSource.QrCode) {
203
+ previewKey = 'chat:member_enter_via_link';
204
+ bySenderKey = 'chat:member_enter_via_link';
205
+ }
206
+ break;
207
+ }
199
208
  default:
200
209
  break;
201
210
  }
@@ -433,10 +442,16 @@ export const getNotificationOpUserNickname = (
433
442
  const parsed = JSON.parse(message.notificationElem.detail) as {
434
443
  opUser?: { nickname?: string };
435
444
  quitUser?: { nickname?: string };
445
+ entrantUser?: { nickname?: string };
436
446
  };
437
- // MemberQuit puts the leaver in `quitUser`, not `opUser` — every other
438
- // group-notification content type uses `opUser` for the actor.
439
- return parsed?.opUser?.nickname ?? parsed?.quitUser?.nickname;
447
+ // MemberQuit puts the leaver in `quitUser`
448
+ // MemberEnter puts the joiner in `entrantUser`
449
+ // every other group-notification content type uses `opUser` for the actor.
450
+ return (
451
+ parsed?.opUser?.nickname ??
452
+ parsed?.quitUser?.nickname ??
453
+ parsed?.entrantUser?.nickname
454
+ );
440
455
  } catch {
441
456
  return undefined;
442
457
  }