@droppii-org/chat-mobile 0.2.65 → 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 (43) hide show
  1. package/lib/module/hooks/conversation/useGetGroupInfo.js +19 -0
  2. package/lib/module/hooks/conversation/useGetGroupInfo.js.map +1 -0
  3. package/lib/module/hooks/query-keys.js +2 -1
  4. package/lib/module/hooks/query-keys.js.map +1 -1
  5. package/lib/module/screens/ChatInfo/ChatInfo.js +18 -2
  6. package/lib/module/screens/ChatInfo/ChatInfo.js.map +1 -1
  7. package/lib/module/screens/ChatInfo/ChatInfoActions.js +83 -55
  8. package/lib/module/screens/ChatInfo/ChatInfoActions.js.map +1 -1
  9. package/lib/module/screens/ChatInfo/ChatInfoDescriptionRow.js +77 -0
  10. package/lib/module/screens/ChatInfo/ChatInfoDescriptionRow.js.map +1 -0
  11. package/lib/module/screens/ChatInfo/GroupDescriptionModal.js +58 -0
  12. package/lib/module/screens/ChatInfo/GroupDescriptionModal.js.map +1 -0
  13. package/lib/module/translation/resources/i18n.js +3 -0
  14. package/lib/module/translation/resources/i18n.js.map +1 -1
  15. package/lib/module/utils/conversation.js +3 -0
  16. package/lib/module/utils/conversation.js.map +1 -1
  17. package/lib/typescript/src/hooks/conversation/useGetGroupInfo.d.ts +2 -0
  18. package/lib/typescript/src/hooks/conversation/useGetGroupInfo.d.ts.map +1 -0
  19. package/lib/typescript/src/hooks/query-keys.d.ts +1 -0
  20. package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
  21. package/lib/typescript/src/screens/ChatInfo/ChatInfo.d.ts +1 -1
  22. package/lib/typescript/src/screens/ChatInfo/ChatInfo.d.ts.map +1 -1
  23. package/lib/typescript/src/screens/ChatInfo/ChatInfoActions.d.ts +3 -1
  24. package/lib/typescript/src/screens/ChatInfo/ChatInfoActions.d.ts.map +1 -1
  25. package/lib/typescript/src/screens/ChatInfo/ChatInfoDescriptionRow.d.ts +7 -0
  26. package/lib/typescript/src/screens/ChatInfo/ChatInfoDescriptionRow.d.ts.map +1 -0
  27. package/lib/typescript/src/screens/ChatInfo/GroupDescriptionModal.d.ts +9 -0
  28. package/lib/typescript/src/screens/ChatInfo/GroupDescriptionModal.d.ts.map +1 -0
  29. package/lib/typescript/src/screens/ChatInfo/types.d.ts +1 -0
  30. package/lib/typescript/src/screens/ChatInfo/types.d.ts.map +1 -1
  31. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  32. package/lib/typescript/src/utils/conversation.d.ts +1 -0
  33. package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
  34. package/package.json +2 -2
  35. package/src/hooks/conversation/useGetGroupInfo.ts +18 -0
  36. package/src/hooks/query-keys.ts +1 -0
  37. package/src/screens/ChatInfo/ChatInfo.tsx +16 -0
  38. package/src/screens/ChatInfo/ChatInfoActions.tsx +68 -35
  39. package/src/screens/ChatInfo/ChatInfoDescriptionRow.tsx +102 -0
  40. package/src/screens/ChatInfo/GroupDescriptionModal.tsx +67 -0
  41. package/src/screens/ChatInfo/types.ts +1 -0
  42. package/src/translation/resources/i18n.ts +3 -0
  43. package/src/utils/conversation.ts +6 -0
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import OpenIMSDK from '@droppii/openim-rn-client-sdk';
5
+ import { conversationQueryKeys } from "../query-keys.js";
6
+ export const useGetGroupInfo = (groupId = '') => 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
+ });
19
+ //# sourceMappingURL=useGetGroupInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useQuery","OpenIMSDK","conversationQueryKeys","useGetGroupInfo","groupId","queryKey","groupInfo","queryFn","res","getSpecifiedGroupsInfo","error","console","enabled"],"sourceRoot":"../../../../src","sources":["hooks/conversation/useGetGroupInfo.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,OAAOC,SAAS,MAAM,+BAA+B;AACrD,SAASC,qBAAqB,QAAQ,kBAAe;AAErD,OAAO,MAAMC,eAAe,GAAGA,CAACC,OAAO,GAAG,EAAE,KAC1CJ,QAAQ,CAAC;EACPK,QAAQ,EAAEH,qBAAqB,CAACI,SAAS,CAACF,OAAO,CAAC;EAClDG,OAAO,EAAE,MAAAA,CAAA,KAAY;IACnB,IAAI;MACF,MAAMC,GAAG,GAAG,MAAMP,SAAS,CAACQ,sBAAsB,CAAC,CAACL,OAAO,CAAC,CAAC;MAC7D,OAAOI,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;MAC9C,OAAO,IAAI;IACb;EACF,CAAC;EACDE,OAAO,EAAE,CAAC,CAACR;AACb,CAAC,CAAC","ignoreList":[]}
@@ -20,7 +20,8 @@ export const conversationQueryKeys = {
20
20
  detailByBotId: botId => ['conversationByBotId', botId],
21
21
  detailBySourceId: sourceId => ['detailBySourceId', sourceId],
22
22
  joinedGroup: groupId => [...conversationQueryKeys.all, groupId],
23
- create: userId => ['create', userId]
23
+ create: userId => ['create', userId],
24
+ groupInfo: groupId => ['groupInfo', groupId]
24
25
  };
