@droppii-org/chat-mobile 0.2.17 → 0.2.18
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/assets/images/icon_excel.png +0 -0
- package/lib/module/assets/images/icon_img.png +0 -0
- package/lib/module/assets/images/icon_pdf.png +0 -0
- package/lib/module/assets/images/icon_txt.png +0 -0
- package/lib/module/assets/images/icon_word.png +0 -0
- package/lib/module/assets/images/index.js +5 -0
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/components/AttachmentPreview/FilePreview.js +107 -0
- package/lib/module/components/AttachmentPreview/FilePreview.js.map +1 -0
- package/lib/module/components/AttachmentPreview/MediaPreview.js +212 -0
- package/lib/module/components/AttachmentPreview/MediaPreview.js.map +1 -0
- package/lib/module/components/AttachmentPreview/index.js +49 -0
- package/lib/module/components/AttachmentPreview/index.js.map +1 -0
- package/lib/module/components/messages/fileMessage/index.js +122 -12
- package/lib/module/components/messages/fileMessage/index.js.map +1 -1
- package/lib/module/hooks/useFileAttachment.js +116 -0
- package/lib/module/hooks/useFileAttachment.js.map +1 -0
- package/lib/module/hooks/useFileDownload.js +175 -0
- package/lib/module/hooks/useFileDownload.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +44 -36
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useAttachmentMapping.js +51 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentMapping.js.map +1 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +39 -13
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +6 -6
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/index.js +1 -1
- package/lib/module/services/attachmentHandlers/index.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +9 -0
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/utils/device.js +32 -0
- package/lib/module/utils/device.js.map +1 -1
- package/lib/module/utils/imageUtils.js +44 -28
- package/lib/module/utils/imageUtils.js.map +1 -1
- package/lib/typescript/src/assets/images/index.d.ts +5 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
- package/lib/typescript/src/components/AttachmentPreview/FilePreview.d.ts +6 -0
- package/lib/typescript/src/components/AttachmentPreview/FilePreview.d.ts.map +1 -0
- package/lib/typescript/src/components/AttachmentPreview/MediaPreview.d.ts +9 -0
- package/lib/typescript/src/components/AttachmentPreview/MediaPreview.d.ts.map +1 -0
- package/lib/typescript/src/components/AttachmentPreview/index.d.ts +9 -0
- package/lib/typescript/src/components/AttachmentPreview/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFileAttachment.d.ts +20 -0
- package/lib/typescript/src/hooks/useFileAttachment.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useFileDownload.d.ts +15 -0
- package/lib/typescript/src/hooks/useFileDownload.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useImageAttachment.d.ts +1 -2
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentMapping.d.ts +10 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentMapping.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +4 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts +2 -2
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts +1 -1
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/attachment.d.ts +22 -1
- package/lib/typescript/src/types/attachment.d.ts.map +1 -1
- package/lib/typescript/src/utils/device.d.ts +7 -0
- package/lib/typescript/src/utils/device.d.ts.map +1 -1
- package/lib/typescript/src/utils/imageUtils.d.ts +1 -0
- package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/assets/images/icon_excel.png +0 -0
- package/src/assets/images/icon_img.png +0 -0
- package/src/assets/images/icon_pdf.png +0 -0
- package/src/assets/images/icon_txt.png +0 -0
- package/src/assets/images/icon_word.png +0 -0
- package/src/assets/images/index.ts +5 -0
- package/src/components/AttachmentPreview/FilePreview.tsx +137 -0
- package/src/components/AttachmentPreview/MediaPreview.tsx +238 -0
- package/src/components/AttachmentPreview/index.tsx +68 -0
- package/src/components/messages/fileMessage/index.tsx +156 -13
- package/src/hooks/useFileAttachment.ts +163 -0
- package/src/hooks/useFileDownload.ts +200 -0
- package/src/hooks/useImageAttachment.ts +1 -1
- package/src/screens/chat-detail/ChatComposer.tsx +61 -30
- package/src/screens/chat-detail/hooks/useAttachmentMapping.ts +58 -0
- package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +50 -11
- package/src/services/attachmentHandlers/fileAttachmentHandler.ts +8 -7
- package/src/services/attachmentHandlers/index.ts +4 -1
- package/src/translation/resources/i18n.ts +9 -0
- package/src/types/attachment.ts +23 -1
- package/src/utils/device.ts +58 -0
- package/src/utils/imageUtils.ts +50 -28
- package/lib/module/components/AttachmentPreview.js +0 -252
- package/lib/module/components/AttachmentPreview.js.map +0 -1
- package/lib/typescript/src/components/AttachmentPreview.d.ts +0 -28
- package/lib/typescript/src/components/AttachmentPreview.d.ts.map +0 -1
- package/src/components/AttachmentPreview.tsx +0 -310
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
const Images = {
|
|
4
4
|
ICON_BOT: require('./icon_bot.png'),
|
|
5
|
+
ICON_EXCEL: require('./icon_excel.png'),
|
|
6
|
+
ICON_IMG: require('./icon_img.png'),
|
|
7
|
+
ICON_PDF: require('./icon_pdf.png'),
|
|
8
|
+
ICON_TXT: require('./icon_txt.png'),
|
|
9
|
+
ICON_WORD: require('./icon_word.png'),
|
|
5
10
|
TAG_BOT: require('./tag_bot.png'),
|
|
6
11
|
TAG_MALL: require('./tag_mall.png'),
|
|
7
12
|
ICON_DROPPII: require('./icon_droppii.png')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Images","ICON_BOT","require","TAG_BOT","TAG_MALL","ICON_DROPPII"],"sourceRoot":"../../../../src","sources":["assets/images/index.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAG;EACbC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,
|
|
1
|
+
{"version":3,"names":["Images","ICON_BOT","require","ICON_EXCEL","ICON_IMG","ICON_PDF","ICON_TXT","ICON_WORD","TAG_BOT","TAG_MALL","ICON_DROPPII"],"sourceRoot":"../../../../src","sources":["assets/images/index.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAG;EACbC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,UAAU,EAAED,OAAO,CAAC,kBAAkB,CAAC;EACvCE,QAAQ,EAAEF,OAAO,CAAC,gBAAgB,CAAC;EACnCG,QAAQ,EAAEH,OAAO,CAAC,gBAAgB,CAAC;EACnCI,QAAQ,EAAEJ,OAAO,CAAC,gBAAgB,CAAC;EACnCK,SAAS,EAAEL,OAAO,CAAC,iBAAiB,CAAC;EACrCM,OAAO,EAAEN,OAAO,CAAC,eAAe,CAAC;EACjCO,QAAQ,EAAEP,OAAO,CAAC,gBAAgB,CAAC;EACnCQ,YAAY,EAAER,OAAO,CAAC,oBAAoB;AAC5C,CAAC;AAED,eAAeF,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback } from 'react';
|
|
4
|
+
import { ActivityIndicator, StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
|
|
6
|
+
import FileViewer from 'react-native-file-viewer';
|
|
7
|
+
import UIUtils from "../../utils/ui.js";
|
|
8
|
+
import { trans } from "../../translation/index.js";
|
|
9
|
+
import { formatFileSize, getFileIcon } from "../../utils/imageUtils.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
export const FilePreview = /*#__PURE__*/memo(({
|
|
12
|
+
file,
|
|
13
|
+
onRemove
|
|
14
|
+
}) => {
|
|
15
|
+
const handlePress = useCallback(async () => {
|
|
16
|
+
if (file.isUploading || file.error) return;
|
|
17
|
+
try {
|
|
18
|
+
const path = file.metadata.uri?.startsWith('file://') ? file.metadata.uri.slice(7) : file.metadata.uri;
|
|
19
|
+
await FileViewer.open(path ?? '', {
|
|
20
|
+
showOpenWithDialog: true,
|
|
21
|
+
showAppsSuggestions: true
|
|
22
|
+
});
|
|
23
|
+
} catch {
|
|
24
|
+
UIUtils.toast.open({
|
|
25
|
+
title: trans('chat:file_preview_unsupported'),
|
|
26
|
+
theme: 'warning'
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}, [file]);
|
|
30
|
+
const handleRemove = useCallback(() => {
|
|
31
|
+
onRemove(file.metadata.id ?? '');
|
|
32
|
+
}, [file.metadata?.id, onRemove]);
|
|
33
|
+
const iconSource = getFileIcon(file.metadata.mimeType);
|
|
34
|
+
const hasError = !!file.error;
|
|
35
|
+
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
36
|
+
row: true,
|
|
37
|
+
alignItems: true,
|
|
38
|
+
width: 160,
|
|
39
|
+
onPress: handlePress,
|
|
40
|
+
br: "3x",
|
|
41
|
+
background: !hasError ? KColors.hexToRgba(KColors.palette.gray.w400, 0.1) : KColors.hexToRgba(KColors.danger.light, 0.2),
|
|
42
|
+
paddingL: '0.5rem',
|
|
43
|
+
paddingR: '1rem',
|
|
44
|
+
paddingV: '0.25rem',
|
|
45
|
+
children: [/*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
46
|
+
visible: file.isUploading,
|
|
47
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
48
|
+
size: "small",
|
|
49
|
+
color: KColors.palette.primary.w400,
|
|
50
|
+
style: styles.loader
|
|
51
|
+
})
|
|
52
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
53
|
+
visible: !file.isUploading,
|
|
54
|
+
children: /*#__PURE__*/_jsx(KImage.Base, {
|
|
55
|
+
uri: iconSource,
|
|
56
|
+
style: styles.icon,
|
|
57
|
+
resizeMode: "contain"
|
|
58
|
+
})
|
|
59
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
60
|
+
flex: true,
|
|
61
|
+
children: [/*#__PURE__*/_jsx(KLabel.Text, {
|
|
62
|
+
typo: "TextSmMedium",
|
|
63
|
+
color: KColors.gray.dark,
|
|
64
|
+
numberOfLines: 1,
|
|
65
|
+
ellipsizeMode: "middle",
|
|
66
|
+
children: file.metadata.filename
|
|
67
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
68
|
+
typo: "TextXsNormal",
|
|
69
|
+
color: KColors.palette.gray.w500,
|
|
70
|
+
numberOfLines: 1,
|
|
71
|
+
children: hasError ? file.error : file.isUploading ? `${file.uploadProgress}%` : formatFileSize(file.metadata.size ?? 0)
|
|
72
|
+
})]
|
|
73
|
+
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
74
|
+
onPress: handleRemove,
|
|
75
|
+
center: true,
|
|
76
|
+
width: 20,
|
|
77
|
+
height: 20,
|
|
78
|
+
br: 'round',
|
|
79
|
+
background: KColors.gray.dark,
|
|
80
|
+
hitSlop: 8,
|
|
81
|
+
style: styles.removeBtn,
|
|
82
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
83
|
+
name: "close",
|
|
84
|
+
provider: "MaterialCommunityIcons",
|
|
85
|
+
size: 18,
|
|
86
|
+
color: KColors.white
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
FilePreview.displayName = 'FilePreview';
|
|
92
|
+
const styles = StyleSheet.create({
|
|
93
|
+
icon: {
|
|
94
|
+
width: 20,
|
|
95
|
+
height: 20,
|
|
96
|
+
marginRight: 7
|
|
97
|
+
},
|
|
98
|
+
loader: {
|
|
99
|
+
marginRight: 8
|
|
100
|
+
},
|
|
101
|
+
removeBtn: {
|
|
102
|
+
position: 'absolute',
|
|
103
|
+
right: -4,
|
|
104
|
+
top: -4
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=FilePreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","ActivityIndicator","StyleSheet","KContainer","KImage","KLabel","KColors","FileViewer","UIUtils","trans","formatFileSize","getFileIcon","jsx","_jsx","jsxs","_jsxs","FilePreview","file","onRemove","handlePress","isUploading","error","path","metadata","uri","startsWith","slice","open","showOpenWithDialog","showAppsSuggestions","toast","title","theme","handleRemove","id","iconSource","mimeType","hasError","Touchable","row","alignItems","width","onPress","br","background","hexToRgba","palette","gray","w400","danger","light","paddingL","paddingR","paddingV","children","VisibleView","visible","size","color","primary","style","styles","loader","Base","icon","resizeMode","View","flex","Text","typo","dark","numberOfLines","ellipsizeMode","filename","w500","uploadProgress","center","height","hitSlop","removeBtn","VectorIcons","name","provider","white","displayName","create","marginRight","position","right","top"],"sourceRoot":"../../../../src","sources":["components/AttachmentPreview/FilePreview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { KColors, KContainer, KImage, KLabel } from '@droppii/libs';
|
|
5
|
+
import { StyleSheet } from 'react-native';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const formatDuration = seconds => {
|
|
8
|
+
const totalSecs = Math.floor(seconds);
|
|
9
|
+
const mins = Math.floor(totalSecs / 60);
|
|
10
|
+
const secs = totalSecs % 60;
|
|
11
|
+
return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
|
|
12
|
+
};
|
|
13
|
+
const getAttachmentIcon = type => {
|
|
14
|
+
switch (type) {
|
|
15
|
+
case 'image':
|
|
16
|
+
return 'image';
|
|
17
|
+
case 'video':
|
|
18
|
+
return 'play-circle';
|
|
19
|
+
case 'audio':
|
|
20
|
+
return 'music';
|
|
21
|
+
case 'document':
|
|
22
|
+
return 'file-document';
|
|
23
|
+
case 'file':
|
|
24
|
+
default:
|
|
25
|
+
return 'file';
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export const MediaPreview = /*#__PURE__*/memo(({
|
|
29
|
+
item,
|
|
30
|
+
index,
|
|
31
|
+
onRemove
|
|
32
|
+
}) => {
|
|
33
|
+
const {
|
|
34
|
+
type,
|
|
35
|
+
metadata,
|
|
36
|
+
uploadProgress,
|
|
37
|
+
error,
|
|
38
|
+
isUploading,
|
|
39
|
+
thumbnailUrl
|
|
40
|
+
} = item;
|
|
41
|
+
const isImage = type === 'image';
|
|
42
|
+
const isVideo = type === 'video';
|
|
43
|
+
const hasPreview = isImage || isVideo;
|
|
44
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
45
|
+
children: [/*#__PURE__*/_jsxs(KContainer.View, {
|
|
46
|
+
style: styles.thumbnail,
|
|
47
|
+
center: true,
|
|
48
|
+
children: [isVideo && thumbnailUrl && /*#__PURE__*/_jsx(KImage.Base, {
|
|
49
|
+
uri: thumbnailUrl,
|
|
50
|
+
width: 48,
|
|
51
|
+
height: 48,
|
|
52
|
+
resizeMode: "cover"
|
|
53
|
+
}), isVideo && !thumbnailUrl && /*#__PURE__*/_jsx(KContainer.View, {
|
|
54
|
+
style: [styles.videoBg, styles.videoThumbnail]
|
|
55
|
+
}), isImage && /*#__PURE__*/_jsx(KImage.Base, {
|
|
56
|
+
uri: `file://${metadata.path}`,
|
|
57
|
+
width: 48,
|
|
58
|
+
height: 48
|
|
59
|
+
}), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
|
|
60
|
+
style: styles.iconOverlay,
|
|
61
|
+
center: true,
|
|
62
|
+
background: KColors.palette.gray.w100,
|
|
63
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
64
|
+
name: getAttachmentIcon(type),
|
|
65
|
+
provider: "MaterialCommunityIcons",
|
|
66
|
+
size: 24,
|
|
67
|
+
color: KColors.palette.primary.w400
|
|
68
|
+
})
|
|
69
|
+
}), isVideo && !!metadata.duration && /*#__PURE__*/_jsx(KContainer.View, {
|
|
70
|
+
style: styles.durationBadge,
|
|
71
|
+
center: true,
|
|
72
|
+
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
73
|
+
typo: "TextXsNormal",
|
|
74
|
+
color: KColors.white,
|
|
75
|
+
style: styles.durationText,
|
|
76
|
+
children: formatDuration(metadata.duration / 1000)
|
|
77
|
+
})
|
|
78
|
+
}), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
|
|
79
|
+
style: styles.typeIcon,
|
|
80
|
+
center: true,
|
|
81
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
82
|
+
name: getAttachmentIcon(type),
|
|
83
|
+
provider: "MaterialCommunityIcons",
|
|
84
|
+
size: 14,
|
|
85
|
+
color: KColors.white
|
|
86
|
+
})
|
|
87
|
+
}), error && /*#__PURE__*/_jsx(KContainer.View, {
|
|
88
|
+
style: styles.errorOverlay,
|
|
89
|
+
center: true,
|
|
90
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
91
|
+
name: "close-circle",
|
|
92
|
+
provider: "MaterialCommunityIcons",
|
|
93
|
+
size: 28,
|
|
94
|
+
color: KColors.white
|
|
95
|
+
})
|
|
96
|
+
}), isUploading && /*#__PURE__*/_jsx(KContainer.View, {
|
|
97
|
+
style: styles.progressOverlay,
|
|
98
|
+
center: true,
|
|
99
|
+
children: /*#__PURE__*/_jsxs(KLabel.Text, {
|
|
100
|
+
typo: "TextSmNormal",
|
|
101
|
+
color: KColors.white,
|
|
102
|
+
children: [uploadProgress, "%"]
|
|
103
|
+
})
|
|
104
|
+
})]
|
|
105
|
+
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
106
|
+
style: styles.removeButton,
|
|
107
|
+
center: true,
|
|
108
|
+
br: "round",
|
|
109
|
+
background: KColors.black,
|
|
110
|
+
onPress: () => onRemove(type, index),
|
|
111
|
+
disabled: isUploading,
|
|
112
|
+
hitSlop: 10,
|
|
113
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
114
|
+
name: "close",
|
|
115
|
+
provider: "MaterialCommunityIcons",
|
|
116
|
+
size: 18,
|
|
117
|
+
color: KColors.white
|
|
118
|
+
})
|
|
119
|
+
})]
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
MediaPreview.displayName = 'MediaPreview';
|
|
123
|
+
const styles = StyleSheet.create({
|
|
124
|
+
thumbnail: {
|
|
125
|
+
position: 'relative',
|
|
126
|
+
width: 48,
|
|
127
|
+
height: 48,
|
|
128
|
+
borderRadius: 4,
|
|
129
|
+
overflow: 'hidden',
|
|
130
|
+
backgroundColor: KColors.palette.gray.w50
|
|
131
|
+
},
|
|
132
|
+
durationBadge: {
|
|
133
|
+
position: 'absolute',
|
|
134
|
+
bottom: 4,
|
|
135
|
+
right: 4,
|
|
136
|
+
backgroundColor: 'rgba(0, 0, 0, 0.8)',
|
|
137
|
+
borderRadius: 3,
|
|
138
|
+
paddingVertical: 2,
|
|
139
|
+
paddingHorizontal: 4
|
|
140
|
+
},
|
|
141
|
+
durationText: {
|
|
142
|
+
fontSize: 11,
|
|
143
|
+
fontWeight: '600'
|
|
144
|
+
},
|
|
145
|
+
iconOverlay: {
|
|
146
|
+
width: 48,
|
|
147
|
+
height: 48,
|
|
148
|
+
borderRadius: 4
|
|
149
|
+
},
|
|
150
|
+
videoIcon: {
|
|
151
|
+
position: 'absolute',
|
|
152
|
+
top: 2,
|
|
153
|
+
right: 2,
|
|
154
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)',
|
|
155
|
+
borderRadius: 8,
|
|
156
|
+
width: 20,
|
|
157
|
+
height: 20
|
|
158
|
+
},
|
|
159
|
+
typeIcon: {
|
|
160
|
+
position: 'absolute',
|
|
161
|
+
bottom: 2,
|
|
162
|
+
right: 2,
|
|
163
|
+
backgroundColor: 'rgba(0, 0, 0, 0.7)',
|
|
164
|
+
borderRadius: 6,
|
|
165
|
+
width: 16,
|
|
166
|
+
height: 16
|
|
167
|
+
},
|
|
168
|
+
videoBg: {
|
|
169
|
+
width: 48,
|
|
170
|
+
height: 48,
|
|
171
|
+
borderRadius: 4
|
|
172
|
+
},
|
|
173
|
+
videoThumbnail: {
|
|
174
|
+
backgroundColor: KColors.black
|
|
175
|
+
},
|
|
176
|
+
progressOverlay: {
|
|
177
|
+
position: 'absolute',
|
|
178
|
+
top: 0,
|
|
179
|
+
left: 0,
|
|
180
|
+
right: 0,
|
|
181
|
+
bottom: 0,
|
|
182
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)'
|
|
183
|
+
},
|
|
184
|
+
errorOverlay: {
|
|
185
|
+
position: 'absolute',
|
|
186
|
+
top: 0,
|
|
187
|
+
left: 0,
|
|
188
|
+
right: 0,
|
|
189
|
+
bottom: 0,
|
|
190
|
+
backgroundColor: 'rgba(255, 59, 48, 0.8)'
|
|
191
|
+
},
|
|
192
|
+
removeButton: {
|
|
193
|
+
position: 'absolute',
|
|
194
|
+
right: -4,
|
|
195
|
+
top: -4,
|
|
196
|
+
width: 22,
|
|
197
|
+
height: 22,
|
|
198
|
+
shadowColor: '#000',
|
|
199
|
+
shadowOffset: {
|
|
200
|
+
width: 0,
|
|
201
|
+
height: 1
|
|
202
|
+
},
|
|
203
|
+
shadowOpacity: 0.2,
|
|
204
|
+
shadowRadius: 2,
|
|
205
|
+
elevation: 3
|
|
206
|
+
},
|
|
207
|
+
sendButton: {
|
|
208
|
+
width: 48,
|
|
209
|
+
height: 48
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
//# sourceMappingURL=MediaPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","KColors","KContainer","KImage","KLabel","StyleSheet","jsx","_jsx","jsxs","_jsxs","formatDuration","seconds","totalSecs","Math","floor","mins","secs","toString","padStart","getAttachmentIcon","type","MediaPreview","item","index","onRemove","metadata","uploadProgress","error","isUploading","thumbnailUrl","isImage","isVideo","hasPreview","View","children","style","styles","thumbnail","center","Base","uri","width","height","resizeMode","videoBg","videoThumbnail","path","iconOverlay","background","palette","gray","w100","VectorIcons","name","provider","size","color","primary","w400","duration","durationBadge","Text","typo","white","durationText","typeIcon","errorOverlay","progressOverlay","Touchable","removeButton","br","black","onPress","disabled","hitSlop","displayName","create","position","borderRadius","overflow","backgroundColor","w50","bottom","right","paddingVertical","paddingHorizontal","fontSize","fontWeight","videoIcon","top","left","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","sendButton"],"sourceRoot":"../../../../src","sources":["components/AttachmentPreview/MediaPreview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback } from 'react';
|
|
4
|
+
import { ScrollView, StyleSheet } from 'react-native';
|
|
5
|
+
import { MediaPreview } from "./MediaPreview.js";
|
|
6
|
+
import { FilePreview } from "./FilePreview.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const AttachmentPreview = /*#__PURE__*/memo(({
|
|
9
|
+
visible,
|
|
10
|
+
attachments,
|
|
11
|
+
onRemove
|
|
12
|
+
}) => {
|
|
13
|
+
const onFileRemove = useCallback(id => {
|
|
14
|
+
onRemove('file', id);
|
|
15
|
+
}, [onRemove]);
|
|
16
|
+
if (!visible || !attachments?.length) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return /*#__PURE__*/_jsx(ScrollView, {
|
|
20
|
+
horizontal: true,
|
|
21
|
+
showsHorizontalScrollIndicator: false,
|
|
22
|
+
scrollEventThrottle: 16,
|
|
23
|
+
contentContainerStyle: styles.scrollContent,
|
|
24
|
+
children: attachments?.map((item, index) => {
|
|
25
|
+
switch (item.type) {
|
|
26
|
+
case 'file':
|
|
27
|
+
return /*#__PURE__*/_jsx(FilePreview, {
|
|
28
|
+
file: item,
|
|
29
|
+
onRemove: onFileRemove
|
|
30
|
+
}, `${item.type}-${index}`);
|
|
31
|
+
default:
|
|
32
|
+
return /*#__PURE__*/_jsx(MediaPreview, {
|
|
33
|
+
index: index,
|
|
34
|
+
item: item,
|
|
35
|
+
onRemove: onRemove
|
|
36
|
+
}, `${item.type}-${index}`);
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
AttachmentPreview.displayName = 'AttachmentPreview';
|
|
42
|
+
const styles = StyleSheet.create({
|
|
43
|
+
scrollContent: {
|
|
44
|
+
padding: 8,
|
|
45
|
+
paddingTop: 12,
|
|
46
|
+
gap: 8
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","ScrollView","StyleSheet","MediaPreview","FilePreview","jsx","_jsx","AttachmentPreview","visible","attachments","onRemove","onFileRemove","id","length","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","contentContainerStyle","styles","scrollContent","children","map","item","index","type","file","displayName","create","padding","paddingTop","gap"],"sourceRoot":"../../../../src","sources":["components/AttachmentPreview/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,SAASC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAErD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,WAAW,QAAQ,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ5C,OAAO,MAAMC,iBAAiB,gBAAGR,IAAI,CACnC,CAAC;EAAES,OAAO;EAAEC,WAAW;EAAEC;AAAiC,CAAC,KAAK;EAC9D,MAAMC,YAAY,GAAGX,WAAW,CAC7BY,EAAU,IAAK;IACdF,QAAQ,CAAC,MAAM,EAAEE,EAAE,CAAC;EACtB,CAAC,EACD,CAACF,QAAQ,CACX,CAAC;EAED,IAAI,CAACF,OAAO,IAAI,CAACC,WAAW,EAAEI,MAAM,EAAE;IACpC,OAAO,IAAI;EACb;EAEA,oBACEP,IAAA,CAACL,UAAU;IACTa,UAAU;IACVC,8BAA8B,EAAE,KAAM;IACtCC,mBAAmB,EAAE,EAAG;IACxBC,qBAAqB,EAAEC,MAAM,CAACC,aAAc;IAAAC,QAAA,EAE3CX,WAAW,EAAEY,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MACjC,QAAQD,IAAI,CAACE,IAAI;QACf,KAAK,MAAM;UACT,oBACElB,IAAA,CAACF,WAAW;YAEVqB,IAAI,EAAEH,IAAK;YACXZ,QAAQ,EAAEC;UAAa,GAFlB,GAAGW,IAAI,CAACE,IAAI,IAAID,KAAK,EAG3B,CAAC;QAGN;UACE,oBACEjB,IAAA,CAACH,YAAY;YAEXoB,KAAK,EAAEA,KAAM;YACbD,IAAI,EAAEA,IAAK;YACXZ,QAAQ,EAAEA;UAAS,GAHd,GAAGY,IAAI,CAACE,IAAI,IAAID,KAAK,EAI3B,CAAC;MAER;IACF,CAAC;EAAC,CACQ,CAAC;AAEjB,CACF,CAAC;AAEDhB,iBAAiB,CAACmB,WAAW,GAAG,mBAAmB;AAEnD,MAAMR,MAAM,GAAGhB,UAAU,CAACyB,MAAM,CAAC;EAC/BR,aAAa,EAAE;IACbS,OAAO,EAAE,CAAC;IACVC,UAAU,EAAE,EAAE;IACdC,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,26 +1,136 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { memo } from 'react';
|
|
4
|
-
import {
|
|
3
|
+
import { memo, useMemo } from 'react';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
|
|
5
6
|
import { CHAT_BUBBLE_COLORS } from "../../../screens/chat-detail/constants.js";
|
|
6
7
|
import { messageStyles } from "../styles.js";
|
|
7
|
-
import {
|
|
8
|
+
import { useFileDownload } from "../../../hooks/useFileDownload.js";
|
|
9
|
+
import { getFileIcon, getMimeType, formatFileSize } from "../../../utils/imageUtils.js";
|
|
10
|
+
import { trans } from "../../../translation/index.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
12
|
export const FileMessage = /*#__PURE__*/memo(({
|
|
9
13
|
message,
|
|
10
14
|
isOutgoing
|
|
11
15
|
}) => {
|
|
12
|
-
const fileName = message.fileElem?.fileName ||
|
|
16
|
+
const fileName = message.fileElem?.fileName || '[File]';
|
|
17
|
+
const fileSize = message.fileElem?.fileSize ?? 0;
|
|
18
|
+
const url = message.fileElem?.sourceUrl || message.fileElem?.url || '';
|
|
19
|
+
const {
|
|
20
|
+
state,
|
|
21
|
+
handleView,
|
|
22
|
+
handleDownload
|
|
23
|
+
} = useFileDownload(fileName, url);
|
|
24
|
+
const mimeType = useMemo(() => getMimeType(fileName), [fileName]);
|
|
25
|
+
const iconSource = useMemo(() => getFileIcon(mimeType), [mimeType]);
|
|
26
|
+
const subtitle = useMemo(() => {
|
|
27
|
+
if (state.status === 'downloading') {
|
|
28
|
+
return trans('chat:file_downloading', {
|
|
29
|
+
received: state.receivedMB ?? 0,
|
|
30
|
+
total: state.totalMB ?? 0
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (state.status === 'error') {
|
|
34
|
+
return state.error ?? trans('chat:file_download_failed');
|
|
35
|
+
}
|
|
36
|
+
return formatFileSize(fileSize);
|
|
37
|
+
}, [state, fileSize]);
|
|
38
|
+
const subtitleColor = state.status === 'error' ? KColors.palette.danger?.w400 ?? '#FF3B30' : KColors.palette.gray.w500;
|
|
39
|
+
const isDownloading = state.status === 'downloading';
|
|
13
40
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
41
|
+
padding: '0.5rem',
|
|
42
|
+
style: [styles.wrapper, messageStyles.wrapper, isOutgoing ? messageStyles.bubbleSent : messageStyles.bubbleReceived],
|
|
43
|
+
children: /*#__PURE__*/_jsxs(KContainer.View, {
|
|
44
|
+
row: true,
|
|
45
|
+
alignItems: true,
|
|
46
|
+
br: '3x',
|
|
47
|
+
paddingR: '0.75rem',
|
|
48
|
+
paddingV: '0.25rem',
|
|
49
|
+
background: KColors.white,
|
|
50
|
+
children: [/*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
51
|
+
visible: isDownloading,
|
|
52
|
+
children: /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
53
|
+
center: true,
|
|
54
|
+
br: "round",
|
|
55
|
+
style: styles.cancelBtn,
|
|
56
|
+
width: 32,
|
|
57
|
+
height: 32,
|
|
58
|
+
onPress: handleDownload,
|
|
59
|
+
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
60
|
+
center: true,
|
|
61
|
+
br: "round",
|
|
62
|
+
style: styles.cancelBtnIconContainer,
|
|
63
|
+
width: 26,
|
|
64
|
+
height: 26,
|
|
65
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
66
|
+
name: "close",
|
|
67
|
+
provider: "MaterialCommunityIcons",
|
|
68
|
+
size: 24,
|
|
69
|
+
color: KColors.white
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
})
|
|
73
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
74
|
+
visible: !isDownloading,
|
|
75
|
+
children: /*#__PURE__*/_jsx(KImage.Base, {
|
|
76
|
+
uri: iconSource,
|
|
77
|
+
style: styles.fileIcon,
|
|
78
|
+
resizeMode: "contain"
|
|
79
|
+
})
|
|
80
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
81
|
+
flexS: 1,
|
|
82
|
+
children: [/*#__PURE__*/_jsx(KLabel.Text, {
|
|
83
|
+
typo: "TextSmMedium",
|
|
84
|
+
color: CHAT_BUBBLE_COLORS.text,
|
|
85
|
+
numberOfLines: 1,
|
|
86
|
+
ellipsizeMode: "middle",
|
|
87
|
+
children: fileName
|
|
88
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
89
|
+
typo: "TextXsNormal",
|
|
90
|
+
color: subtitleColor,
|
|
91
|
+
numberOfLines: 1,
|
|
92
|
+
children: subtitle
|
|
93
|
+
})]
|
|
94
|
+
}), /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
95
|
+
name: "eye-outline",
|
|
96
|
+
provider: "MaterialCommunityIcons",
|
|
97
|
+
onPress: handleView,
|
|
98
|
+
size: 20,
|
|
99
|
+
color: KColors.palette.gray.w600,
|
|
100
|
+
containerStyle: styles.viewIcon
|
|
101
|
+
}), /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
102
|
+
name: 'download-o',
|
|
103
|
+
provider: "DroppiiNew",
|
|
104
|
+
onPress: isDownloading ? undefined : handleDownload,
|
|
105
|
+
size: 20,
|
|
106
|
+
color: state.status === 'error' ? KColors.palette.danger?.w400 ?? '#FF3B30' : KColors.palette.gray.w600,
|
|
107
|
+
containerStyle: isDownloading ? styles.disabledIcon : undefined
|
|
108
|
+
})]
|
|
22
109
|
})
|
|
23
110
|
});
|
|
24
111
|
});
|
|
25
112
|
FileMessage.displayName = 'FileMessage';
|
|
113
|
+
const styles = StyleSheet.create({
|
|
114
|
+
wrapper: {
|
|
115
|
+
borderRadius: 20
|
|
116
|
+
},
|
|
117
|
+
fileIcon: {
|
|
118
|
+
width: 24,
|
|
119
|
+
height: 24,
|
|
120
|
+
marginHorizontal: 12
|
|
121
|
+
},
|
|
122
|
+
cancelBtn: {
|
|
123
|
+
backgroundColor: KColors.hexToRgba('#6355CA', 0.3),
|
|
124
|
+
marginHorizontal: 6
|
|
125
|
+
},
|
|
126
|
+
cancelBtnIconContainer: {
|
|
127
|
+
backgroundColor: '#6355CA'
|
|
128
|
+
},
|
|
129
|
+
viewIcon: {
|
|
130
|
+
marginHorizontal: 12
|
|
131
|
+
},
|
|
132
|
+
disabledIcon: {
|
|
133
|
+
opacity: 0.3
|
|
134
|
+
}
|
|
135
|
+
});
|
|
26
136
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","KContainer","KLabel","CHAT_BUBBLE_COLORS","messageStyles","
|
|
1
|
+
{"version":3,"names":["memo","useMemo","StyleSheet","KContainer","KImage","KLabel","KColors","CHAT_BUBBLE_COLORS","messageStyles","useFileDownload","getFileIcon","getMimeType","formatFileSize","trans","jsx","_jsx","jsxs","_jsxs","FileMessage","message","isOutgoing","fileName","fileElem","fileSize","url","sourceUrl","state","handleView","handleDownload","mimeType","iconSource","subtitle","status","received","receivedMB","total","totalMB","error","subtitleColor","palette","danger","w400","gray","w500","isDownloading","View","padding","style","styles","wrapper","bubbleSent","bubbleReceived","children","row","alignItems","br","paddingR","paddingV","background","white","VisibleView","visible","Touchable","center","cancelBtn","width","height","onPress","cancelBtnIconContainer","VectorIcons","name","provider","size","color","Base","uri","fileIcon","resizeMode","flexS","Text","typo","text","numberOfLines","ellipsizeMode","w600","containerStyle","viewIcon","undefined","disabledIcon","displayName","create","borderRadius","marginHorizontal","backgroundColor","hexToRgba","opacity"],"sourceRoot":"../../../../../src","sources":["components/messages/fileMessage/index.tsx"],"mappings":"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","ignoreList":[]}
|