@droppii-org/chat-mobile 0.2.64 → 0.2.66

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 (68) hide show
  1. package/lib/module/context/ChatDetailContext.js +24 -3
  2. package/lib/module/context/ChatDetailContext.js.map +1 -1
  3. package/lib/module/core/useChatListener.js +21 -10
  4. package/lib/module/core/useChatListener.js.map +1 -1
  5. package/lib/module/hooks/conversation/useGetGroupInfo.js +19 -0
  6. package/lib/module/hooks/conversation/useGetGroupInfo.js.map +1 -0
  7. package/lib/module/hooks/message/useSendMessage.js +13 -3
  8. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  9. package/lib/module/hooks/query-keys.js +2 -1
  10. package/lib/module/hooks/query-keys.js.map +1 -1
  11. package/lib/module/screens/ChatInfo/ChatInfo.js +18 -2
  12. package/lib/module/screens/ChatInfo/ChatInfo.js.map +1 -1
  13. package/lib/module/screens/ChatInfo/ChatInfoActions.js +83 -55
  14. package/lib/module/screens/ChatInfo/ChatInfoActions.js.map +1 -1
  15. package/lib/module/screens/ChatInfo/ChatInfoDescriptionRow.js +77 -0
  16. package/lib/module/screens/ChatInfo/ChatInfoDescriptionRow.js.map +1 -0
  17. package/lib/module/screens/ChatInfo/GroupDescriptionModal.js +58 -0
  18. package/lib/module/screens/ChatInfo/GroupDescriptionModal.js.map +1 -0
  19. package/lib/module/screens/chat-detail/ChatComposer.js +12 -1
  20. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  21. package/lib/module/translation/resources/i18n.js +5 -1
  22. package/lib/module/translation/resources/i18n.js.map +1 -1
  23. package/lib/module/types/chat.js.map +1 -1
  24. package/lib/module/types/events.js +1 -0
  25. package/lib/module/types/events.js.map +1 -1
  26. package/lib/module/utils/conversation.js +3 -0
  27. package/lib/module/utils/conversation.js.map +1 -1
  28. package/lib/typescript/src/context/ChatDetailContext.d.ts.map +1 -1
  29. package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
  30. package/lib/typescript/src/hooks/conversation/useGetGroupInfo.d.ts +2 -0
  31. package/lib/typescript/src/hooks/conversation/useGetGroupInfo.d.ts.map +1 -0
  32. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  33. package/lib/typescript/src/hooks/query-keys.d.ts +1 -0
  34. package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
  35. package/lib/typescript/src/screens/ChatInfo/ChatInfo.d.ts +1 -1
  36. package/lib/typescript/src/screens/ChatInfo/ChatInfo.d.ts.map +1 -1
  37. package/lib/typescript/src/screens/ChatInfo/ChatInfoActions.d.ts +3 -1
  38. package/lib/typescript/src/screens/ChatInfo/ChatInfoActions.d.ts.map +1 -1
  39. package/lib/typescript/src/screens/ChatInfo/ChatInfoDescriptionRow.d.ts +7 -0
  40. package/lib/typescript/src/screens/ChatInfo/ChatInfoDescriptionRow.d.ts.map +1 -0
  41. package/lib/typescript/src/screens/ChatInfo/GroupDescriptionModal.d.ts +9 -0
  42. package/lib/typescript/src/screens/ChatInfo/GroupDescriptionModal.d.ts.map +1 -0
  43. package/lib/typescript/src/screens/ChatInfo/types.d.ts +1 -0
  44. package/lib/typescript/src/screens/ChatInfo/types.d.ts.map +1 -1
  45. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  46. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  47. package/lib/typescript/src/types/chat.d.ts +2 -1
  48. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  49. package/lib/typescript/src/types/events.d.ts +6 -1
  50. package/lib/typescript/src/types/events.d.ts.map +1 -1
  51. package/lib/typescript/src/utils/conversation.d.ts +1 -0
  52. package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
  53. package/package.json +2 -2
  54. package/src/context/ChatDetailContext.tsx +34 -1
  55. package/src/core/useChatListener.ts +53 -17
  56. package/src/hooks/conversation/useGetGroupInfo.ts +18 -0
  57. package/src/hooks/message/useSendMessage.ts +21 -2
  58. package/src/hooks/query-keys.ts +1 -0
  59. package/src/screens/ChatInfo/ChatInfo.tsx +16 -0
  60. package/src/screens/ChatInfo/ChatInfoActions.tsx +68 -35
  61. package/src/screens/ChatInfo/ChatInfoDescriptionRow.tsx +102 -0
  62. package/src/screens/ChatInfo/GroupDescriptionModal.tsx +67 -0
  63. package/src/screens/ChatInfo/types.ts +1 -0
  64. package/src/screens/chat-detail/ChatComposer.tsx +17 -1
  65. package/src/translation/resources/i18n.ts +4 -0
  66. package/src/types/chat.ts +2 -0
  67. package/src/types/events.ts +7 -0
  68. package/src/utils/conversation.ts +6 -0
