@droppii-org/chat-mobile 0.2.50 → 0.2.51
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.
- package/lib/module/components/StickerPicker/StickerCategoryTabs.js +86 -0
- package/lib/module/components/StickerPicker/StickerCategoryTabs.js.map +1 -0
- package/lib/module/components/StickerPicker/StickerPickerPlaceholder.js +18 -0
- package/lib/module/components/StickerPicker/StickerPickerPlaceholder.js.map +1 -0
- package/lib/module/components/StickerPicker/StickerPickerRowItem.js +35 -0
- package/lib/module/components/StickerPicker/StickerPickerRowItem.js.map +1 -0
- package/lib/module/components/StickerPicker/StickerSectionList.js +110 -0
- package/lib/module/components/StickerPicker/StickerSectionList.js.map +1 -0
- package/lib/module/components/StickerPicker/constants.js +14 -0
- package/lib/module/components/StickerPicker/constants.js.map +1 -0
- package/lib/module/components/StickerPicker/index.js +134 -0
- package/lib/module/components/StickerPicker/index.js.map +1 -0
- package/lib/module/components/messages/stickerMessage/index.js +28 -0
- package/lib/module/components/messages/stickerMessage/index.js.map +1 -0
- package/lib/module/config/api-endpoints.js +4 -1
- package/lib/module/config/api-endpoints.js.map +1 -1
- package/lib/module/hooks/conversation/useGetConversationDetail.js +15 -0
- package/lib/module/hooks/conversation/useGetConversationDetail.js.map +1 -1
- package/lib/module/hooks/flows/useGetConversationFlowMainMenu.js +1 -1
- package/lib/module/hooks/flows/useGetConversationFlowMainMenu.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +45 -18
- package/lib/module/hooks/message/useSendMessage.js.map +1 -1
- package/lib/module/hooks/query-keys.js +7 -0
- package/lib/module/hooks/query-keys.js.map +1 -1
- package/lib/module/hooks/stickers/useFetchStickerByCategory.js +12 -0
- package/lib/module/hooks/stickers/useFetchStickerByCategory.js.map +1 -0
- package/lib/module/hooks/stickers/useStickerCategories.js +14 -0
- package/lib/module/hooks/stickers/useStickerCategories.js.map +1 -0
- package/lib/module/hooks/stickers/useStickerHistory.js +16 -0
- package/lib/module/hooks/stickers/useStickerHistory.js.map +1 -0
- package/lib/module/hooks/useChatCompose.js +1 -18
- package/lib/module/hooks/useChatCompose.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +64 -16
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +6 -20
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js +15 -4
- package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +3 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +5 -6
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/services/attachmentOrchestrator.js +1 -1
- package/lib/module/services/attachmentOrchestrator.js.map +1 -1
- package/lib/module/services/endpoints.js +4 -1
- package/lib/module/services/endpoints.js.map +1 -1
- package/lib/module/store/conversation.js +1 -20
- package/lib/module/store/conversation.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +3 -1
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/chat.js +6 -0
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/types/sticker.js +2 -0
- package/lib/module/types/sticker.js.map +1 -0
- package/lib/module/utils/conversation.js +1 -24
- package/lib/module/utils/conversation.js.map +1 -1
- package/lib/module/utils/messageUtils.js +2 -0
- package/lib/module/utils/messageUtils.js.map +1 -1
- package/lib/typescript/src/components/StickerPicker/StickerCategoryTabs.d.ts +9 -0
- package/lib/typescript/src/components/StickerPicker/StickerCategoryTabs.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerPlaceholder.d.ts +2 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerPlaceholder.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerRowItem.d.ts +8 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerRowItem.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/StickerSectionList.d.ts +15 -0
- package/lib/typescript/src/components/StickerPicker/StickerSectionList.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/constants.d.ts +11 -0
- package/lib/typescript/src/components/StickerPicker/constants.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/index.d.ts +7 -0
- package/lib/typescript/src/components/StickerPicker/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts +3 -0
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/config/api-endpoints.d.ts +3 -0
- package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -1
- package/lib/typescript/src/hooks/conversation/useGetConversationDetail.d.ts +2 -1
- package/lib/typescript/src/hooks/conversation/useGetConversationDetail.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +5 -3
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/src/hooks/query-keys.d.ts +7 -0
- package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
- package/lib/typescript/src/hooks/stickers/useFetchStickerByCategory.d.ts +3 -0
- package/lib/typescript/src/hooks/stickers/useFetchStickerByCategory.d.ts.map +1 -0
- package/lib/typescript/src/hooks/stickers/useStickerCategories.d.ts +3 -0
- package/lib/typescript/src/hooks/stickers/useStickerCategories.d.ts.map +1 -0
- package/lib/typescript/src/hooks/stickers/useStickerHistory.d.ts +3 -0
- package/lib/typescript/src/hooks/stickers/useStickerHistory.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +2 -2
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts +2 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +3 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/services/endpoints.d.ts +4 -1
- package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
- package/lib/typescript/src/store/conversation.d.ts +0 -3
- package/lib/typescript/src/store/conversation.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +12 -19
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/sticker.d.ts +21 -0
- package/lib/typescript/src/types/sticker.d.ts.map +1 -0
- package/lib/typescript/src/utils/conversation.d.ts +1 -2
- package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
- package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/StickerPicker/StickerCategoryTabs.tsx +103 -0
- package/src/components/StickerPicker/StickerPickerPlaceholder.tsx +16 -0
- package/src/components/StickerPicker/StickerPickerRowItem.tsx +43 -0
- package/src/components/StickerPicker/StickerSectionList.tsx +141 -0
- package/src/components/StickerPicker/constants.ts +20 -0
- package/src/components/StickerPicker/index.tsx +166 -0
- package/src/components/messages/stickerMessage/index.tsx +26 -0
- package/src/config/api-endpoints.ts +6 -0
- package/src/hooks/conversation/useGetConversationDetail.ts +20 -1
- package/src/hooks/flows/useGetConversationFlowMainMenu.ts +1 -1
- package/src/hooks/message/useSendMessage.ts +49 -27
- package/src/hooks/query-keys.ts +10 -0
- package/src/hooks/stickers/useFetchStickerByCategory.ts +15 -0
- package/src/hooks/stickers/useStickerCategories.ts +17 -0
- package/src/hooks/stickers/useStickerHistory.ts +19 -0
- package/src/hooks/useChatCompose.ts +0 -19
- package/src/screens/chat-detail/ChatComposer.tsx +106 -19
- package/src/screens/chat-detail/ChatDetail.tsx +5 -19
- package/src/screens/chat-detail/hooks/useChatComposerAnimation.ts +21 -5
- package/src/screens/chat-detail/hooks/useChatComposerState.ts +7 -0
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +4 -5
- package/src/services/attachmentOrchestrator.ts +1 -1
- package/src/services/endpoints.ts +6 -1
- package/src/store/conversation.ts +0 -24
- package/src/translation/resources/i18n.ts +3 -0
- package/src/types/chat.ts +13 -21
- package/src/types/sticker.ts +23 -0
- package/src/utils/conversation.ts +0 -28
- package/src/utils/messageUtils.ts +3 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useEffect, useRef } from 'react';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KColors, KSpacingValue, KRadiusValue } from '@droppii/libs';
|
|
6
|
+
import { CATEGORY_TAB_HEIGHT, RECENT_CATEGORY_ID } from "./constants.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const StickerCategoryTabs = /*#__PURE__*/memo(({
|
|
9
|
+
categories,
|
|
10
|
+
activeCategory,
|
|
11
|
+
onSelectCategory
|
|
12
|
+
}) => {
|
|
13
|
+
const listRef = useRef(null);
|
|
14
|
+
const pressedFromHereRef = useRef(false);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (pressedFromHereRef.current) {
|
|
17
|
+
pressedFromHereRef.current = false;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const index = categories.findIndex(c => c.id === activeCategory);
|
|
21
|
+
if (index >= 0 && listRef.current) {
|
|
22
|
+
try {
|
|
23
|
+
listRef.current.scrollToIndex({
|
|
24
|
+
index,
|
|
25
|
+
animated: true,
|
|
26
|
+
viewPosition: 0.5
|
|
27
|
+
});
|
|
28
|
+
} catch {}
|
|
29
|
+
}
|
|
30
|
+
}, [activeCategory, categories]);
|
|
31
|
+
return /*#__PURE__*/_jsx(KContainer.FlatList, {
|
|
32
|
+
ref: listRef,
|
|
33
|
+
data: categories,
|
|
34
|
+
horizontal: true,
|
|
35
|
+
showsHorizontalScrollIndicator: false,
|
|
36
|
+
keyExtractor: item => item.id,
|
|
37
|
+
renderItem: ({
|
|
38
|
+
item
|
|
39
|
+
}) => {
|
|
40
|
+
const isActive = item.id === activeCategory;
|
|
41
|
+
return /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
42
|
+
onPress: () => {
|
|
43
|
+
pressedFromHereRef.current = true;
|
|
44
|
+
onSelectCategory(item.id);
|
|
45
|
+
},
|
|
46
|
+
center: true,
|
|
47
|
+
style: [styles.tab, isActive && styles.tabActive],
|
|
48
|
+
children: item?.id === RECENT_CATEGORY_ID ? /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
49
|
+
name: "time-circle-b",
|
|
50
|
+
size: 28
|
|
51
|
+
}) : item?.icon && /*#__PURE__*/_jsx(KImage.Base, {
|
|
52
|
+
uri: item?.icon?.fullUrl,
|
|
53
|
+
width: 28,
|
|
54
|
+
height: 28
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
style: styles.list,
|
|
59
|
+
contentContainerStyle: styles.content
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
const styles = StyleSheet.create({
|
|
63
|
+
list: {
|
|
64
|
+
height: CATEGORY_TAB_HEIGHT
|
|
65
|
+
},
|
|
66
|
+
content: {
|
|
67
|
+
alignItems: 'center',
|
|
68
|
+
paddingHorizontal: KSpacingValue['0.75rem'],
|
|
69
|
+
gap: KSpacingValue['0.75rem']
|
|
70
|
+
},
|
|
71
|
+
tab: {
|
|
72
|
+
justifyContent: 'center',
|
|
73
|
+
alignItems: 'center',
|
|
74
|
+
padding: KSpacingValue['0.25rem']
|
|
75
|
+
},
|
|
76
|
+
tabActive: {
|
|
77
|
+
borderRadius: KRadiusValue['2x'],
|
|
78
|
+
backgroundColor: KColors.opacity.grayDark[10],
|
|
79
|
+
borderWidth: 1,
|
|
80
|
+
borderColor: KColors.palette.gray.w700
|
|
81
|
+
},
|
|
82
|
+
recentIcon: {
|
|
83
|
+
fontSize: 22
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=StickerCategoryTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useEffect","useRef","StyleSheet","KContainer","KImage","KColors","KSpacingValue","KRadiusValue","CATEGORY_TAB_HEIGHT","RECENT_CATEGORY_ID","jsx","_jsx","StickerCategoryTabs","categories","activeCategory","onSelectCategory","listRef","pressedFromHereRef","current","index","findIndex","c","id","scrollToIndex","animated","viewPosition","FlatList","ref","data","horizontal","showsHorizontalScrollIndicator","keyExtractor","item","renderItem","isActive","Touchable","onPress","center","style","styles","tab","tabActive","children","VectorIcons","name","size","icon","Base","uri","fullUrl","width","height","list","contentContainerStyle","content","create","alignItems","paddingHorizontal","gap","justifyContent","padding","borderRadius","backgroundColor","opacity","grayDark","borderWidth","borderColor","palette","gray","w700","recentIcon","fontSize"],"sourceRoot":"../../../../src","sources":["components/StickerPicker/StickerCategoryTabs.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { KColors, KContainer, KRadiusValue } from '@droppii/libs';
|
|
5
|
+
import { STICKER_SIZE } from "./constants.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export const StickerPickerPlaceholder = () => /*#__PURE__*/_jsx(KContainer.View, {
|
|
8
|
+
style: styles.placeholder
|
|
9
|
+
});
|
|
10
|
+
const styles = StyleSheet.create({
|
|
11
|
+
placeholder: {
|
|
12
|
+
width: STICKER_SIZE,
|
|
13
|
+
height: STICKER_SIZE,
|
|
14
|
+
borderRadius: KRadiusValue['2x'],
|
|
15
|
+
backgroundColor: KColors.border.light
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=StickerPickerPlaceholder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","KColors","KContainer","KRadiusValue","STICKER_SIZE","jsx","_jsx","StickerPickerPlaceholder","View","style","styles","placeholder","create","width","height","borderRadius","backgroundColor","border","light"],"sourceRoot":"../../../../src","sources":["components/StickerPicker/StickerPickerPlaceholder.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,OAAO,EAAEC,UAAU,EAAEC,YAAY,QAAQ,eAAe;AACjE,SAASC,YAAY,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,kBACtCD,IAAA,CAACJ,UAAU,CAACM,IAAI;EAACC,KAAK,EAAEC,MAAM,CAACC;AAAY,CAAE,CAC9C;AAED,MAAMD,MAAM,GAAGV,UAAU,CAACY,MAAM,CAAC;EAC/BD,WAAW,EAAE;IACXE,KAAK,EAAET,YAAY;IACnBU,MAAM,EAAEV,YAAY;IACpBW,YAAY,EAAEZ,YAAY,CAAC,IAAI,CAAC;IAChCa,eAAe,EAAEf,OAAO,CAACgB,MAAM,CAACC;EAClC;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { KContainer, KImage } from '@droppii/libs';
|
|
5
|
+
import { STICKER_SIZE, STICKER_GAP } from "./constants.js";
|
|
6
|
+
import { StickerPickerPlaceholder } from "./StickerPickerPlaceholder.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const StickerPickerRowItem = ({
|
|
9
|
+
row,
|
|
10
|
+
onSelectSticker
|
|
11
|
+
}) => /*#__PURE__*/_jsx(KContainer.View, {
|
|
12
|
+
row: true,
|
|
13
|
+
style: styles.row,
|
|
14
|
+
children: row.map((sticker, i) => /*#__PURE__*/_jsx(KContainer.View, {
|
|
15
|
+
style: i < row.length - 1 ? styles.cell : undefined,
|
|
16
|
+
children: sticker ? /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
17
|
+
onPress: () => onSelectSticker(sticker),
|
|
18
|
+
children: /*#__PURE__*/_jsx(KImage.Base, {
|
|
19
|
+
uri: sticker.file.fullUrl,
|
|
20
|
+
width: STICKER_SIZE,
|
|
21
|
+
height: STICKER_SIZE
|
|
22
|
+
})
|
|
23
|
+
}) : /*#__PURE__*/_jsx(StickerPickerPlaceholder, {})
|
|
24
|
+
}, i))
|
|
25
|
+
});
|
|
26
|
+
const styles = StyleSheet.create({
|
|
27
|
+
row: {
|
|
28
|
+
marginBottom: STICKER_GAP,
|
|
29
|
+
paddingHorizontal: 12
|
|
30
|
+
},
|
|
31
|
+
cell: {
|
|
32
|
+
marginRight: STICKER_GAP
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=StickerPickerRowItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","KContainer","KImage","STICKER_SIZE","STICKER_GAP","StickerPickerPlaceholder","jsx","_jsx","StickerPickerRowItem","row","onSelectSticker","View","style","styles","children","map","sticker","i","length","cell","undefined","Touchable","onPress","Base","uri","file","fullUrl","width","height","create","marginBottom","paddingHorizontal","marginRight"],"sourceRoot":"../../../../src","sources":["components/StickerPicker/StickerPickerRowItem.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,EAAEC,MAAM,QAAQ,eAAe;AAClD,SAASC,YAAY,EAAEC,WAAW,QAAQ,gBAAa;AAEvD,SAASC,wBAAwB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOtE,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EAAEC,GAAG;EAAEC;AAAuB,CAAC,kBAClEH,IAAA,CAACN,UAAU,CAACU,IAAI;EAACF,GAAG;EAACG,KAAK,EAAEC,MAAM,CAACJ,GAAI;EAAAK,QAAA,EACpCL,GAAG,CAACM,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,kBAClBV,IAAA,CAACN,UAAU,CAACU,IAAI;IAEdC,KAAK,EAAEK,CAAC,GAAGR,GAAG,CAACS,MAAM,GAAG,CAAC,GAAGL,MAAM,CAACM,IAAI,GAAGC,SAAU;IAAAN,QAAA,EAEnDE,OAAO,gBACNT,IAAA,CAACN,UAAU,CAACoB,SAAS;MAACC,OAAO,EAAEA,CAAA,KAAMZ,eAAe,CAACM,OAAO,CAAE;MAAAF,QAAA,eAC5DP,IAAA,CAACL,MAAM,CAACqB,IAAI;QACVC,GAAG,EAAER,OAAO,CAACS,IAAI,CAACC,OAAQ;QAC1BC,KAAK,EAAExB,YAAa;QACpByB,MAAM,EAAEzB;MAAa,CACtB;IAAC,CACkB,CAAC,gBAEvBI,IAAA,CAACF,wBAAwB,IAAE;EAC5B,GAbIY,CAcU,CAClB;AAAC,CACa,CAClB;AAED,MAAMJ,MAAM,GAAGb,UAAU,CAAC6B,MAAM,CAAC;EAC/BpB,GAAG,EAAE;IACHqB,YAAY,EAAE1B,WAAW;IACzB2B,iBAAiB,EAAE;EACrB,CAAC;EACDZ,IAAI,EAAE;IACJa,WAAW,EAAE5B;EACf;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useCallback, useRef } from 'react';
|
|
4
|
+
import { SectionList, StyleSheet } from 'react-native';
|
|
5
|
+
import { KColors, KLabel, KSpacingValue } from '@droppii/libs';
|
|
6
|
+
import { StickerPickerRowItem } from "./StickerPickerRowItem.js";
|
|
7
|
+
import { STICKER_PICKER_CONTENT_HEIGHT } from "./constants.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
const AT_BOTTOM_THRESHOLD = 8;
|
|
10
|
+
const VIEWABILITY_CONFIG = {
|
|
11
|
+
itemVisiblePercentThreshold: 10
|
|
12
|
+
};
|
|
13
|
+
export const StickerSectionList = /*#__PURE__*/forwardRef(({
|
|
14
|
+
sections,
|
|
15
|
+
onSectionVisible,
|
|
16
|
+
onActiveCategoryChange,
|
|
17
|
+
onSelectSticker
|
|
18
|
+
}, ref) => {
|
|
19
|
+
const onSectionVisibleRef = useRef(onSectionVisible);
|
|
20
|
+
onSectionVisibleRef.current = onSectionVisible;
|
|
21
|
+
const onActiveCategoryChangeRef = useRef(onActiveCategoryChange);
|
|
22
|
+
onActiveCategoryChangeRef.current = onActiveCategoryChange;
|
|
23
|
+
const sectionsRef = useRef(sections);
|
|
24
|
+
sectionsRef.current = sections;
|
|
25
|
+
const isAtBottomRef = useRef(false);
|
|
26
|
+
const onScroll = useCallback(e => {
|
|
27
|
+
const {
|
|
28
|
+
contentOffset,
|
|
29
|
+
contentSize,
|
|
30
|
+
layoutMeasurement
|
|
31
|
+
} = e.nativeEvent;
|
|
32
|
+
isAtBottomRef.current = contentOffset.y + layoutMeasurement.height >= contentSize.height - AT_BOTTOM_THRESHOLD;
|
|
33
|
+
}, []);
|
|
34
|
+
const renderItem = useCallback(({
|
|
35
|
+
item
|
|
36
|
+
}) => /*#__PURE__*/_jsx(StickerPickerRowItem, {
|
|
37
|
+
row: item,
|
|
38
|
+
onSelectSticker: onSelectSticker
|
|
39
|
+
}), [onSelectSticker]);
|
|
40
|
+
const renderSectionHeader = useCallback(({
|
|
41
|
+
section
|
|
42
|
+
}) => /*#__PURE__*/_jsx(KLabel.Text, {
|
|
43
|
+
typo: "TitleSection",
|
|
44
|
+
style: styles.sectionHeader,
|
|
45
|
+
color: KColors.gray.light,
|
|
46
|
+
children: section.title
|
|
47
|
+
}), []);
|
|
48
|
+
const onViewableItemsChanged = useCallback(args => {
|
|
49
|
+
const {
|
|
50
|
+
viewableItems
|
|
51
|
+
} = args;
|
|
52
|
+
if (!viewableItems.length) return;
|
|
53
|
+
|
|
54
|
+
// Trigger lazy load for all currently visible sections
|
|
55
|
+
const seenCategories = new Set();
|
|
56
|
+
viewableItems.forEach(vi => {
|
|
57
|
+
const cat = vi.section?.categoryId;
|
|
58
|
+
if (cat && !seenCategories.has(cat)) {
|
|
59
|
+
seenCategories.add(cat);
|
|
60
|
+
onSectionVisibleRef.current(cat);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// When at the bottom of the list, force the last section as active.
|
|
65
|
+
// This handles the edge case where the last section has few items and
|
|
66
|
+
// its header never reaches the top of the viewport.
|
|
67
|
+
if (isAtBottomRef.current) {
|
|
68
|
+
const lastSection = sectionsRef.current[sectionsRef.current.length - 1];
|
|
69
|
+
if (lastSection) {
|
|
70
|
+
onActiveCategoryChangeRef.current(lastSection.categoryId);
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Otherwise use the first visible item's section (symmetric for both
|
|
76
|
+
// scroll directions: switches when the section header enters from either end).
|
|
77
|
+
const firstVisible = viewableItems.find(vi => vi.section != null);
|
|
78
|
+
const categoryId = firstVisible?.section?.categoryId;
|
|
79
|
+
if (categoryId) {
|
|
80
|
+
onActiveCategoryChangeRef.current(categoryId);
|
|
81
|
+
}
|
|
82
|
+
}, []);
|
|
83
|
+
return /*#__PURE__*/_jsx(SectionList, {
|
|
84
|
+
ref: ref,
|
|
85
|
+
sections: sections,
|
|
86
|
+
renderItem: renderItem,
|
|
87
|
+
renderSectionHeader: renderSectionHeader,
|
|
88
|
+
keyExtractor: (_, index) => String(index),
|
|
89
|
+
onScroll: onScroll,
|
|
90
|
+
scrollEventThrottle: 16,
|
|
91
|
+
onViewableItemsChanged: onViewableItemsChanged,
|
|
92
|
+
viewabilityConfig: VIEWABILITY_CONFIG,
|
|
93
|
+
removeClippedSubviews: true,
|
|
94
|
+
initialNumToRender: 8,
|
|
95
|
+
maxToRenderPerBatch: 8,
|
|
96
|
+
style: styles.list,
|
|
97
|
+
showsVerticalScrollIndicator: false,
|
|
98
|
+
stickySectionHeadersEnabled: false
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
const styles = StyleSheet.create({
|
|
102
|
+
list: {
|
|
103
|
+
height: STICKER_PICKER_CONTENT_HEIGHT
|
|
104
|
+
},
|
|
105
|
+
sectionHeader: {
|
|
106
|
+
paddingHorizontal: KSpacingValue['0.75rem'],
|
|
107
|
+
paddingVertical: KSpacingValue['0.25rem']
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=StickerSectionList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useRef","SectionList","StyleSheet","KColors","KLabel","KSpacingValue","StickerPickerRowItem","STICKER_PICKER_CONTENT_HEIGHT","jsx","_jsx","AT_BOTTOM_THRESHOLD","VIEWABILITY_CONFIG","itemVisiblePercentThreshold","StickerSectionList","sections","onSectionVisible","onActiveCategoryChange","onSelectSticker","ref","onSectionVisibleRef","current","onActiveCategoryChangeRef","sectionsRef","isAtBottomRef","onScroll","e","contentOffset","contentSize","layoutMeasurement","nativeEvent","y","height","renderItem","item","row","renderSectionHeader","section","Text","typo","style","styles","sectionHeader","color","gray","light","children","title","onViewableItemsChanged","args","viewableItems","length","seenCategories","Set","forEach","vi","cat","categoryId","has","add","lastSection","firstVisible","find","keyExtractor","_","index","String","scrollEventThrottle","viewabilityConfig","removeClippedSubviews","initialNumToRender","maxToRenderPerBatch","list","showsVerticalScrollIndicator","stickySectionHeadersEnabled","create","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/StickerPicker/StickerSectionList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { KDims } from '@droppii/libs';
|
|
4
|
+
export const STICKER_COLUMNS = 4;
|
|
5
|
+
export const STICKER_HORIZONTAL_PADDING = 12;
|
|
6
|
+
export const STICKER_GAP = 8;
|
|
7
|
+
export const STICKER_SIZE = Math.floor((KDims.width - STICKER_HORIZONTAL_PADDING * 2 - STICKER_GAP * (STICKER_COLUMNS - 1)) / STICKER_COLUMNS);
|
|
8
|
+
export const STICKER_ROW_HEIGHT = STICKER_SIZE + STICKER_GAP;
|
|
9
|
+
export const CATEGORY_TAB_HEIGHT = 52;
|
|
10
|
+
export const STICKER_SECTION_HEADER_HEIGHT = 36;
|
|
11
|
+
export const STICKER_PICKER_CONTENT_HEIGHT = 260;
|
|
12
|
+
export const STICKER_PICKER_HEIGHT = CATEGORY_TAB_HEIGHT + STICKER_PICKER_CONTENT_HEIGHT;
|
|
13
|
+
export const RECENT_CATEGORY_ID = 'recent';
|
|
14
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KDims","STICKER_COLUMNS","STICKER_HORIZONTAL_PADDING","STICKER_GAP","STICKER_SIZE","Math","floor","width","STICKER_ROW_HEIGHT","CATEGORY_TAB_HEIGHT","STICKER_SECTION_HEADER_HEIGHT","STICKER_PICKER_CONTENT_HEIGHT","STICKER_PICKER_HEIGHT","RECENT_CATEGORY_ID"],"sourceRoot":"../../../../src","sources":["components/StickerPicker/constants.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,eAAe;AAErC,OAAO,MAAMC,eAAe,GAAG,CAAC;AAChC,OAAO,MAAMC,0BAA0B,GAAG,EAAE;AAC5C,OAAO,MAAMC,WAAW,GAAG,CAAC;AAE5B,OAAO,MAAMC,YAAY,GAAGC,IAAI,CAACC,KAAK,CACpC,CAACN,KAAK,CAACO,KAAK,GACVL,0BAA0B,GAAG,CAAC,GAC9BC,WAAW,IAAIF,eAAe,GAAG,CAAC,CAAC,IACnCA,eACJ,CAAC;AACD,OAAO,MAAMO,kBAAkB,GAAGJ,YAAY,GAAGD,WAAW;AAC5D,OAAO,MAAMM,mBAAmB,GAAG,EAAE;AACrC,OAAO,MAAMC,6BAA6B,GAAG,EAAE;AAC/C,OAAO,MAAMC,6BAA6B,GAAG,GAAG;AAChD,OAAO,MAAMC,qBAAqB,GAChCH,mBAAmB,GAAGE,6BAA6B;AAErD,OAAO,MAAME,kBAAkB,GAAG,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState, useCallback, useRef, useEffect, useMemo } from 'react';
|
|
4
|
+
import { KColors, KContainer } from '@droppii/libs';
|
|
5
|
+
import { useStickerCategories } from "../../hooks/stickers/useStickerCategories.js";
|
|
6
|
+
import { useStickerHistory } from "../../hooks/stickers/useStickerHistory.js";
|
|
7
|
+
import { useFetchStickerByCategory } from "../../hooks/stickers/useFetchStickerByCategory.js";
|
|
8
|
+
import { RECENT_CATEGORY_ID, STICKER_COLUMNS, STICKER_PICKER_HEIGHT } from "./constants.js";
|
|
9
|
+
import { StickerCategoryTabs } from "./StickerCategoryTabs.js";
|
|
10
|
+
import { StickerSectionList } from "./StickerSectionList.js";
|
|
11
|
+
import { trans } from "../../translation/index.js";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
const chunkIntoRows = (items, columns) => {
|
|
14
|
+
const rows = [];
|
|
15
|
+
for (let i = 0; i < items.length; i += columns) {
|
|
16
|
+
rows.push(items.slice(i, i + columns));
|
|
17
|
+
}
|
|
18
|
+
return rows;
|
|
19
|
+
};
|
|
20
|
+
const makePlaceholderRows = (count, columns) => {
|
|
21
|
+
const rows = [];
|
|
22
|
+
for (let i = 0; i < count; i += columns) {
|
|
23
|
+
const rowSize = Math.min(columns, count - i);
|
|
24
|
+
rows.push(Array.from({
|
|
25
|
+
length: rowSize
|
|
26
|
+
}, () => null));
|
|
27
|
+
}
|
|
28
|
+
return rows;
|
|
29
|
+
};
|
|
30
|
+
export const StickerPicker = ({
|
|
31
|
+
onSelectSticker
|
|
32
|
+
}) => {
|
|
33
|
+
const {
|
|
34
|
+
data: categoriesData
|
|
35
|
+
} = useStickerCategories();
|
|
36
|
+
const {
|
|
37
|
+
data: recentStickers
|
|
38
|
+
} = useStickerHistory();
|
|
39
|
+
const {
|
|
40
|
+
mutateAsync: fetchStickersByCategory
|
|
41
|
+
} = useFetchStickerByCategory();
|
|
42
|
+
const allCategories = useMemo(() => {
|
|
43
|
+
const recent = {
|
|
44
|
+
id: RECENT_CATEGORY_ID,
|
|
45
|
+
name: trans('recent'),
|
|
46
|
+
icon: null,
|
|
47
|
+
stickerCount: 0
|
|
48
|
+
};
|
|
49
|
+
return [recent, ...(categoriesData || [])];
|
|
50
|
+
}, [categoriesData]);
|
|
51
|
+
const [activeCategory, setActiveCategory] = useState(RECENT_CATEGORY_ID);
|
|
52
|
+
const [sectionDataMap, setSectionDataMap] = useState({});
|
|
53
|
+
const loadedIdsRef = useRef(new Set([RECENT_CATEGORY_ID]));
|
|
54
|
+
const sectionListRef = useRef(null);
|
|
55
|
+
const suppressCategoryChangeRef = useRef(false);
|
|
56
|
+
const suppressTimerRef = useRef(null);
|
|
57
|
+
|
|
58
|
+
// Populate recent section when history data arrives
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (recentStickers) {
|
|
61
|
+
setSectionDataMap(prev => ({
|
|
62
|
+
...prev,
|
|
63
|
+
[RECENT_CATEGORY_ID]: chunkIntoRows(recentStickers, STICKER_COLUMNS)
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
}, [recentStickers]);
|
|
67
|
+
|
|
68
|
+
// Cleanup suppress timer on unmount
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
return () => {
|
|
71
|
+
if (suppressTimerRef.current) clearTimeout(suppressTimerRef.current);
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
74
|
+
const sections = useMemo(() => allCategories.map(cat => ({
|
|
75
|
+
categoryId: cat.id,
|
|
76
|
+
title: cat.name,
|
|
77
|
+
data: sectionDataMap[cat.id] ?? makePlaceholderRows(cat.stickerCount, STICKER_COLUMNS)
|
|
78
|
+
})), [allCategories, sectionDataMap]);
|
|
79
|
+
const handleSectionVisible = useCallback(async categoryId => {
|
|
80
|
+
if (categoryId === RECENT_CATEGORY_ID) return;
|
|
81
|
+
if (loadedIdsRef.current.has(categoryId)) return;
|
|
82
|
+
loadedIdsRef.current.add(categoryId);
|
|
83
|
+
try {
|
|
84
|
+
const stickers = await fetchStickersByCategory(categoryId);
|
|
85
|
+
setSectionDataMap(prev => ({
|
|
86
|
+
...prev,
|
|
87
|
+
[categoryId]: chunkIntoRows(stickers, STICKER_COLUMNS)
|
|
88
|
+
}));
|
|
89
|
+
} catch {
|
|
90
|
+
loadedIdsRef.current.delete(categoryId);
|
|
91
|
+
}
|
|
92
|
+
}, [fetchStickersByCategory]);
|
|
93
|
+
const handleActiveCategoryChange = useCallback(categoryId => {
|
|
94
|
+
if (suppressCategoryChangeRef.current) return;
|
|
95
|
+
setActiveCategory(categoryId);
|
|
96
|
+
}, []);
|
|
97
|
+
const handleCategoryPress = useCallback(categoryId => {
|
|
98
|
+
setActiveCategory(categoryId);
|
|
99
|
+
suppressCategoryChangeRef.current = true;
|
|
100
|
+
if (suppressTimerRef.current) clearTimeout(suppressTimerRef.current);
|
|
101
|
+
suppressTimerRef.current = setTimeout(() => {
|
|
102
|
+
suppressCategoryChangeRef.current = false;
|
|
103
|
+
}, 600);
|
|
104
|
+
const sectionIndex = allCategories.findIndex(c => c.id === categoryId);
|
|
105
|
+
if (sectionIndex >= 0 && sectionListRef.current) {
|
|
106
|
+
try {
|
|
107
|
+
sectionListRef.current.scrollToLocation({
|
|
108
|
+
sectionIndex,
|
|
109
|
+
itemIndex: 0,
|
|
110
|
+
animated: true,
|
|
111
|
+
viewOffset: 0
|
|
112
|
+
});
|
|
113
|
+
} catch {}
|
|
114
|
+
}
|
|
115
|
+
}, [allCategories]);
|
|
116
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
117
|
+
style: {
|
|
118
|
+
height: STICKER_PICKER_HEIGHT
|
|
119
|
+
},
|
|
120
|
+
background: KColors.white,
|
|
121
|
+
children: [/*#__PURE__*/_jsx(StickerCategoryTabs, {
|
|
122
|
+
categories: allCategories,
|
|
123
|
+
activeCategory: activeCategory,
|
|
124
|
+
onSelectCategory: handleCategoryPress
|
|
125
|
+
}), /*#__PURE__*/_jsx(StickerSectionList, {
|
|
126
|
+
ref: sectionListRef,
|
|
127
|
+
sections: sections,
|
|
128
|
+
onSectionVisible: handleSectionVisible,
|
|
129
|
+
onActiveCategoryChange: handleActiveCategoryChange,
|
|
130
|
+
onSelectSticker: onSelectSticker
|
|
131
|
+
})]
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","useCallback","useRef","useEffect","useMemo","KColors","KContainer","useStickerCategories","useStickerHistory","useFetchStickerByCategory","RECENT_CATEGORY_ID","STICKER_COLUMNS","STICKER_PICKER_HEIGHT","StickerCategoryTabs","StickerSectionList","trans","jsx","_jsx","jsxs","_jsxs","chunkIntoRows","items","columns","rows","i","length","push","slice","makePlaceholderRows","count","rowSize","Math","min","Array","from","StickerPicker","onSelectSticker","data","categoriesData","recentStickers","mutateAsync","fetchStickersByCategory","allCategories","recent","id","name","icon","stickerCount","activeCategory","setActiveCategory","sectionDataMap","setSectionDataMap","loadedIdsRef","Set","sectionListRef","suppressCategoryChangeRef","suppressTimerRef","prev","current","clearTimeout","sections","map","cat","categoryId","title","handleSectionVisible","has","add","stickers","delete","handleActiveCategoryChange","handleCategoryPress","setTimeout","sectionIndex","findIndex","c","scrollToLocation","itemIndex","animated","viewOffset","View","style","height","background","white","children","categories","onSelectCategory","ref","onSectionVisible","onActiveCategoryChange"],"sourceRoot":"../../../../src","sources":["components/StickerPicker/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { KContainer, KImage } from '@droppii/libs';
|
|
5
|
+
import { StyleSheet } from 'react-native';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const STICKER_SIZE = 120;
|
|
8
|
+
export const StickerMessage = /*#__PURE__*/memo(({
|
|
9
|
+
message
|
|
10
|
+
}) => {
|
|
11
|
+
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
12
|
+
style: styles.message,
|
|
13
|
+
children: /*#__PURE__*/_jsx(KImage.Base, {
|
|
14
|
+
uri: message?.stickerElem?.content || '',
|
|
15
|
+
width: STICKER_SIZE,
|
|
16
|
+
height: STICKER_SIZE
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
const styles = StyleSheet.create({
|
|
21
|
+
message: {
|
|
22
|
+
width: STICKER_SIZE,
|
|
23
|
+
height: STICKER_SIZE,
|
|
24
|
+
justifyContent: 'center',
|
|
25
|
+
alignItems: 'center'
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","KContainer","KImage","StyleSheet","jsx","_jsx","STICKER_SIZE","StickerMessage","message","View","style","styles","children","Base","uri","stickerElem","content","width","height","create","justifyContent","alignItems"],"sourceRoot":"../../../../../src","sources":["components/messages/stickerMessage/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAE5B,SAASC,UAAU,EAAEC,MAAM,QAAQ,eAAe;AAClD,SAASC,UAAU,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1C,MAAMC,YAAY,GAAG,GAAG;AACxB,OAAO,MAAMC,cAAc,gBAAGP,IAAI,CAAC,CAAC;EAAEQ;AAAgC,CAAC,KAAK;EAC1E,oBACEH,IAAA,CAACJ,UAAU,CAACQ,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACH,OAAQ;IAAAI,QAAA,eACrCP,IAAA,CAACH,MAAM,CAACW,IAAI;MACVC,GAAG,EAAEN,OAAO,EAAEO,WAAW,EAAEC,OAAO,IAAI,EAAG;MACzCC,KAAK,EAAEX,YAAa;MACpBY,MAAM,EAAEZ;IAAa,CACtB;EAAC,CACa,CAAC;AAEtB,CAAC,CAAC;AAEF,MAAMK,MAAM,GAAGR,UAAU,CAACgB,MAAM,CAAC;EAC/BX,OAAO,EAAE;IACPS,KAAK,EAAEX,YAAY;IACnBY,MAAM,EAAEZ,YAAY;IACpBc,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -16,7 +16,10 @@ const DEFAULT_ENDPOINTS = {
|
|
|
16
16
|
conversation: '/chat-service/v1/app/conversations',
|
|
17
17
|
imageUpload: '/uploader-service/v1/uploader/permanently',
|
|
18
18
|
bot: '/chat-service/v1/app/bots/',
|
|
19
|
-
uploadFcmToken: '/chat-service/third/fcm_update_token'
|
|
19
|
+
uploadFcmToken: '/chat-service/third/fcm_update_token',
|
|
20
|
+
stickerCategories: '/chat-service/v1/app/sticker-categories',
|
|
21
|
+
stickersByCategory: '/chat-service/v1/app/sticker-categories',
|
|
22
|
+
stickerHistory: '/chat-service/v1/app/stickers/history'
|
|
20
23
|
};
|
|
21
24
|
let endpoints = {
|
|
22
25
|
...DEFAULT_ENDPOINTS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_ENDPOINTS","urlMetadata","conversation","imageUpload","bot","uploadFcmToken","endpoints","getApiEndpoint","key","setApiEndpoint","value","setAllApiEndpoints","newEndpoints","resetApiEndpoints","getAllApiEndpoints"],"sourceRoot":"../../../src","sources":["config/api-endpoints.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["DEFAULT_ENDPOINTS","urlMetadata","conversation","imageUpload","bot","uploadFcmToken","stickerCategories","stickersByCategory","stickerHistory","endpoints","getApiEndpoint","key","setApiEndpoint","value","setAllApiEndpoints","newEndpoints","resetApiEndpoints","getAllApiEndpoints"],"sourceRoot":"../../../src","sources":["config/api-endpoints.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA,MAAMA,iBAA+B,GAAG;EACtCC,WAAW,EAAE,qCAAqC;EAClDC,YAAY,EAAE,oCAAoC;EAClDC,WAAW,EAAE,2CAA2C;EACxDC,GAAG,EAAE,4BAA4B;EACjCC,cAAc,EAAE,sCAAsC;EACtDC,iBAAiB,EAAE,yCAAyC;EAC5DC,kBAAkB,EAAE,yCAAyC;EAC7DC,cAAc,EAAE;AAClB,CAAC;AAED,IAAIC,SAAuB,GAAG;EAAE,GAAGT;AAAkB,CAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMU,cAAc,GACzBC,GAAM,IACc;EACpB,OAAOF,SAAS,CAACE,GAAG,CAAC;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGA,CAC5BD,GAAM,EACNE,KAAsB,KACnB;EACHJ,SAAS,CAACE,GAAG,CAAC,GAAGE,KAAK;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAIC,YAAmC,IAAK;EACzEN,SAAS,GAAG;IACV,GAAGA,SAAS;IACZ,GAAGM;EACL,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACrCP,SAAS,GAAG;IAAE,GAAGT;EAAkB,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMiB,kBAAkB,GAAGA,CAAA,MAAqB;EACrD,GAAGR;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -27,6 +27,21 @@ export const useGetStatusConversationBot = botId => {
|
|
|
27
27
|
refetchOnMount: 'always'
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
|
+
export const useGetConversationTarget = conversationId => useQuery({
|
|
31
|
+
queryKey: conversationQueryKeys.conversationTarget(conversationId || ''),
|
|
32
|
+
queryFn: async () => {
|
|
33
|
+
try {
|
|
34
|
+
const res = await apiInstance?.get(ENDPOINTS.chatService.getConversationTarget(conversationId || ''));
|
|
35
|
+
return res?.data?.data || undefined;
|
|
36
|
+
} catch {
|
|
37
|
+
return undefined; // fail-open: unresolved status => compose stays enabled
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
enabled: !!conversationId,
|
|
41
|
+
staleTime: 0,
|
|
42
|
+
gcTime: 0,
|
|
43
|
+
refetchOnMount: 'always'
|
|
44
|
+
});
|
|
30
45
|
export const useGetOneConversation = ({
|
|
31
46
|
targetUserId,
|
|
32
47
|
targetGroupId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","OpenIMSDK","SessionType","useConversationStore","apiInstance","conversationQueryKeys","ENDPOINTS","useBotConversationData","botId","queryKey","detailByBotId","queryFn","res","get","chatService","getConversationByBotId","data","undefined","enabled","useGetStatusConversationBot","getStatusBot","getConversationStatusByBotId","staleTime","gcTime","refetchOnMount","useGetOneConversation","targetUserId","targetGroupId","detailBySourceId","getOneConversation","sourceID","sessionType","Single","Group","conversationID","getState","updateConversations","useGetConversationDetail","targetConversationId","targetBotId","botData","isLoading","botIdLoading","conversationData","conversationLoading","groupId"
|
|
1
|
+
{"version":3,"names":["useQuery","OpenIMSDK","SessionType","useConversationStore","apiInstance","conversationQueryKeys","ENDPOINTS","useBotConversationData","botId","queryKey","detailByBotId","queryFn","res","get","chatService","getConversationByBotId","data","undefined","enabled","useGetStatusConversationBot","getStatusBot","getConversationStatusByBotId","staleTime","gcTime","refetchOnMount","useGetConversationTarget","conversationId","conversationTarget","getConversationTarget","useGetOneConversation","targetUserId","targetGroupId","detailBySourceId","getOneConversation","sourceID","sessionType","Single","Group","conversationID","getState","updateConversations","useGetConversationDetail","targetConversationId","targetBotId","botData","isLoading","botIdLoading","conversationData","conversationLoading","groupId"],"sourceRoot":"../../../../src","sources":["hooks/conversation/useGetConversationDetail.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ export const useGetConversationFlowMainMenu = conversationId => {
|
|
|
9
9
|
queryKey: [conversationQueryKeys.flowMainMenu(conversationId || '')],
|
|
10
10
|
queryFn: async () => {
|
|
11
11
|
const res = await apiInstance?.get(ENDPOINTS.chatService.conversationFlowMainMenu(conversationId || ''));
|
|
12
|
-
return res?.data?.data ||
|
|
12
|
+
return res?.data?.data || [];
|
|
13
13
|
},
|
|
14
14
|
enabled: !!conversationId
|
|
15
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useQuery","conversationQueryKeys","apiInstance","ENDPOINTS","useGetConversationFlowMainMenu","conversationId","queryKey","flowMainMenu","queryFn","res","get","chatService","conversationFlowMainMenu","data","
|
|
1
|
+
{"version":3,"names":["useQuery","conversationQueryKeys","apiInstance","ENDPOINTS","useGetConversationFlowMainMenu","conversationId","queryKey","flowMainMenu","queryFn","res","get","chatService","conversationFlowMainMenu","data","enabled"],"sourceRoot":"../../../../src","sources":["hooks/flows/useGetConversationFlowMainMenu.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,qBAAqB,QAAQ,kBAAe;AACrD,SAASC,WAAW,QAAQ,wBAAqB;AAGjD,SAASC,SAAS,QAAQ,6BAA0B;AAEpD,OAAO,MAAMC,8BAA8B,GAAIC,cAAuB,IAAK;EACzE,OAAOL,QAAQ,CAAC;IACdM,QAAQ,EAAE,CAACL,qBAAqB,CAACM,YAAY,CAACF,cAAc,IAAI,EAAE,CAAC,CAAC;IACpEG,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,MAAMC,GAAG,GAAG,MAAMP,WAAW,EAAEQ,GAAG,CAChCP,SAAS,CAACQ,WAAW,CAACC,wBAAwB,CAACP,cAAc,IAAI,EAAE,CACrE,CAAC;MACD,OAAOI,GAAG,EAAEI,IAAI,EAAEA,IAAI,IAAK,EAAwB;IACrD,CAAC;IACDC,OAAO,EAAE,CAAC,CAACT;EACb,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
|