25
26
  export const usersQueryKeys = {
26
27
  all: ['users'],
@@ -1 +1 @@
1
- {"version":3,"names":["commonQueryKeys","all","urlMetadata","url","conversationQueryKeys","lists","list","applicationType","details","detail","conversationId","getStatusBot","botId","conversationTarget","flow","flowMainMenu","resetFlow","runFlow","closeSession","detailByBotId","detailBySourceId","sourceId","joinedGroup","groupId","create","userId","usersQueryKeys","userIds","stickerQueryKeys","categories","byCategory","categoryId","recent","resourceCenterQueryKeys","byType","recvID","contentType","messageQueryKeys","search","query"],"sourceRoot":"../../../src","sources":["hooks/query-keys.ts"],"mappings":";;AAAA,OAAO,MAAMA,eAAe,GAAG;EAC7BC,GAAG,EAAE,CAAC,QAAQ,CAAU;EACxBC,WAAW,EAAGC,GAAW,IAAK,CAAC,MAAM,EAAEA,GAAG;AAC5C,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAG;EACnCH,GAAG,EAAE,CAAC,eAAe,CAAU;EAC/BI,KAAK,EAAEA,CAAA,KAAM,CAAC,GAAGD,qBAAqB,CAACH,GAAG,EAAE,MAAM,CAAU;EAC5DK,IAAI,EAAGC,eAAuB,IAC5B,CAAC,GAAGH,qBAAqB,CAACC,KAAK,CAAC,CAAC,EAAEE,eAAe,CAAU;EAC9DC,OAAO,EAAEA,CAAA,KAAM,CAAC,GAAGJ,qBAAqB,CAACH,GAAG,EAAE,QAAQ,CAAU;EAChEQ,MAAM,EAAGC,cAAsB,IAC7B,CAAC,GAAGN,qBAAqB,CAACI,OAAO,CAAC,CAAC,EAAEE,cAAc,CAAU;EAC/DC,YAAY,EAAGC,KAAa,IAAK,CAAC,cAAc,EAAEA,KAAK,CAAU;EACjEC,kBAAkB,EAAGH,cAAsB,IACzC,CAAC,oBAAoB,EAAEA,cAAc,CAAU;EACjDI,IAAI,EAAGJ,cAAsB,IAAK,CAAC,kBAAkB,EAAEA,cAAc,CAAC;EACtEK,YAAY,EAAGL,cAAsB,IAAK,CACxC,0BAA0B,EAC1BA,cAAc,CACf;EACDM,SAAS,EAAGN,cAAsB,IAAK,CACrC,uBAAuB,EACvBA,cAAc,CACf;EACDO,OAAO,EAAGP,cAAsB,IAAK,CAAC,qBAAqB,EAAEA,cAAc,CAAC;EAC5EQ,YAAY,EAAGR,cAAsB,IAAK,CACxC,0BAA0B,EAC1BA,cAAc,CACf;EACDS,aAAa,EAAGP,KAAa,IAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;EAChEQ,gBAAgB,EAAGC,QAAgB,IAAK,CAAC,kBAAkB,EAAEA,QAAQ,CAAC;EACtEC,WAAW,EAAGC,OAAgB,IAAK,CAAC,GAAGnB,qBAAqB,CAACH,GAAG,EAAEsB,OAAO,CAAC;EAC1EC,MAAM,EAAGC,MAAe,IAAK,CAAC,QAAQ,EAAEA,MAAM;AAChD,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG;EAC5BzB,GAAG,EAAE,CAAC,OAAO,CAAU;EACvBK,IAAI,EAAGqB,OAAiB,IAAK,CAAC,GAAGD,cAAc,CAACzB,GAAG,EAAE,GAAG0B,OAAO;AACjE,CAAC;AAID,OAAO,MAAMC,gBAAgB,GAAG;EAC9B3B,GAAG,EAAE,CAAC,UAAU,CAAU;EAC1B4B,UAAU,EAAEA,CAAA,KAAM,CAAC,GAAGD,gBAAgB,CAAC3B,GAAG,EAAE,YAAY,CAAU;EAClE6B,UAAU,EAAGC,UAAkB,IAC7B,CAAC,GAAGH,gBAAgB,CAAC3B,GAAG,EAAE,UAAU,EAAE8B,UAAU,CAAU;EAC5DC,MAAM,EAAEA,CAAA,KAAM,CAAC,GAAGJ,gBAAgB,CAAC3B,GAAG,EAAE,QAAQ;AAClD,CAAC;AAED,OAAO,MAAMgC,uBAAuB,GAAG;EACrChC,GAAG,EAAE,CAAC,iBAAiB,CAAU;EACjCiC,MAAM,EAAEA,CAACC,MAAc,EAAEC,WAAmB,KAC1C,CAAC,GAAGH,uBAAuB,CAAChC,GAAG,EAAEkC,MAAM,EAAEC,WAAW;AACxD,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAG;EAC9BpC,GAAG,EAAE,CAAC,UAAU,CAAU;EAC1BqC,MAAM,EAAEA,CAACC,KAAa,EAAE7B,cAAuB,KAC7C,CAAC,GAAG2B,gBAAgB,CAACpC,GAAG,EAAE,QAAQ,EAAEsC,KAAK,EAAE7B,cAAc;AAC7D,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["commonQueryKeys","all","urlMetadata","url","conversationQueryKeys","lists","list","applicationType","details","detail","conversationId","getStatusBot","botId","conversationTarget","flow","flowMainMenu","resetFlow","runFlow","closeSession","detailByBotId","detailBySourceId","sourceId","joinedGroup","groupId","create","userId","groupInfo","usersQueryKeys","userIds","stickerQueryKeys","categories","byCategory","categoryId","recent","resourceCenterQueryKeys","byType","recvID","contentType","messageQueryKeys","search","query"],"sourceRoot":"../../../src","sources":["hooks/query-keys.ts"],"mappings":"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","ignoreList":[]}
@@ -4,11 +4,14 @@ import { memo } from 'react';
4
4
  import { KContainer, KNavigation } from '@droppii/libs';
5
5
  import { useNavigation } from '@react-navigation/native';
6
6
  import { useGetConversationTarget } from "../../hooks/conversation/useGetConversationDetail.js";
7
+ import { useGetGroupInfo } from "../../hooks/conversation/useGetGroupInfo.js";
7
8
  import { useConversation } from "../../store/index.js";
8
9
  import ChatInfoProfile from "./ChatInfoProfile.js";
9
10
  import ChatInfoMediaRow from "./ChatInfoMediaRow.js";
11
+ import ChatInfoDescriptionRow from "./ChatInfoDescriptionRow.js";
10
12
  import ChatInfoActions from "./ChatInfoActions.js";
11
13
  import { trans } from "../../translation/index.js";
14
+ import { isGroupConversation } from "../../utils/conversation.js";
12
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
16
  const ChatInfo = /*#__PURE__*/memo(({
14
17
  conversationId = '',
@@ -17,7 +20,8 @@ const ChatInfo = /*#__PURE__*/memo(({
17
20
  onPressMedia,
18
21
  onPressOrders,
19
22
  onPressCreateGroup,
20
- onPressAddToGroup
23
+ onPressAddToGroup,
24
+ onPressLeaveGroup
21
25
  }) => {
22
26
  const navigation = useNavigation();
23
27
  const conversation = useConversation(conversationId);
@@ -25,6 +29,10 @@ const ChatInfo = /*#__PURE__*/memo(({
25
29
  data: target
26
30
  } = useGetConversationTarget(conversationId);
27
31
  const isTargetActive = target ? target.isActive : true;
32
+ const isGroup = isGroupConversation(conversation);
33
+ const {
34
+ data: groupInfo
35
+ } = useGetGroupInfo(isGroup ? conversation?.groupID : undefined);
28
36
  return /*#__PURE__*/_jsxs(KContainer.Page, {
29
37
  flex: true,
30
38
  edges: ['bottom'],
@@ -49,12 +57,20 @@ const ChatInfo = /*#__PURE__*/memo(({
49
57
  onPressSearch: onPressSearch
50
58
  }), /*#__PURE__*/_jsx(ChatInfoMediaRow, {
51
59
  onPressMedia: onPressMedia
60
+ }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
61
+ visible: isGroup,
62
+ children: /*#__PURE__*/_jsx(ChatInfoDescriptionRow, {
63
+ introduction: groupInfo?.introduction,
64
+ groupName: conversation?.showName
65
+ })
52
66
  }), /*#__PURE__*/_jsx(ChatInfoActions, {
53
67
  conversation: conversation,
54
68
  isTargetActive: isTargetActive,
69
+ isGroup: isGroup,
55
70
  onPressOrders: onPressOrders,
56
71
  onPressCreateGroup: onPressCreateGroup,
57
- onPressAddToGroup: onPressAddToGroup
72
+ onPressAddToGroup: onPressAddToGroup,
73
+ onPressLeaveGroup: onPressLeaveGroup
58
74
  })]
59
75
  })]
60
76
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","KContainer","KNavigation","useNavigation","useGetConversationTarget","useConversation","ChatInfoProfile","ChatInfoMediaRow","ChatInfoActions","trans","jsx","_jsx","jsxs","_jsxs","ChatInfo","conversationId","onBack","onPressSearch","onPressMedia","onPressOrders","onPressCreateGroup","onPressAddToGroup","navigation","conversation","data","target","isTargetActive","isActive","Page","flex","edges","background","children","Header","theme","alignment","size","leftButton","id","icon","vectorName","onPress","goBack","title","shadow","ScrollView","showsVerticalScrollIndicator"],"sourceRoot":"../../../../src","sources":["screens/ChatInfo/ChatInfo.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,EAAEC,WAAW,QAAQ,eAAe;AACvD,SAASC,aAAa,QAAQ,0BAA0B;AACxD,SAASC,wBAAwB,QAAQ,sDAAmD;AAC5F,SAASC,eAAe,QAAQ,sBAAa;AAC7C,OAAOC,eAAe,MAAM,sBAAmB;AAC/C,OAAOC,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,eAAe,MAAM,sBAAmB;AAE/C,SAASC,KAAK,QAAQ,4BAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE1C,MAAMC,QAAQ,gBAAGd,IAAI,CACnB,CAAC;EACCe,cAAc,GAAG,EAAE;EACnBC,MAAM;EACNC,aAAa;EACbC,YAAY;EACZC,aAAa;EACbC,kBAAkB;EAClBC;AACa,CAAC,KAAK;EACnB,MAAMC,UAAU,GAAGnB,aAAa,CAAC,CAAC;EAElC,MAAMoB,YAAY,GAAGlB,eAAe,CAACU,cAAc,CAAC;EACpD,MAAM;IAAES,IAAI,EAAEC;EAAO,CAAC,GAAGrB,wBAAwB,CAACW,cAAc,CAAC;EACjE,MAAMW,cAAc,GAAGD,MAAM,GAAGA,MAAM,CAACE,QAAQ,GAAG,IAAI;EAEtD,oBACEd,KAAA,CAACZ,UAAU,CAAC2B,IAAI;IAACC,IAAI;IAACC,KAAK,EAAE,CAAC,QAAQ,CAAE;IAACC,UAAU,EAAC,SAAS;IAAAC,QAAA,gBAC3DrB,IAAA,CAACT,WAAW,CAAC+B,MAAM;MACjBC,KAAK,EAAC,OAAO;MACbC,SAAS,EAAC,MAAM;MAChBC,IAAI,EAAC,OAAO;MACZC,UAAU,EAAE;QACVC,EAAE,EAAE,oBAAoB;QACxBC,IAAI,EAAE;UAAEC,UAAU,EAAE;QAAe,CAAC;QACpCC,OAAO,EAAEzB,MAAM,IAAIM,UAAU,CAACoB;MAChC,CAAE;MACFC,KAAK,EAAElC,KAAK,CAAC,iBAAiB,CAAE;MAChCmC,MAAM,EAAE;IAAM,CACf,CAAC,eACF/B,KAAA,CAACZ,UAAU,CAAC4C,UAAU;MAACC,4BAA4B,EAAE,KAAM;MAAAd,QAAA,gBACzDrB,IAAA,CAACL,eAAe;QACdiB,YAAY,EAAEA,YAAa;QAC3BN,aAAa,EAAEA;MAAc,CAC9B,CAAC,eACFN,IAAA,CAACJ,gBAAgB;QAACW,YAAY,EAAEA;MAAa,CAAE,CAAC,eAChDP,IAAA,CAACH,eAAe;QACde,YAAY,EAAEA,YAAa;QAC3BG,cAAc,EAAEA,cAAe;QAC/BP,aAAa,EAAEA,aAAc;QAC7BC,kBAAkB,EAAEA,kBAAmB;QACvCC,iBAAiB,EAAEA;MAAkB,CACtC,CAAC;IAAA,CACmB,CAAC;EAAA,CACT,CAAC;AAEtB,CACF,CAAC;AAED,eAAeP,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["memo","KContainer","KNavigation","useNavigation","useGetConversationTarget","useGetGroupInfo","useConversation","ChatInfoProfile","ChatInfoMediaRow","ChatInfoDescriptionRow","ChatInfoActions","trans","isGroupConversation","jsx","_jsx","jsxs","_jsxs","ChatInfo","conversationId","onBack","onPressSearch","onPressMedia","onPressOrders","onPressCreateGroup","onPressAddToGroup","onPressLeaveGroup","navigation","conversation","data","target","isTargetActive","isActive","isGroup","groupInfo","groupID","undefined","Page","flex","edges","background","children","Header","theme","alignment","size","leftButton","id","icon","vectorName","onPress","goBack","title","shadow","ScrollView","showsVerticalScrollIndicator","VisibleView","visible","introduction","groupName","showName"],"sourceRoot":"../../../../src","sources":["screens/ChatInfo/ChatInfo.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,9 +8,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
8
8
  const ChatInfoActions = /*#__PURE__*/memo(({
9
9
  conversation,
10
10
  isTargetActive,
11
+ isGroup,
11
12
  onPressOrders,
12
13
  onPressCreateGroup,
13
- onPressAddToGroup
14
+ onPressAddToGroup,
15
+ onPressLeaveGroup
14
16
  }) => {
15
17
  const {
16
18
  pinConversation,
@@ -27,94 +29,120 @@ const ChatInfoActions = /*#__PURE__*/memo(({
27
29
  }, [isPinned, conversation, pinConversation, unpinConversation]);
28
30
  const handleDeleteHistory = useCallback(() => {}, []);
29
31
  const primaryData = useMemo(() => {
30
- const items = [{
31
- leftNode: {
32
- icon: {
33
- vectorName: 'receipt-o'
34
- }
35
- },
36
- onPress: onPressOrders,
37
- paddingH: '0.75rem',
38
- paddingV: '0.75rem',
39
- customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
40
- typo: "TextMdMedium",
41
- numberOfLines: 1,
42
- children: trans('chat:info_orders', {
43
- name: showName
44
- })
45
- })
46
- }];
47
- if (isTargetActive) {
32
+ const items = [];
33
+ if (!isGroup) {
48
34
  items.push({
49
35
  leftNode: {
50
36
  icon: {
51
- vectorName: 'user-three-o'
37
+ vectorName: 'receipt-o'
52
38
  }
53
39
  },
54
- onPress: onPressCreateGroup,
40
+ onPress: onPressOrders,
55
41
  paddingH: '0.75rem',
56
42
  paddingV: '0.75rem',
57
43
  customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
58
44
  typo: "TextMdMedium",
59
45
  numberOfLines: 1,
60
- children: trans('chat:info_create_group', {
46
+ children: trans('chat:info_orders', {
61
47
  name: showName
62
48
  })
63
49
  })
64
- }, {
50
+ });
51
+ if (isTargetActive) {
52
+ items.push({
53
+ leftNode: {
54
+ icon: {
55
+ vectorName: 'user-three-o'
56
+ }
57
+ },
58
+ onPress: onPressCreateGroup,
59
+ paddingH: '0.75rem',
60
+ paddingV: '0.75rem',
61
+ customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
62
+ typo: "TextMdMedium",
63
+ numberOfLines: 1,
64
+ children: trans('chat:info_create_group', {
65
+ name: showName
66
+ })
67
+ })
68
+ }, {
69
+ leftNode: {
70
+ icon: {
71
+ vectorName: 'user-add-o'
72
+ }
73
+ },
74
+ onPress: onPressAddToGroup,
75
+ paddingH: '0.75rem',
76
+ paddingV: '0.75rem',
77
+ customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
78
+ typo: "TextMdMedium",
79
+ numberOfLines: 1,
80
+ children: trans('chat:info_add_to_group')
81
+ })
82
+ });
83
+ }
84
+ }
85
+ items.push({
86
+ leftNode: {
87
+ icon: {
88
+ vectorName: isPinned ? 'thumbtack-off-o' : 'thumbtack-o'
89
+ }
90
+ },
91
+ onPress: handlePinPress,
92
+ showChevron: false,
93
+ paddingH: '0.75rem',
94
+ paddingV: '0.75rem',
95
+ customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
96
+ typo: "TextMdMedium",
97
+ numberOfLines: 1,
98
+ children: isPinned ? trans('chat:info_unpin_message') : trans('chat:info_pin_message')
99
+ })
100
+ });
101
+ return items;
102
+ }, [showName, isGroup, isTargetActive, isPinned, onPressOrders, onPressCreateGroup, onPressAddToGroup, handlePinPress]);
103
+ const dangerData = useMemo(() => {
104
+ if (isGroup) {
105
+ return [{
65
106
  leftNode: {
66
107
  icon: {
67
- vectorName: 'user-add-o'
108
+ vectorName: 'logout-o',
109
+ tintColor: KColors.danger.normal
68
110
  }
69
111
  },
70
- onPress: onPressAddToGroup,
112
+ tintColor: KColors.danger.normal,
113
+ onPress: onPressLeaveGroup,
114
+ showChevron: false,
71
115
  paddingH: '0.75rem',
72
116
  paddingV: '0.75rem',
73
117
  customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
74
118
  typo: "TextMdMedium",
119
+ color: KColors.danger.normal,
75
120
  numberOfLines: 1,
76
- children: trans('chat:info_add_to_group')
121
+ children: trans('chat:info_leave_group')
77
122
  })
78
- });
123
+ }];
79
124
  }
80
- items.push({
125
+ return [{
126
+ label: trans('chat:info_delete_history'),
81
127
  leftNode: {
82
128
  icon: {
83
- vectorName: isPinned ? 'thumbtack-off-o' : 'thumbtack-o'
129
+ vectorName: 'trash-alt-o-1',
130
+ tintColor: KColors.danger.normal
84
131
  }
85
132
  },
86
- onPress: handlePinPress,
133
+ tintColor: KColors.danger.normal,
134
+ onPress: handleDeleteHistory,
87
135
  showChevron: false,
88
136
  paddingH: '0.75rem',
89
137
  paddingV: '0.75rem',
90
138
  customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
91
139
  typo: "TextMdMedium",
140
+ color: KColors.danger.normal,
92
141
  numberOfLines: 1,
93
- children: isPinned ? trans('chat:info_unpin_message') : trans('chat:info_pin_message')
142
+ children: trans('chat:info_delete_history')
94
143
  })
95
- });
96
- return items;
97
- }, [showName, isTargetActive, isPinned, onPressOrders, onPressCreateGroup, onPressAddToGroup, handlePinPress]);
98
- const deleteData = useMemo(() => [{
99
- label: trans('chat:info_delete_history'),
100
- leftNode: {
101
- icon: {
102
- vectorName: 'trash-alt-o-1',
103
- tintColor: KColors.danger.normal
104
- }
105
- },
106
- tintColor: KColors.danger.normal,
107
- onPress: handleDeleteHistory,
108
- showChevron: false,
109
- paddingH: '0.75rem',
110
- paddingV: '0.75rem',
111
- customLabel: /*#__PURE__*/_jsx(KLabel.Text, {
112
- typo: "TextMdMedium",
113
- color: KColors.danger.normal,
114
- numberOfLines: 1,
115
- children: trans('chat:info_delete_history')
116
- })
117
- }], [handleDeleteHistory]);
144
+ }];
145
+ }, [isGroup, onPressLeaveGroup, handleDeleteHistory]);
118
146
  return /*#__PURE__*/_jsxs(_Fragment, {
119
147
  children: [/*#__PURE__*/_jsx(KContainer.View, {
120
148
  background: KColors.white,
@@ -132,7 +160,7 @@ const ChatInfoActions = /*#__PURE__*/memo(({
132
160
  marginT: "0.75rem",
133
161
  hiddenOverflow: true,
134
162
  children: /*#__PURE__*/_jsx(KListItem.Base, {
135
- data: deleteData
163
+ data: dangerData
136
164
  })
137
165
  })]
138
166
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useMemo","KContainer","KListItem","KColors","KLabel","usePinConversation","trans","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ChatInfoActions","conversation","isTargetActive","onPressOrders","onPressCreateGroup","onPressAddToGroup","pinConversation","unpinConversation","isPinned","Boolean","showName","handlePinPress","handleDeleteHistory","primaryData","items","leftNode","icon","vectorName","onPress","paddingH","paddingV","customLabel","Text","typo","numberOfLines","children","name","push","showChevron","deleteData","label","tintColor","danger","normal","color","View","background","white","br","marginH","marginT","hiddenOverflow","Base","data"],"sourceRoot":"../../../../src","sources":["screens/ChatInfo/ChatInfoActions.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAClD,SACEC,UAAU,EACVC,SAAS,EACTC,OAAO,EAEPC,MAAM,QACD,eAAe;AAEtB,SAASC,kBAAkB,QAAQ,mCAAgC;AACnE,SAASC,KAAK,QAAQ,4BAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAU1C,MAAMC,eAAe,gBAAGf,IAAI,CAC1B,CAAC;EACCgB,YAAY;EACZC,cAAc;EACdC,aAAa;EACbC,kBAAkB;EAClBC;AACoB,CAAC,KAAK;EAC1B,MAAM;IAAEC,eAAe;IAAEC;EAAkB,CAAC,GAAGf,kBAAkB,CAAC,CAAC;EACnE,MAAMgB,QAAQ,GAAGC,OAAO,CAACR,YAAY,EAAEO,QAAQ,CAAC;EAChD,MAAME,QAAQ,GAAGT,YAAY,EAAES,QAAQ,IAAI,EAAE;EAE7C,MAAMC,cAAc,GAAGzB,WAAW,CAAC,MAAM;IACvC,IAAIsB,QAAQ,EAAE;MACZD,iBAAiB,CAACN,YAAY,CAAC;IACjC,CAAC,MAAM;MACLK,eAAe,CAACL,YAAY,CAAC;IAC/B;EACF,CAAC,EAAE,CAACO,QAAQ,EAAEP,YAAY,EAAEK,eAAe,EAAEC,iBAAiB,CAAC,CAAC;EAEhE,MAAMK,mBAAmB,GAAG1B,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EAErD,MAAM2B,WAAW,GAAG1B,OAAO,CAAC,MAAM;IAChC,MAAM2B,KAA+B,GAAG,CACtC;MACEC,QAAQ,EAAE;QAAEC,IAAI,EAAE;UAAEC,UAAU,EAAE;QAAY;MAAE,CAAC;MAC/CC,OAAO,EAAEf,aAAa;MACtBgB,QAAQ,EAAE,SAAS;MACnBC,QAAQ,EAAE,SAAS;MACnBC,WAAW,eACT1B,IAAA,CAACJ,MAAM,CAAC+B,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,aAAa,EAAE,CAAE;QAAAC,QAAA,EAC/ChC,KAAK,CAAC,kBAAkB,EAAE;UAAEiC,IAAI,EAAEhB;QAAS,CAAC;MAAC,CACnC;IAEjB,CAAC,CACF;IAED,IAAIR,cAAc,EAAE;MAClBY,KAAK,CAACa,IAAI,CACR;QACEZ,QAAQ,EAAE;UAAEC,IAAI,EAAE;YAAEC,UAAU,EAAE;UAAe;QAAE,CAAC;QAClDC,OAAO,EAAEd,kBAAkB;QAC3Be,QAAQ,EAAE,SAAS;QACnBC,QAAQ,EAAE,SAAS;QACnBC,WAAW,eACT1B,IAAA,CAACJ,MAAM,CAAC+B,IAAI;UAACC,IAAI,EAAC,cAAc;UAACC,aAAa,EAAE,CAAE;UAAAC,QAAA,EAC/ChC,KAAK,CAAC,wBAAwB,EAAE;YAAEiC,IAAI,EAAEhB;UAAS,CAAC;QAAC,CACzC;MAEjB,CAAC,EACD;QACEK,QAAQ,EAAE;UAAEC,IAAI,EAAE;YAAEC,UAAU,EAAE;UAAa;QAAE,CAAC;QAChDC,OAAO,EAAEb,iBAAiB;QAC1Bc,QAAQ,EAAE,SAAS;QACnBC,QAAQ,EAAE,SAAS;QACnBC,WAAW,eACT1B,IAAA,CAACJ,MAAM,CAAC+B,IAAI;UAACC,IAAI,EAAC,cAAc;UAACC,aAAa,EAAE,CAAE;UAAAC,QAAA,EAC/ChC,KAAK,CAAC,wBAAwB;QAAC,CACrB;MAEjB,CACF,CAAC;IACH;IAEAqB,KAAK,CAACa,IAAI,CAAC;MACTZ,QAAQ,EAAE;QACRC,IAAI,EAAE;UAAEC,UAAU,EAAET,QAAQ,GAAG,iBAAiB,GAAG;QAAc;MACnE,CAAC;MACDU,OAAO,EAAEP,cAAc;MACvBiB,WAAW,EAAE,KAAK;MAClBT,QAAQ,EAAE,SAAS;MACnBC,QAAQ,EAAE,SAAS;MACnBC,WAAW,eACT1B,IAAA,CAACJ,MAAM,CAAC+B,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,aAAa,EAAE,CAAE;QAAAC,QAAA,EAC/CjB,QAAQ,GACLf,KAAK,CAAC,yBAAyB,CAAC,GAChCA,KAAK,CAAC,uBAAuB;MAAC,CACvB;IAEjB,CAAC,CAAC;IAEF,OAAOqB,KAAK;EACd,CAAC,EAAE,CACDJ,QAAQ,EACRR,cAAc,EACdM,QAAQ,EACRL,aAAa,EACbC,kBAAkB,EAClBC,iBAAiB,EACjBM,cAAc,CACf,CAAC;EAEF,MAAMkB,UAAoC,GAAG1C,OAAO,CAClD,MAAM,CACJ;IACE2C,KAAK,EAAErC,KAAK,CAAC,0BAA0B,CAAC;IACxCsB,QAAQ,EAAE;MACRC,IAAI,EAAE;QACJC,UAAU,EAAE,eAAe;QAC3Bc,SAAS,EAAEzC,OAAO,CAAC0C,MAAM,CAACC;MAC5B;IACF,CAAC;IACDF,SAAS,EAAEzC,OAAO,CAAC0C,MAAM,CAACC,MAAM;IAChCf,OAAO,EAAEN,mBAAmB;IAC5BgB,WAAW,EAAE,KAAK;IAClBT,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,SAAS;IACnBC,WAAW,eACT1B,IAAA,CAACJ,MAAM,CAAC+B,IAAI;MACVC,IAAI,EAAC,cAAc;MACnBW,KAAK,EAAE5C,OAAO,CAAC0C,MAAM,CAACC,MAAO;MAC7BT,aAAa,EAAE,CAAE;MAAAC,QAAA,EAEhBhC,KAAK,CAAC,0BAA0B;IAAC,CACvB;EAEjB,CAAC,CACF,EACD,CAACmB,mBAAmB,CACtB,CAAC;EAED,oBACEb,KAAA,CAAAF,SAAA;IAAA4B,QAAA,gBACE9B,IAAA,CAACP,UAAU,CAAC+C,IAAI;MACdC,UAAU,EAAE9C,OAAO,CAAC+C,KAAM;MAC1BC,EAAE,EAAE,IAAK;MACTC,OAAO,EAAC,SAAS;MACjBC,OAAO,EAAC,SAAS;MACjBC,cAAc;MAAAhB,QAAA,eAEd9B,IAAA,CAACN,SAAS,CAACqD,IAAI;QAACC,IAAI,EAAE9B;MAAY,CAAE;IAAC,CACtB,CAAC,eAElBlB,IAAA,CAACP,UAAU,CAAC+C,IAAI;MACdC,UAAU,EAAE9C,OAAO,CAAC+C,KAAM;MAC1BC,EAAE,EAAE,IAAK;MACTC,OAAO,EAAC,SAAS;MACjBC,OAAO,EAAC,SAAS;MACjBC,cAAc;MAAAhB,QAAA,eAEd9B,IAAA,CAACN,SAAS,CAACqD,IAAI;QAACC,IAAI,EAAEd;MAAW,CAAE;IAAC,CACrB,CAAC;EAAA,CAClB,CAAC;AAEP,CACF,CAAC;AAED,eAAe7B,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useMemo","KContainer","KListItem","KColors","KLabel","usePinConversation","trans","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ChatInfoActions","conversation","isTargetActive","isGroup","onPressOrders","onPressCreateGroup","onPressAddToGroup","onPressLeaveGroup","pinConversation","unpinConversation","isPinned","Boolean","showName","handlePinPress","handleDeleteHistory","primaryData","items","push","leftNode","icon","vectorName","onPress","paddingH","paddingV","customLabel","Text","typo","numberOfLines","children","name","showChevron","dangerData","tintColor","danger","normal","color","label","View","background","white","br","marginH","marginT","hiddenOverflow","Base","data"],"sourceRoot":"../../../../src","sources":["screens/ChatInfo/ChatInfoActions.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback, useState } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import { KContainer, KLabel, KColors } from '@droppii/libs';
6
+ import { trans } from "../../translation/index.js";
7
+ import GroupDescriptionModal from "./GroupDescriptionModal.js";
8
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
+ const EXTRA_TEXT_LENGTH = 14; // Length of "...View More" text
10
+ const MAX_LINES = 2;
11
+ const ChatInfoDescriptionRow = /*#__PURE__*/memo(({
12
+ introduction,
13
+ groupName
14
+ }) => {
15
+ const [modalVisible, setModalVisible] = useState(false);
16
+ const handlePressDescription = useCallback(() => setModalVisible(true), []);
17
+ const handleCloseDescription = useCallback(() => setModalVisible(false), []);
18
+ const [isTruncated, setIsTruncated] = useState(false);
19
+ const [displayedText, setDisplayedText] = useState(introduction);
20
+ const handleTextLayout = useCallback(event => {
21
+ const isTextTruncated = event.nativeEvent.lines.length > MAX_LINES;
22
+ setIsTruncated(isTextTruncated);
23
+ if (isTextTruncated) {
24
+ setDisplayedText(event.nativeEvent.lines.slice(0, MAX_LINES).map(line => line.text).join(' ').slice(0, -EXTRA_TEXT_LENGTH) + '...');
25
+ }
26
+ }, []);
27
+ const textProps = {
28
+ color: KColors.gray.dark,
29
+ typo: 'TextMdMedium',
30
+ paddingH: '0.75rem'
31
+ };
32
+ if (!introduction) {
33
+ return null;
34
+ }
35
+ return /*#__PURE__*/_jsxs(_Fragment, {
36
+ children: [/*#__PURE__*/_jsxs(KContainer.View, {
37
+ background: KColors.white,
38
+ br: "3x",
39
+ marginH: "0.75rem",
40
+ marginT: "0.75rem",
41
+ paddingV: "0.75rem",
42
+ children: [/*#__PURE__*/_jsx(KLabel.Text, {
43
+ ...textProps,
44
+ style: styles.hiddenText,
45
+ numberOfLines: MAX_LINES + 1,
46
+ onTextLayout: handleTextLayout,
47
+ children: introduction
48
+ }), /*#__PURE__*/_jsxs(KLabel.Text, {
49
+ ...textProps,
50
+ numberOfLines: 2,
51
+ children: [displayedText, /*#__PURE__*/_jsx(KContainer.VisibleView, {
52
+ visible: isTruncated,
53
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
54
+ ...textProps,
55
+ color: KColors.primary.normal,
56
+ onPress: handlePressDescription,
57
+ children: trans('chat:info_view_more')
58
+ })
59
+ })]
60
+ })]
61
+ }), /*#__PURE__*/_jsx(GroupDescriptionModal, {
62
+ visible: modalVisible,
63
+ groupName: groupName,
64
+ introduction: introduction,
65
+ onClose: handleCloseDescription
66
+ })]
67
+ });
68
+ });
69
+ export default ChatInfoDescriptionRow;
70
+ const styles = StyleSheet.create({
71
+ hiddenText: {
72
+ position: 'absolute',
73
+ opacity: 0,
74
+ zIndex: -1
75
+ }
76
+ });
77
+ //# sourceMappingURL=ChatInfoDescriptionRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useState","StyleSheet","KContainer","KLabel","KColors","trans","GroupDescriptionModal","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EXTRA_TEXT_LENGTH","MAX_LINES","ChatInfoDescriptionRow","introduction","groupName","modalVisible","setModalVisible","handlePressDescription","handleCloseDescription","isTruncated","setIsTruncated","displayedText","setDisplayedText","handleTextLayout","event","isTextTruncated","nativeEvent","lines","length","slice","map","line","text","join","textProps","color","gray","dark","typo","paddingH","children","View","background","white","br","marginH","marginT","paddingV","Text","style","styles","hiddenText","numberOfLines","onTextLayout","VisibleView","visible","primary","normal","onPress","onClose","create","position","opacity","zIndex"],"sourceRoot":"../../../../src","sources":["screens/ChatInfo/ChatInfoDescriptionRow.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { Modal, StyleSheet } from 'react-native';
5
+ import { KContainer, KNavigation, KLabel, KColors } from '@droppii/libs';
6
+ import { trans } from "../../translation/index.js";
7
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const GroupDescriptionModal = /*#__PURE__*/memo(({
10
+ visible,
11
+ groupName,
12
+ introduction,
13
+ onClose
14
+ }) => /*#__PURE__*/_jsx(Modal, {
15
+ visible: visible,
16
+ transparent: false,
17
+ statusBarTranslucent: true,
18
+ style: styles.modal,
19
+ presentationStyle: "fullScreen",
20
+ animationType: "slide",
21
+ onRequestClose: onClose,
22
+ children: /*#__PURE__*/_jsx(SafeAreaProvider, {
23
+ children: /*#__PURE__*/_jsxs(KContainer.Page, {
24
+ flex: true,
25
+ edges: ['bottom'],
26
+ background: KColors.white,
27
+ children: [/*#__PURE__*/_jsx(KNavigation.Header, {
28
+ theme: "light",
29
+ alignment: "left",
30
+ size: "small",
31
+ leftButton: {
32
+ id: 'GroupDescriptionModalCloseButton',
33
+ icon: {
34
+ vectorName: 'close-o'
35
+ },
36
+ onPress: onClose
37
+ },
38
+ title: trans('chat:group_description_title'),
39
+ subTitle: groupName,
40
+ shadow: true
41
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
42
+ paddingH: "1rem",
43
+ paddingT: "0.75rem",
44
+ typo: "TextMdNormal",
45
+ color: KColors.gray.dark,
46
+ children: introduction
47
+ })]
48
+ })
49
+ })
50
+ }));
51
+ GroupDescriptionModal.displayName = 'GroupDescriptionModal';
52
+ export default GroupDescriptionModal;
53
+ const styles = StyleSheet.create({
54
+ modal: {
55
+ flex: 1
56
+ }
57
+ });
58
+ //# sourceMappingURL=GroupDescriptionModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Modal","StyleSheet","KContainer","KNavigation","KLabel","KColors","trans","SafeAreaProvider","jsx","_jsx","jsxs","_jsxs","GroupDescriptionModal","visible","groupName","introduction","onClose","transparent","statusBarTranslucent","style","styles","modal","presentationStyle","animationType","onRequestClose","children","Page","flex","edges","background","white","Header","theme","alignment","size","leftButton","id","icon","vectorName","onPress","title","subTitle","shadow","Text","paddingH","paddingT","typo","color","gray","dark","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/ChatInfo/GroupDescriptionModal.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,SAASC,UAAU,EAAEC,WAAW,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AACxE,SAASC,KAAK,QAAQ,4BAAmB;AACzC,SAASC,gBAAgB,QAAQ,gCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASlE,MAAMC,qBAAqB,gBAAGb,IAAI,CAChC,CAAC;EACCc,OAAO;EACPC,SAAS;EACTC,YAAY;EACZC;AAC0B,CAAC,kBAC3BP,IAAA,CAACT,KAAK;EACJa,OAAO,EAAEA,OAAQ;EACjBI,WAAW,EAAE,KAAM;EACnBC,oBAAoB;EACpBC,KAAK,EAAEC,MAAM,CAACC,KAAM;EACpBC,iBAAiB,EAAC,YAAY;EAC9BC,aAAa,EAAC,OAAO;EACrBC,cAAc,EAAER,OAAQ;EAAAS,QAAA,eAExBhB,IAAA,CAACF,gBAAgB;IAAAkB,QAAA,eACfd,KAAA,CAACT,UAAU,CAACwB,IAAI;MAACC,IAAI;MAACC,KAAK,EAAE,CAAC,QAAQ,CAAE;MAACC,UAAU,EAAExB,OAAO,CAACyB,KAAM;MAAAL,QAAA,gBACjEhB,IAAA,CAACN,WAAW,CAAC4B,MAAM;QACjBC,KAAK,EAAC,OAAO;QACbC,SAAS,EAAC,MAAM;QAChBC,IAAI,EAAC,OAAO;QACZC,UAAU,EAAE;UACVC,EAAE,EAAE,kCAAkC;UACtCC,IAAI,EAAE;YAAEC,UAAU,EAAE;UAAU,CAAC;UAC/BC,OAAO,EAAEvB;QACX,CAAE;QACFwB,KAAK,EAAElC,KAAK,CAAC,8BAA8B,CAAE;QAC7CmC,QAAQ,EAAE3B,SAAU;QACpB4B,MAAM;MAAA,CACP,CAAC,eACFjC,IAAA,CAACL,MAAM,CAACuC,IAAI;QACVC,QAAQ,EAAC,MAAM;QACfC,QAAQ,EAAC,SAAS;QAClBC,IAAI,EAAC,cAAc;QACnBC,KAAK,EAAE1C,OAAO,CAAC2C,IAAI,CAACC,IAAK;QAAAxB,QAAA,EAExBV;MAAY,CACF,CAAC;IAAA,CACC;EAAC,CACF;AAAC,CACd,CAEX,CAAC;AAEDH,qBAAqB,CAACsC,WAAW,GAAG,uBAAuB;AAE3D,eAAetC,qBAAqB;AAEpC,MAAMQ,MAAM,GAAGnB,UAAU,CAACkD,MAAM,CAAC;EAC/B9B,KAAK,EAAE;IACLM,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
@@ -85,6 +85,9 @@ const i18nKey = {
85
85
  'chat:info_pin_message': 'Ghim trò chuyện',
86
86
  'chat:info_unpin_message': 'Bỏ ghim trò chuyện',
87
87
  'chat:info_delete_history': 'Xoá lịch sử trò chuyện',
88
+ 'chat:info_leave_group': 'Rời nhóm',
89
+ 'chat:info_view_more': 'Xem thêm',
90
+ 'chat:group_description_title': 'Mô tả nhóm',
88
91
  'start': 'Bắt đầu',
89
92
  'restart': 'Bắt đầu lại',
90
93
  'gallery': 'Ảnh/Video',
@@ -1 +1 @@
1
- {"version":3,"names":["i18nKey","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["i18nKey","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":"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","ignoreList":[]}
@@ -30,4 +30,7 @@ export const getBotId = conversation => {
30
30
  }
31
31
  return undefined;
32
32
  };
33
+ export const isGroupConversation = conversation => {
34
+ return conversation?.peerType === PeerType.Group;
35
+ };
33
36
  //# sourceMappingURL=conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PeerType","SessionType","conversationCompare","a","b","isPinned","aCompare","draftTextTime","latestMsgSendTime","bCompare","getConversationID","sessionType","senderID","receiverID","prefix","Single","Notification","filter","Boolean","join","sortConversation","map","list","Object","keys","sort","getBotId","conversation","peerType","Bot","id","JSON","parse","ex","sessionInfo","data","botId","_","undefined"],"sourceRoot":"../../../src","sources":["utils/conversation.ts"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,WAAW,QAEN,+BAA+B;AAEtC,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,CAAmB,EACnBC,CAAmB,KAChB;EACH,IAAID,CAAC,CAACE,QAAQ,KAAKD,CAAC,CAACC,QAAQ,EAAE,OAAOF,CAAC,CAACE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;EAEzD,MAAMC,QAAQ,GACZH,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,iBAAiB,GACjCL,CAAC,CAACI,aAAa,GACfJ,CAAC,CAACK,iBAAiB;EACzB,MAAMC,QAAQ,GACZL,CAAC,CAACG,aAAa,GAAGH,CAAC,CAACI,iBAAiB,GACjCJ,CAAC,CAACG,aAAa,GACfH,CAAC,CAACI,iBAAiB;EAEzB,OAAOC,QAAQ,GAAGH,QAAQ;AAC5B,CAAC;AAED,OAAO,MAAMI,iBAAiB,GAAGA,CAC/BC,WAAwB,EACxBC,QAAiB,EACjBC,UAAmB,KAChB;EACH,MAAMC,MAAM,GACVH,WAAW,KAAKV,WAAW,CAACc,MAAM,GAC9B,IAAI,GACJJ,WAAW,KAAKV,WAAW,CAACe,YAAY,GACtC,IAAI,GACJ,IAAI;EAEZ,OAAO,CAACF,MAAM,EAAEF,QAAQ,EAAEC,UAAU,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,GAAqC,IAAK;EACzE,MAAMC,IAAI,GAAGC,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,IAAI,CAAC,CAACtB,CAAC,EAAEC,CAAC,KACtCF,mBAAmB,CAACmB,GAAG,CAAClB,CAAC,CAAC,EAAGkB,GAAG,CAACjB,CAAC,CAAE,CACtC,CAAC;EACD,OAAO;IAAEiB,GAAG;IAAEC;EAAK,CAAC;AACtB,CAAC;AAED,OAAO,MAAMI,QAAQ,GAAIC,YAA+B,IAAK;EAC3D,IAAIA,YAAY,IAAIA,YAAY,EAAEC,QAAQ,KAAK5B,QAAQ,CAAC6B,GAAG,EAAE;IAC3D,IAAI;MACF,MAAMC,EAAE,GAAGC,IAAI,CAACC,KAAK,CAACL,YAAY,EAAEM,EAAE,IAAI,IAAI,CAAC,EAAEC,WAAW,EAAEC,IAAI,EAAEC,KAAK;MACzE,OAAON,EAAE;MACT;IACF,CAAC,CAAC,OAAOO,CAAM,EAAE;MACf,OAAOC,SAAS;IAClB;EACF;EACA,OAAOA,SAAS;AAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["PeerType","SessionType","conversationCompare","a","b","isPinned","aCompare","draftTextTime","latestMsgSendTime","bCompare","getConversationID","sessionType","senderID","receiverID","prefix","Single","Notification","filter","Boolean","join","sortConversation","map","list","Object","keys","sort","getBotId","conversation","peerType","Bot","id","JSON","parse","ex","sessionInfo","data","botId","_","undefined","isGroupConversation","Group"],"sourceRoot":"../../../src","sources":["utils/conversation.ts"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,WAAW,QAEN,+BAA+B;AAEtC,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,CAAmB,EACnBC,CAAmB,KAChB;EACH,IAAID,CAAC,CAACE,QAAQ,KAAKD,CAAC,CAACC,QAAQ,EAAE,OAAOF,CAAC,CAACE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;EAEzD,MAAMC,QAAQ,GACZH,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,iBAAiB,GACjCL,CAAC,CAACI,aAAa,GACfJ,CAAC,CAACK,iBAAiB;EACzB,MAAMC,QAAQ,GACZL,CAAC,CAACG,aAAa,GAAGH,CAAC,CAACI,iBAAiB,GACjCJ,CAAC,CAACG,aAAa,GACfH,CAAC,CAACI,iBAAiB;EAEzB,OAAOC,QAAQ,GAAGH,QAAQ;AAC5B,CAAC;AAED,OAAO,MAAMI,iBAAiB,GAAGA,CAC/BC,WAAwB,EACxBC,QAAiB,EACjBC,UAAmB,KAChB;EACH,MAAMC,MAAM,GACVH,WAAW,KAAKV,WAAW,CAACc,MAAM,GAC9B,IAAI,GACJJ,WAAW,KAAKV,WAAW,CAACe,YAAY,GACtC,IAAI,GACJ,IAAI;EAEZ,OAAO,CAACF,MAAM,EAAEF,QAAQ,EAAEC,UAAU,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,GAAqC,IAAK;EACzE,MAAMC,IAAI,GAAGC,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,IAAI,CAAC,CAACtB,CAAC,EAAEC,CAAC,KACtCF,mBAAmB,CAACmB,GAAG,CAAClB,CAAC,CAAC,EAAGkB,GAAG,CAACjB,CAAC,CAAE,CACtC,CAAC;EACD,OAAO;IAAEiB,GAAG;IAAEC;EAAK,CAAC;AACtB,CAAC;AAED,OAAO,MAAMI,QAAQ,GAAIC,YAA+B,IAAK;EAC3D,IAAIA,YAAY,IAAIA,YAAY,EAAEC,QAAQ,KAAK5B,QAAQ,CAAC6B,GAAG,EAAE;IAC3D,IAAI;MACF,MAAMC,EAAE,GAAGC,IAAI,CAACC,KAAK,CAACL,YAAY,EAAEM,EAAE,IAAI,IAAI,CAAC,EAAEC,WAAW,EAAEC,IAAI,EAAEC,KAAK;MACzE,OAAON,EAAE;MACT;IACF,CAAC,CAAC,OAAOO,CAAM,EAAE;MACf,OAAOC,SAAS;IAClB;EACF;EACA,OAAOA,SAAS;AAClB,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAC9BZ,YAAsE,IACnE;EACH,OAAOA,YAAY,EAAEC,QAAQ,KAAK5B,QAAQ,CAACwC,KAAK;AAClD,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare const useGetGroupInfo: (groupId?: string) => import("@tanstack/react-query").UseQueryResult<NoInfer<import("@droppii/openim-rn-client-sdk").GroupItem>, Error>;
2
+ //# sourceMappingURL=useGetGroupInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetGroupInfo.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/conversation/useGetGroupInfo.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,GAAI,gBAAY,sHAaxC,CAAC"}
@@ -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":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAsIA,wBAEE"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAyIA,wBAEE"}
@@ -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.65",
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-rc23",
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",
@@ -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
+ });
@@ -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>
@@ -13,18 +13,22 @@ import { trans } from '../../translation';
13
13
  interface ChatInfoActionsProps {
14
14
  conversation?: ConversationItem;
15
15
  isTargetActive: boolean;
16
+ isGroup?: boolean;
16
17
  onPressOrders?: () => void;
17
18
  onPressCreateGroup?: () => void;
18
19
  onPressAddToGroup?: () => void;
20
+ onPressLeaveGroup?: () => void;
19
21
  }
20
22
 
21
23
  const ChatInfoActions = memo(
22
24
  ({
23
25
  conversation,
24
26
  isTargetActive,
27
+ isGroup,
25
28
  onPressOrders,
26
29
  onPressCreateGroup,
27
30
  onPressAddToGroup,
31
+ onPressLeaveGroup,
28
32
  }: ChatInfoActionsProps) => {
29
33
  const { pinConversation, unpinConversation } = usePinConversation();
30
34
  const isPinned = Boolean(conversation?.isPinned);
@@ -41,8 +45,10 @@ const ChatInfoActions = memo(
41
45
  const handleDeleteHistory = useCallback(() => {}, []);
42
46
 
43
47
  const primaryData = useMemo(() => {
44
- const items: KListItemBaseItemProps[] = [
45
- {
48
+ const items: KListItemBaseItemProps[] = [];
49
+
50
+ if (!isGroup) {
51
+ items.push({
46
52
  leftNode: { icon: { vectorName: 'receipt-o' } },
47
53
  onPress: onPressOrders,
48
54
  paddingH: '0.75rem',
@@ -52,34 +58,34 @@ const ChatInfoActions = memo(
52
58
  {trans('chat:info_orders', { name: showName })}
53
59
  </KLabel.Text>
54
60
  ),
55
- },
56
- ];
61
+ });
57
62
 
58
- if (isTargetActive) {
59
- items.push(
60
- {
61
- leftNode: { icon: { vectorName: 'user-three-o' } },
62
- onPress: onPressCreateGroup,
63
- paddingH: '0.75rem',
64
- paddingV: '0.75rem',
65
- customLabel: (
66
- <KLabel.Text typo="TextMdMedium" numberOfLines={1}>
67
- {trans('chat:info_create_group', { name: showName })}
68
- </KLabel.Text>
69
- ),
70
- },
71
- {
72
- leftNode: { icon: { vectorName: 'user-add-o' } },
73
- onPress: onPressAddToGroup,
74
- paddingH: '0.75rem',
75
- paddingV: '0.75rem',
76
- customLabel: (
77
- <KLabel.Text typo="TextMdMedium" numberOfLines={1}>
78
- {trans('chat:info_add_to_group')}
79
- </KLabel.Text>
80
- ),
81
- }
82
- );
63
+ if (isTargetActive) {
64
+ items.push(
65
+ {
66
+ leftNode: { icon: { vectorName: 'user-three-o' } },
67
+ onPress: onPressCreateGroup,
68
+ paddingH: '0.75rem',
69
+ paddingV: '0.75rem',
70
+ customLabel: (
71
+ <KLabel.Text typo="TextMdMedium" numberOfLines={1}>
72
+ {trans('chat:info_create_group', { name: showName })}
73
+ </KLabel.Text>
74
+ ),
75
+ },
76
+ {
77
+ leftNode: { icon: { vectorName: 'user-add-o' } },
78
+ onPress: onPressAddToGroup,
79
+ paddingH: '0.75rem',
80
+ paddingV: '0.75rem',
81
+ customLabel: (
82
+ <KLabel.Text typo="TextMdMedium" numberOfLines={1}>
83
+ {trans('chat:info_add_to_group')}
84
+ </KLabel.Text>
85
+ ),
86
+ }
87
+ );
88
+ }
83
89
  }
84
90
 
85
91
  items.push({
@@ -102,6 +108,7 @@ const ChatInfoActions = memo(
102
108
  return items;
103
109
  }, [
104
110
  showName,
111
+ isGroup,
105
112
  isTargetActive,
106
113
  isPinned,
107
114
  onPressOrders,
@@ -110,8 +117,35 @@ const ChatInfoActions = memo(
110
117
  handlePinPress,
111
118
  ]);
112
119
 
113
- const deleteData: KListItemBaseItemProps[] = useMemo(
114
- () => [
120
+ const dangerData: KListItemBaseItemProps[] = useMemo(() => {
121
+ if (isGroup) {
122
+ return [
123
+ {
124
+ leftNode: {
125
+ icon: {
126
+ vectorName: 'logout-o',
127
+ tintColor: KColors.danger.normal,
128
+ },
129
+ },
130
+ tintColor: KColors.danger.normal,
131
+ onPress: onPressLeaveGroup,
132
+ showChevron: false,
133
+ paddingH: '0.75rem',
134
+ paddingV: '0.75rem',
135
+ customLabel: (
136
+ <KLabel.Text
137
+ typo="TextMdMedium"
138
+ color={KColors.danger.normal}
139
+ numberOfLines={1}
140
+ >
141
+ {trans('chat:info_leave_group')}
142
+ </KLabel.Text>
143
+ ),
144
+ },
145
+ ];
146
+ }
147
+
148
+ return [
115
149
  {
116
150
  label: trans('chat:info_delete_history'),
117
151
  leftNode: {
@@ -135,9 +169,8 @@ const ChatInfoActions = memo(
135
169
  </KLabel.Text>
136
170
  ),
137
171
  },
138
- ],
139
- [handleDeleteHistory]
140
- );
172
+ ];
173
+ }, [isGroup, onPressLeaveGroup, handleDeleteHistory]);
141
174
 
142
175
  return (
143
176
  <>
@@ -158,7 +191,7 @@ const ChatInfoActions = memo(
158
191
  marginT="0.75rem"
159
192
  hiddenOverflow
160
193
  >
161
- <KListItem.Base data={deleteData} />
194
+ <KListItem.Base data={dangerData} />
162
195
  </KContainer.View>
163
196
  </>
164
197
  );
@@ -0,0 +1,102 @@
1
+ import { memo, useCallback, useState } from 'react';
2
+ import { StyleSheet, type TextLayoutEvent } from 'react-native';
3
+ import { KContainer, KLabel, KColors } from '@droppii/libs';
4
+ import { trans } from '../../translation';
5
+ import GroupDescriptionModal from './GroupDescriptionModal';
6
+
7
+ interface ChatInfoDescriptionRowProps {
8
+ introduction?: string;
9
+ groupName?: string;
10
+ }
11
+
12
+ const EXTRA_TEXT_LENGTH = 14; // Length of "...View More" text
13
+ const MAX_LINES = 2;
14
+
15
+ const ChatInfoDescriptionRow = memo(
16
+ ({ introduction, groupName }: ChatInfoDescriptionRowProps) => {
17
+ const [modalVisible, setModalVisible] = useState(false);
18
+ const handlePressDescription = useCallback(() => setModalVisible(true), []);
19
+ const handleCloseDescription = useCallback(
20
+ () => setModalVisible(false),
21
+ []
22
+ );
23
+
24
+ const [isTruncated, setIsTruncated] = useState(false);
25
+ const [displayedText, setDisplayedText] = useState(introduction);
26
+
27
+ const handleTextLayout = useCallback((event: TextLayoutEvent) => {
28
+ const isTextTruncated = event.nativeEvent.lines.length > MAX_LINES;
29
+
30
+ setIsTruncated(isTextTruncated);
31
+
32
+ if (isTextTruncated) {
33
+ setDisplayedText(
34
+ event.nativeEvent.lines
35
+ .slice(0, MAX_LINES)
36
+ .map((line) => line.text)
37
+ .join(' ')
38
+ .slice(0, -EXTRA_TEXT_LENGTH) + '...'
39
+ );
40
+ }
41
+ }, []);
42
+
43
+ const textProps = {
44
+ color: KColors.gray.dark,
45
+ typo: 'TextMdMedium' as const,
46
+ paddingH: '0.75rem' as const,
47
+ };
48
+
49
+ if (!introduction) {
50
+ return null;
51
+ }
52
+
53
+ return (
54
+ <>
55
+ <KContainer.View
56
+ background={KColors.white}
57
+ br="3x"
58
+ marginH="0.75rem"
59
+ marginT="0.75rem"
60
+ paddingV="0.75rem"
61
+ >
62
+ <KLabel.Text
63
+ {...textProps}
64
+ style={styles.hiddenText}
65
+ numberOfLines={MAX_LINES + 1}
66
+ onTextLayout={handleTextLayout}
67
+ >
68
+ {introduction}
69
+ </KLabel.Text>
70
+ <KLabel.Text {...textProps} numberOfLines={2}>
71
+ {displayedText}
72
+ <KContainer.VisibleView visible={isTruncated}>
73
+ <KLabel.Text
74
+ {...textProps}
75
+ color={KColors.primary.normal}
76
+ onPress={handlePressDescription}
77
+ >
78
+ {trans('chat:info_view_more')}
79
+ </KLabel.Text>
80
+ </KContainer.VisibleView>
81
+ </KLabel.Text>
82
+ </KContainer.View>
83
+ <GroupDescriptionModal
84
+ visible={modalVisible}
85
+ groupName={groupName}
86
+ introduction={introduction}
87
+ onClose={handleCloseDescription}
88
+ />
89
+ </>
90
+ );
91
+ }
92
+ );
93
+
94
+ export default ChatInfoDescriptionRow;
95
+
96
+ const styles = StyleSheet.create({
97
+ hiddenText: {
98
+ position: 'absolute',
99
+ opacity: 0,
100
+ zIndex: -1,
101
+ },
102
+ });
@@ -0,0 +1,67 @@
1
+ import { memo } from 'react';
2
+ import { Modal, StyleSheet } from 'react-native';
3
+ import { KContainer, KNavigation, KLabel, KColors } from '@droppii/libs';
4
+ import { trans } from '../../translation';
5
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
6
+
7
+ interface GroupDescriptionModalProps {
8
+ visible: boolean;
9
+ groupName?: string;
10
+ introduction?: string;
11
+ onClose: () => void;
12
+ }
13
+
14
+ const GroupDescriptionModal = memo(
15
+ ({
16
+ visible,
17
+ groupName,
18
+ introduction,
19
+ onClose,
20
+ }: GroupDescriptionModalProps) => (
21
+ <Modal
22
+ visible={visible}
23
+ transparent={false}
24
+ statusBarTranslucent
25
+ style={styles.modal}
26
+ presentationStyle="fullScreen"
27
+ animationType="slide"
28
+ onRequestClose={onClose}
29
+ >
30
+ <SafeAreaProvider>
31
+ <KContainer.Page flex edges={['bottom']} background={KColors.white}>
32
+ <KNavigation.Header
33
+ theme="light"
34
+ alignment="left"
35
+ size="small"
36
+ leftButton={{
37
+ id: 'GroupDescriptionModalCloseButton',
38
+ icon: { vectorName: 'close-o' },
39
+ onPress: onClose,
40
+ }}
41
+ title={trans('chat:group_description_title')}
42
+ subTitle={groupName}
43
+ shadow
44
+ />
45
+ <KLabel.Text
46
+ paddingH="1rem"
47
+ paddingT="0.75rem"
48
+ typo="TextMdNormal"
49
+ color={KColors.gray.dark}
50
+ >
51
+ {introduction}
52
+ </KLabel.Text>
53
+ </KContainer.Page>
54
+ </SafeAreaProvider>
55
+ </Modal>
56
+ )
57
+ );
58
+
59
+ GroupDescriptionModal.displayName = 'GroupDescriptionModal';
60
+
61
+ export default GroupDescriptionModal;
62
+
63
+ const styles = StyleSheet.create({
64
+ modal: {
65
+ flex: 1,
66
+ },
67
+ });
@@ -8,4 +8,5 @@ export interface ChatInfoProps {
8
8
  onPressOrders?: () => void;
9
9
  onPressCreateGroup?: () => void;
10
10
  onPressAddToGroup?: () => void;
11
+ onPressLeaveGroup?: () => void;
11
12
  }
@@ -92,6 +92,9 @@ const i18nKey: Record<string, string> = {
92
92
  'chat:info_pin_message': 'Ghim trò chuyện',
93
93
  'chat:info_unpin_message': 'Bỏ ghim trò chuyện',
94
94
  'chat:info_delete_history': 'Xoá lịch sử trò chuyện',
95
+ 'chat:info_leave_group': 'Rời nhóm',
96
+ 'chat:info_view_more': 'Xem thêm',
97
+ 'chat:group_description_title': 'Mô tả nhóm',
95
98
  'start': 'Bắt đầu',
96
99
  'restart': 'Bắt đầu lại',
97
100
  'gallery': 'Ảnh/Video',
@@ -56,3 +56,9 @@ export const getBotId = (conversation?: ConversationItem) => {
56
56
  }
57
57
  return undefined;
58
58
  };
59
+
60
+ export const isGroupConversation = (
61
+ conversation?: Pick<ConversationItem, 'conversationType' | 'peerType'>
62
+ ) => {
63
+ return conversation?.peerType === PeerType.Group;
64
+ };