@@ -19,6 +19,7 @@ export declare const conversationQueryKeys: {
19
19
  detailBySourceId: (sourceId: string) => string[];
20
20
  joinedGroup: (groupId?: string) => string[];
21
21
  create: (userId?: string) => string[];
22
+ groupInfo: (groupId: string) => readonly ["groupInfo", string];
22
23
  };
23
24
  export declare const usersQueryKeys: {
24
25
  all: readonly ["users"];
@@ -1 +1 @@
1
- {"version":3,"file":"query-keys.d.ts","sourceRoot":"","sources":["../../../../src/hooks/query-keys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;uBAEP,MAAM;CAC1B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;4BAGR,MAAM;;6BAGL,MAAM;0BAET,MAAM;yCACS,MAAM;2BAEpB,MAAM;mCACE,MAAM;gCAIT,MAAM;8BAIR,MAAM;mCACD,MAAM;2BAId,MAAM;iCACA,MAAM;4BACX,MAAM;sBACZ,MAAM;CACzB,CAAC;AAEF,eAAO,MAAM,cAAc;;oBAET,MAAM,EAAE;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;6BAGF,MAAM;;CAGhC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;qBAEjB,MAAM,eAAe,MAAM;CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;oBAEX,MAAM,mBAAmB,MAAM;CAEhD,CAAC"}
1
+ {"version":3,"file":"query-keys.d.ts","sourceRoot":"","sources":["../../../../src/hooks/query-keys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;uBAEP,MAAM;CAC1B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;4BAGR,MAAM;;6BAGL,MAAM;0BAET,MAAM;yCACS,MAAM;2BAEpB,MAAM;mCACE,MAAM;gCAIT,MAAM;8BAIR,MAAM;mCACD,MAAM;2BAId,MAAM;iCACA,MAAM;4BACX,MAAM;sBACZ,MAAM;yBACH,MAAM;CAC5B,CAAC;AAEF,eAAO,MAAM,cAAc;;oBAET,MAAM,EAAE;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;6BAGF,MAAM;;CAGhC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;qBAEjB,MAAM,eAAe,MAAM;CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;oBAEX,MAAM,mBAAmB,MAAM;CAEhD,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { ChatInfoProps } from './types';
2
- declare const ChatInfo: import("react").MemoExoticComponent<({ conversationId, onBack, onPressSearch, onPressMedia, onPressOrders, onPressCreateGroup, onPressAddToGroup, }: ChatInfoProps) => import("react").JSX.Element>;
2
+ declare const ChatInfo: import("react").MemoExoticComponent<({ conversationId, onBack, onPressSearch, onPressMedia, onPressOrders, onPressCreateGroup, onPressAddToGroup, onPressLeaveGroup, }: ChatInfoProps) => import("react").JSX.Element>;
3
3
  export default ChatInfo;
4
4
  //# sourceMappingURL=ChatInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInfo.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/ChatInfo.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,QAAA,MAAM,QAAQ,uJAST,aAAa,iCAsCjB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"ChatInfo.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/ChatInfo.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,QAAA,MAAM,QAAQ,0KAUT,aAAa,iCAkDjB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -2,10 +2,12 @@ import type { ConversationItem } from '@droppii/openim-rn-client-sdk';
2
2
  interface ChatInfoActionsProps {
3
3
  conversation?: ConversationItem;
4
4
  isTargetActive: boolean;
5
+ isGroup?: boolean;
5
6
  onPressOrders?: () => void;
6
7
  onPressCreateGroup?: () => void;
7
8
  onPressAddToGroup?: () => void;
9
+ onPressLeaveGroup?: () => void;
8
10
  }
9
- declare const ChatInfoActions: import("react").MemoExoticComponent<({ conversation, isTargetActive, onPressOrders, onPressCreateGroup, onPressAddToGroup, }: ChatInfoActionsProps) => import("react").JSX.Element>;
11
+ declare const ChatInfoActions: import("react").MemoExoticComponent<({ conversation, isTargetActive, isGroup, onPressOrders, onPressCreateGroup, onPressAddToGroup, onPressLeaveGroup, }: ChatInfoActionsProps) => import("react").JSX.Element>;
10
12
  export default ChatInfoActions;
11
13
  //# sourceMappingURL=ChatInfoActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInfoActions.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/ChatInfoActions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAItE,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,QAAA,MAAM,eAAe,gIAOhB,oBAAoB,iCA0IxB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ChatInfoActions.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/ChatInfoActions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAItE,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,QAAA,MAAM,eAAe,4JAShB,oBAAoB,iCAuKxB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface ChatInfoDescriptionRowProps {
2
+ introduction?: string;
3
+ groupName?: string;
4
+ }
5
+ declare const ChatInfoDescriptionRow: import("react").MemoExoticComponent<({ introduction, groupName }: ChatInfoDescriptionRowProps) => import("react").JSX.Element>;
6
+ export default ChatInfoDescriptionRow;
7
+ //# sourceMappingURL=ChatInfoDescriptionRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInfoDescriptionRow.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/ChatInfoDescriptionRow.tsx"],"names":[],"mappings":"AAMA,UAAU,2BAA2B;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,QAAA,MAAM,sBAAsB,oEACI,2BAA2B,iCA4E1D,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ interface GroupDescriptionModalProps {
2
+ visible: boolean;
3
+ groupName?: string;
4
+ introduction?: string;
5
+ onClose: () => void;
6
+ }
7
+ declare const GroupDescriptionModal: import("react").MemoExoticComponent<({ visible, groupName, introduction, onClose, }: GroupDescriptionModalProps) => import("react").JSX.Element>;
8
+ export default GroupDescriptionModal;
9
+ //# sourceMappingURL=GroupDescriptionModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupDescriptionModal.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/GroupDescriptionModal.tsx"],"names":[],"mappings":"AAMA,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,qBAAqB,uFAMtB,0BAA0B,iCAqC9B,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
@@ -7,5 +7,6 @@ export interface ChatInfoProps {
7
7
  onPressOrders?: () => void;
8
8
  onPressCreateGroup?: () => void;
9
9
  onPressAddToGroup?: () => void;
10
+ onPressLeaveGroup?: () => void;
10
11
  }
11
12
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACzD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACzD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AA8BtB,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAqB5E,UAAU,yBAAyB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,YAAY,6HAOpB,yBAAyB,iCAid7B,CAAC"}
1
+ {"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AA8BtB,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAuB5E,UAAU,yBAAyB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,YAAY,6HAOpB,yBAAyB,iCA+d7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAqIA,wBAEE"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAyIA,wBAEE"}
@@ -1,4 +1,4 @@
1
- import { MessageType, type ConversationItem, type MessageItem } from '@droppii/openim-rn-client-sdk';
1
+ import { GroupPermission, MessageType, type ConversationItem, type MessageItem } from '@droppii/openim-rn-client-sdk';
2
2
  import type { PropsWithChildren } from 'react';
3
3
  import type { IUrlMetadata } from './common';
4
4
  import type { DFlowContext, IConversationFlow, IConversationFlowStep, InputButtonItem, IRunConversationFlowPayload } from './flows';
@@ -179,6 +179,7 @@ export interface ChatDetailContextType {
179
179
  quotedMessage?: MessageItem;
180
180
  setQuotedMessage: (item?: MessageItem) => void;
181
181
  conversationFlowMainMenu?: InputButtonItem[];
182
+ groupPermissions: GroupPermission[];
182
183
  }
183
184
  export interface ChatDetailProviderProps extends PropsWithChildren {
184
185
  }
@@ -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,7 +1,9 @@
1
+ import type { GroupPermission } from '@droppii/openim-rn-client-sdk';
1
2
  export declare enum ChatEvent {
2
3
  ScrollToMessage = "chat:scroll_to_message",
3
4
  ScrollToBottom = "chat:scroll_to_bottom",
4
- MessageRevoked = "chat:message_revoked"
5
+ MessageRevoked = "chat:message_revoked",
6
+ GroupPermissionUpdated = "chat:group_permission_updated"
5
7
  }
6
8
  export interface ScrollToMessagePayload {
7
9
  clientMessageId: string;
@@ -9,4 +11,7 @@ export interface ScrollToMessagePayload {
9
11
  export interface MessageRevokedPayload {
10
12
  clientMsgID: string;
11
13
  }
14
+ export interface GroupPermissionUpdatedPayload {
15
+ permissions: GroupPermission[];
16
+ }
12
17
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,eAAe,2BAA2B;IAC1C,cAAc,0BAA0B;IACxC,cAAc,yBAAyB;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,oBAAY,SAAS;IACnB,eAAe,2BAA2B;IAC1C,cAAc,0BAA0B;IACxC,cAAc,yBAAyB;IACvC,sBAAsB,kCAAkC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC"}
@@ -6,4 +6,5 @@ export declare const sortConversation: (map: Record<string, ConversationItem>) =
6
6
  list: string[];
7
7
  };
8
8
  export declare const getBotId: (conversation?: ConversationItem) => any;
9
+ export declare const isGroupConversation: (conversation?: Pick<ConversationItem, "conversationType" | "peerType">) => boolean;
9
10
  //# sourceMappingURL=conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../src/utils/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,mBAAmB,GAC9B,GAAG,gBAAgB,EACnB,GAAG,gBAAgB,WAcpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,EACxB,WAAW,MAAM,EACjB,aAAa,MAAM,WAUpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;;;CAKrE,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,eAAe,gBAAgB,QAWvD,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../src/utils/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,mBAAmB,GAC9B,GAAG,gBAAgB,EACnB,GAAG,gBAAgB,WAcpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,EACxB,WAAW,MAAM,EACjB,aAAa,MAAM,WAUpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;;;CAKrE,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,eAAe,gBAAgB,QAWvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,eAAe,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,UAAU,CAAC,YAGvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-mobile",
3
- "version": "0.2.64",
3
+ "version": "0.2.66",
4
4
  "description": "Droppii chat mobile",
5
5
  "keywords": [
6
6
  "react-native",
@@ -69,7 +69,7 @@
69
69
  "example-legacy": "yarn workspace @droppii-org/chat-mobile-example-legacy"
70
70
  },
71
71
  "dependencies": {
72
- "@droppii/openim-rn-client-sdk": "git+ssh://git@github.com/droppii/open-im-sdk-reactnative.git#v1.0.0-rc20",
72
+ "@droppii/openim-rn-client-sdk": "git+ssh://git@github.com/droppii/open-im-sdk-reactnative.git#v1.0.0-rc24",
73
73
  "@legendapp/list": "^3.0.6",
74
74
  "axios": "^1.16.1",
75
75
  "lodash": "^4.18.1",
@@ -6,14 +6,20 @@ import {
6
6
  useMemo,
7
7
  useState,
8
8
  } from 'react';
9
+ import { DeviceEventEmitter } from 'react-native';
9
10
  import {
10
11
  DFlowState,
11
12
  type ChatDetailContextType,
12
13
  type ChatDetailProviderProps,
13
14
  } from '../types/chat';
14
15
  import { fechtCurrentConversationFlow } from '../hooks/flows/useCurrentConversationFlow';
16
+ import { ChatEvent, type GroupPermissionUpdatedPayload } from '../types/events';
15
17
  import { useConversationStore } from '../store';
16
- import { PeerType, type MessageItem } from '@droppii/openim-rn-client-sdk';
18
+ import OpenIMSDK, {
19
+ GroupPermission,
20
+ PeerType,
21
+ type MessageItem,
22
+ } from '@droppii/openim-rn-client-sdk';
17
23
  import {
18
24
  DFlowContext,
19
25
  NodeTypes,
@@ -33,6 +39,7 @@ export const ChatDetailContext = createContext<ChatDetailContextType>({
33
39
  conversation: undefined,
34
40
  quotedMessage: undefined,
35
41
  setQuotedMessage: () => {},
42
+ groupPermissions: [],
36
43
  });
37
44
 
38
45
  export const useChatDetailContext = (): ChatDetailContextType => {
@@ -60,6 +67,31 @@ export const ChatDetailProvider = ({ children }: ChatDetailProviderProps) => {
60
67
  undefined
61
68
  );
62
69
 
70
+ const [groupPermissions, setGroupPermissions] = useState<GroupPermission[]>(
71
+ []
72
+ );
73
+
74
+ useEffect(() => {
75
+ const groupId = conversation?.groupID;
76
+ if (!groupId) {
77
+ setGroupPermissions([]);
78
+ return;
79
+ }
80
+ OpenIMSDK.getSelfUserInfo(groupId)
81
+ .then((info) => setGroupPermissions(info?.permissions ?? []))
82
+ .catch(() => setGroupPermissions([]));
83
+ }, [conversation?.groupID]);
84
+
85
+ useEffect(() => {
86
+ const sub = DeviceEventEmitter.addListener(
87
+ ChatEvent.GroupPermissionUpdated,
88
+ ({ permissions }: GroupPermissionUpdatedPayload) => {
89
+ setGroupPermissions(permissions);
90
+ }
91
+ );
92
+ return () => sub.remove();
93
+ }, []);
94
+
63
95
  const flowState = useMemo(() => {
64
96
  return conversationFlow
65
97
  ? conversationFlow?.flowCurrentStep?.data?.children?.some(
@@ -150,6 +182,7 @@ export const ChatDetailProvider = ({ children }: ChatDetailProviderProps) => {
150
182
  quotedMessage,
151
183
  setQuotedMessage,
152
184
  conversationFlowMainMenu,
185
+ groupPermissions,
153
186
  }}
154
187
  >
155
188
  {children}
@@ -18,6 +18,8 @@ import isEmpty from 'lodash/isEmpty';
18
18
  import { markMessageRevoked, useMessageStore } from '../store/message';
19
19
  import { syncPinnedMessagesOnEvent } from '../hooks/message/usePinMessage';
20
20
  import { belongsToConversation } from '../utils/message';
21
+ import { DeviceEventEmitter } from 'react-native';
22
+ import { ChatEvent } from '../types/events';
21
23
 
22
24
  export const useChatListener = () => {
23
25
  const updateOneMessage = useMessageStore((state) => state.updateOneMessage);
@@ -40,20 +42,25 @@ export const useChatListener = () => {
40
42
  const onConversationChanged = useCallback(
41
43
  (conversations: ConversationItem[]) => {
42
44
  const oldMap = useConversationStore.getState().map;
43
- if (isShowFLashMessage) {
44
- for (const conversation of conversations) {
45
- const oldConversation = oldMap[conversation.conversationID];
46
- if (
47
- conversation.recvMsgOpt === MessageReceiveOptType.NotNotify ||
48
- isEmpty(conversation?.latestMsg) ||
49
- oldConversation?.latestMsgSendTime ===
50
- conversation?.latestMsgSendTime
51
- ) {
52
- continue;
53
- }
54
- const latestMsg: MessageItem = JSON.parse(
55
- conversation.latestMsg || '{}'
56
- );
45
+ const visibleConversations: ConversationItem[] = [];
46
+
47
+ for (const conversation of conversations) {
48
+ const latestMsg: MessageItem | null = conversation.latestMsg
49
+ ? JSON.parse(conversation.latestMsg)
50
+ : null;
51
+
52
+ if (latestMsg?.isInternal) continue;
53
+
54
+ visibleConversations.push(conversation);
55
+
56
+ if (
57
+ isShowFLashMessage &&
58
+ !isEmpty(conversation.latestMsg) &&
59
+ conversation.recvMsgOpt !== MessageReceiveOptType.NotNotify &&
60
+ latestMsg &&
61
+ oldMap[conversation.conversationID]?.latestMsgSendTime !==
62
+ conversation.latestMsgSendTime
63
+ ) {
57
64
  const lastMessageText = getLastMessageText({
58
65
  message: latestMsg,
59
66
  currentUserId,
@@ -73,7 +80,8 @@ export const useChatListener = () => {
73
80
  });
74
81
  }
75
82
  }
76
- useConversationStore.getState().updateConversations(conversations);
83
+
84
+ useConversationStore.getState().updateConversations(visibleConversations);
77
85
  },
78
86
  [currentUserId, isShowFLashMessage, onPressFlashMessage]
79
87
  );
@@ -97,6 +105,23 @@ export const useChatListener = () => {
97
105
  });
98
106
  }, []);
99
107
 
108
+ const OnGroupMemberInfoChanged = useCallback(
109
+ (member: GroupMemberItem) => {
110
+ const conversation = useConversationStore
111
+ .getState()
112
+ .getCurrentConversation();
113
+ if (
114
+ member?.groupID === conversation?.groupID &&
115
+ member?.userID === currentUserId
116
+ ) {
117
+ DeviceEventEmitter.emit(ChatEvent.GroupPermissionUpdated, {
118
+ permissions: member.permissions ?? [],
119
+ });
120
+ }
121
+ },
122
+ [currentUserId]
123
+ );
124
+
100
125
  const onMessageRevoked = useCallback((revokedInfo: RevokedInfo) => {
101
126
  markMessageRevoked(revokedInfo.clientMsgID);
102
127
  }, []);
@@ -128,8 +153,10 @@ export const useChatListener = () => {
128
153
  useConversationStore.getState().currentConversationId;
129
154
  const targetUserId = useConversationStore.getState().currentUserId;
130
155
  if (!conversationId && !targetUserId) return;
131
- const relevant = messages.filter((message) =>
132
- belongsToConversation(message, conversationId, targetUserId)
156
+ const relevant = messages.filter(
157
+ (message) =>
158
+ belongsToConversation(message, conversationId, targetUserId) &&
159
+ !message.isInternal
133
160
  );
134
161
 
135
162
  if (!relevant.length) return;
@@ -149,6 +176,10 @@ export const useChatListener = () => {
149
176
  // Group members
150
177
  OpenIMSDK.on(OpenIMEvent.OnGroupMemberAdded, onGroupMemberAdded);
151
178
  OpenIMSDK.on(OpenIMEvent.OnGroupMemberDeleted, onGroupMemberDeleted);
179
+ OpenIMSDK.on(
180
+ OpenIMEvent.OnGroupMemberInfoChanged,
181
+ OnGroupMemberInfoChanged
182
+ );
152
183
 
153
184
  // Message status
154
185
  OpenIMSDK.on(OpenIMEvent.SendMessageProgress, onSendMessageProgress);
@@ -168,6 +199,10 @@ export const useChatListener = () => {
168
199
  // Group members
169
200
  OpenIMSDK.off(OpenIMEvent.OnGroupMemberAdded, onGroupMemberAdded);
170
201
  OpenIMSDK.off(OpenIMEvent.OnGroupMemberDeleted, onGroupMemberDeleted);
202
+ OpenIMSDK.on(
203
+ OpenIMEvent.OnGroupMemberInfoChanged,
204
+ OnGroupMemberInfoChanged
205
+ );
171
206
 
172
207
  // Message status
173
208
  OpenIMSDK.off(OpenIMEvent.SendMessageProgress, onSendMessageProgress);
@@ -189,5 +224,6 @@ export const useChatListener = () => {
189
224
  onSendMessageProgress,
190
225
  onRecvNewMessages,
191
226
  onRecvOfflineNewMessages,
227
+ OnGroupMemberInfoChanged,
192
228
  ]);
193
229
  };
@@ -0,0 +1,18 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import OpenIMSDK from '@droppii/openim-rn-client-sdk';
3
+ import { conversationQueryKeys } from '../query-keys';
4
+
5
+ export const useGetGroupInfo = (groupId = '') =>
6
+ useQuery({
7
+ queryKey: conversationQueryKeys.groupInfo(groupId),
8
+ queryFn: async () => {
9
+ try {
10
+ const res = await OpenIMSDK.getSpecifiedGroupsInfo([groupId]);
11
+ return res?.[0];
12
+ } catch (error) {
13
+ console.error('useGetGroupInfo error:', error);
14
+ return null;
15
+ }
16
+ },
17
+ enabled: !!groupId,
18
+ });
@@ -7,7 +7,12 @@ import type {
7
7
  OfflinePush,
8
8
  QuoteMsgParams,
9
9
  } from '@droppii/openim-rn-client-sdk';
10
- import { MessageStatus, MessageType } from '@droppii/openim-rn-client-sdk';
10
+ import {
11
+ GroupPermission,
12
+ MessageStatus,
13
+ MessageType,
14
+ SessionType,
15
+ } from '@droppii/openim-rn-client-sdk';
11
16
  import { extractUrls } from '../../utils/url';
12
17
  import OpenIMSDK from '@droppii/openim-rn-client-sdk';
13
18
  import {
@@ -28,6 +33,8 @@ import type { StickerItem } from '../../types/sticker';
28
33
  import { useQueryClient } from '@tanstack/react-query';
29
34
  import { stickerQueryKeys } from '../query-keys';
30
35
  import { getMessagePreview } from '../../utils/messageUtils';
36
+ import { UIUtils } from '../../utils/UIUtils';
37
+ import { trans } from '../../translation';
31
38
 
32
39
  const buildSendParams = (
33
40
  message: MessageItem,
@@ -45,7 +52,8 @@ export const useSendMessage = () => {
45
52
  const applicationType = useChatContext().applicationType;
46
53
  const pushNewMessage = useMessageStore((state) => state.pushNewMessage);
47
54
  const updateOneMessage = useMessageStore((state) => state.updateOneMessage);
48
- const { quotedMessage, setQuotedMessage } = useChatDetailContext();
55
+ const { quotedMessage, setQuotedMessage, groupPermissions } =
56
+ useChatDetailContext();
49
57
  const queryClient = useQueryClient();
50
58
 
51
59
  const dispatchSend = useCallback(
@@ -99,6 +107,16 @@ export const useSendMessage = () => {
99
107
  const recvID = currentConversation?.userID || targetUserId;
100
108
  const groupID = currentConversation?.groupID || targetGroupId;
101
109
  if (!recvID && !groupID) return;
110
+ if (
111
+ currentConversation?.conversationType === SessionType.Group &&
112
+ !groupPermissions?.includes(GroupPermission.SendMessage)
113
+ ) {
114
+ UIUtils.toast.open({
115
+ title: trans('chat:no_send_permission'),
116
+ theme: 'info',
117
+ });
118
+ return;
119
+ }
102
120
 
103
121
  const messageList: MessageItem[] = [];
104
122
 
@@ -174,6 +192,7 @@ export const useSendMessage = () => {
174
192
  quotedMessage,
175
193
  setQuotedMessage,
176
194
  queryClient,
195
+ groupPermissions,
177
196
  ]
178
197
  );
179
198
 
@@ -32,6 +32,7 @@ export const conversationQueryKeys = {
32
32
  detailBySourceId: (sourceId: string) => ['detailBySourceId', sourceId],
33
33
  joinedGroup: (groupId?: string) => [...conversationQueryKeys.all, groupId],
34
34
  create: (userId?: string) => ['create', userId],
35
+ groupInfo: (groupId: string) => ['groupInfo', groupId] as const,
35
36
  };
36
37
 
37
38
  export const usersQueryKeys = {
@@ -2,12 +2,15 @@ import { memo } from 'react';
2
2
  import { KContainer, KNavigation } from '@droppii/libs';
3
3
  import { useNavigation } from '@react-navigation/native';
4
4
  import { useGetConversationTarget } from '../../hooks/conversation/useGetConversationDetail';
5
+ import { useGetGroupInfo } from '../../hooks/conversation/useGetGroupInfo';
5
6
  import { useConversation } from '../../store';
6
7
  import ChatInfoProfile from './ChatInfoProfile';
7
8
  import ChatInfoMediaRow from './ChatInfoMediaRow';
9
+ import ChatInfoDescriptionRow from './ChatInfoDescriptionRow';
8
10
  import ChatInfoActions from './ChatInfoActions';
9
11
  import type { ChatInfoProps } from './types';
10
12
  import { trans } from '../../translation';
13
+ import { isGroupConversation } from '../../utils/conversation';
11
14
 
12
15
  const ChatInfo = memo(
13
16
  ({
@@ -18,12 +21,17 @@ const ChatInfo = memo(
18
21
  onPressOrders,
19
22
  onPressCreateGroup,
20
23
  onPressAddToGroup,
24
+ onPressLeaveGroup,
21
25
  }: ChatInfoProps) => {
22
26
  const navigation = useNavigation();
23
27
 
24
28
  const conversation = useConversation(conversationId);
25
29
  const { data: target } = useGetConversationTarget(conversationId);
26
30
  const isTargetActive = target ? target.isActive : true;
31
+ const isGroup = isGroupConversation(conversation);
32
+ const { data: groupInfo } = useGetGroupInfo(
33
+ isGroup ? conversation?.groupID : undefined
34
+ );
27
35
 
28
36
  return (
29
37
  <KContainer.Page flex edges={['bottom']} background="#EBEDF2">
@@ -45,12 +53,20 @@ const ChatInfo = memo(
45
53
  onPressSearch={onPressSearch}
46
54
  />
47
55
  <ChatInfoMediaRow onPressMedia={onPressMedia} />
56
+ <KContainer.VisibleView visible={isGroup}>
57
+ <ChatInfoDescriptionRow
58
+ introduction={groupInfo?.introduction}
59
+ groupName={conversation?.showName}
60
+ />
61
+ </KContainer.VisibleView>
48
62
  <ChatInfoActions
49
63
  conversation={conversation}
50
64
  isTargetActive={isTargetActive}
65
+ isGroup={isGroup}
51
66
  onPressOrders={onPressOrders}
52
67
  onPressCreateGroup={onPressCreateGroup}
53
68
  onPressAddToGroup={onPressAddToGroup}
69
+ onPressLeaveGroup={onPressLeaveGroup}
54
70
  />
55
71
  </KContainer.ScrollView>
56
72
  </KContainer.Page>