@droppii-org/chat-mobile 0.2.51 → 0.2.52
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/index.js +2 -1
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/assets/images/resource-center-empty-box.png +0 -0
- package/lib/module/components/MediaViewerModal.js +2 -1
- package/lib/module/components/MediaViewerModal.js.map +1 -1
- package/lib/module/components/MergedImageGrid.js +1 -0
- package/lib/module/components/MergedImageGrid.js.map +1 -1
- package/lib/module/config/api-endpoints.js +2 -1
- package/lib/module/config/api-endpoints.js.map +1 -1
- package/lib/module/core/notification/pushToken.js +7 -7
- package/lib/module/core/notification/pushToken.js.map +1 -1
- package/lib/module/hooks/query-keys.js +4 -0
- package/lib/module/hooks/query-keys.js.map +1 -1
- package/lib/module/hooks/resourceCenter/useThreadResources.js +116 -0
- package/lib/module/hooks/resourceCenter/useThreadResources.js.map +1 -0
- package/lib/module/hooks/useImageAttachment.js +0 -2
- package/lib/module/hooks/useImageAttachment.js.map +1 -1
- package/lib/module/hooks/useMediaViewer.js +4 -1
- package/lib/module/hooks/useMediaViewer.js.map +1 -1
- package/lib/module/hooks/useSendAttachment.js +4 -1
- package/lib/module/hooks/useSendAttachment.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/MediaView/index.js +104 -42
- package/lib/module/screens/MediaView/index.js.map +1 -1
- package/lib/module/screens/ResourceCenter/FileResourceRow.js +80 -0
- package/lib/module/screens/ResourceCenter/FileResourceRow.js.map +1 -0
- package/lib/module/screens/ResourceCenter/GridRenderer.js +83 -0
- package/lib/module/screens/ResourceCenter/GridRenderer.js.map +1 -0
- package/lib/module/screens/ResourceCenter/GridThumbnail.js +97 -0
- package/lib/module/screens/ResourceCenter/GridThumbnail.js.map +1 -0
- package/lib/module/screens/ResourceCenter/LinkResourceRow.js +81 -0
- package/lib/module/screens/ResourceCenter/LinkResourceRow.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ListRenderer.js +60 -0
- package/lib/module/screens/ResourceCenter/ListRenderer.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabBar.js +75 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabBar.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabScene.js +122 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabScene.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ResourceEmptyState.js +36 -0
- package/lib/module/screens/ResourceCenter/ResourceEmptyState.js.map +1 -0
- package/lib/module/screens/ResourceCenter/index.js +104 -0
- package/lib/module/screens/ResourceCenter/index.js.map +1 -0
- package/lib/module/screens/ResourceCenter/types.js +25 -0
- package/lib/module/screens/ResourceCenter/types.js.map +1 -0
- package/lib/module/services/attachmentOrchestrator.js +19 -4
- package/lib/module/services/attachmentOrchestrator.js.map +1 -1
- package/lib/module/services/resourceCenter.js +102 -0
- package/lib/module/services/resourceCenter.js.map +1 -0
- package/lib/module/translation/resources/i18n.js +8 -1
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/attachment.js +2 -0
- package/lib/module/types/chat.js +20 -0
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/utils/url.js +11 -0
- package/lib/module/utils/url.js.map +1 -1
- package/lib/typescript/src/assets/images/index.d.ts +1 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
- package/lib/typescript/src/components/MediaViewerModal.d.ts +3 -1
- package/lib/typescript/src/components/MediaViewerModal.d.ts.map +1 -1
- package/lib/typescript/src/components/MergedImageGrid.d.ts.map +1 -1
- package/lib/typescript/src/config/api-endpoints.d.ts +1 -0
- package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -1
- package/lib/typescript/src/hooks/query-keys.d.ts +4 -0
- package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
- package/lib/typescript/src/hooks/resourceCenter/useThreadResources.d.ts +21 -0
- package/lib/typescript/src/hooks/resourceCenter/useThreadResources.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useMediaViewer.d.ts +5 -1
- package/lib/typescript/src/hooks/useMediaViewer.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useSendAttachment.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/MediaView/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/ResourceCenter/FileResourceRow.d.ts +7 -0
- package/lib/typescript/src/screens/ResourceCenter/FileResourceRow.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/GridRenderer.d.ts +14 -0
- package/lib/typescript/src/screens/ResourceCenter/GridRenderer.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/GridThumbnail.d.ts +10 -0
- package/lib/typescript/src/screens/ResourceCenter/GridThumbnail.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/LinkResourceRow.d.ts +8 -0
- package/lib/typescript/src/screens/ResourceCenter/LinkResourceRow.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ListRenderer.d.ts +16 -0
- package/lib/typescript/src/screens/ResourceCenter/ListRenderer.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabBar.d.ts +3 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabBar.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabScene.d.ts +16 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabScene.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceEmptyState.d.ts +6 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceEmptyState.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/index.d.ts +4 -0
- package/lib/typescript/src/screens/ResourceCenter/index.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/types.d.ts +28 -0
- package/lib/typescript/src/screens/ResourceCenter/types.d.ts.map +1 -0
- package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -1
- package/lib/typescript/src/services/resourceCenter.d.ts +9 -0
- package/lib/typescript/src/services/resourceCenter.d.ts.map +1 -0
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/attachment.d.ts +2 -0
- package/lib/typescript/src/types/attachment.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +58 -0
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/utils/url.d.ts +7 -0
- package/lib/typescript/src/utils/url.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/images/index.ts +1 -0
- package/src/assets/images/resource-center-empty-box.png +0 -0
- package/src/components/MediaViewerModal.tsx +8 -3
- package/src/components/MergedImageGrid.tsx +1 -0
- package/src/config/api-endpoints.ts +2 -0
- package/src/core/notification/pushToken.ts +7 -7
- package/src/hooks/query-keys.ts +6 -0
- package/src/hooks/resourceCenter/useThreadResources.ts +124 -0
- package/src/hooks/useImageAttachment.ts +1 -2
- package/src/hooks/useMediaViewer.ts +21 -7
- package/src/hooks/useSendAttachment.ts +4 -1
- package/src/index.tsx +2 -0
- package/src/screens/MediaView/index.tsx +117 -54
- package/src/screens/ResourceCenter/FileResourceRow.tsx +99 -0
- package/src/screens/ResourceCenter/GridRenderer.tsx +104 -0
- package/src/screens/ResourceCenter/GridThumbnail.tsx +98 -0
- package/src/screens/ResourceCenter/LinkResourceRow.tsx +96 -0
- package/src/screens/ResourceCenter/ListRenderer.tsx +81 -0
- package/src/screens/ResourceCenter/ResourceCenterTabBar.tsx +89 -0
- package/src/screens/ResourceCenter/ResourceCenterTabScene.tsx +142 -0
- package/src/screens/ResourceCenter/ResourceEmptyState.tsx +39 -0
- package/src/screens/ResourceCenter/index.tsx +129 -0
- package/src/screens/ResourceCenter/types.ts +56 -0
- package/src/services/attachmentOrchestrator.ts +15 -2
- package/src/services/resourceCenter.ts +137 -0
- package/src/translation/resources/i18n.ts +7 -0
- package/src/types/attachment.ts +3 -0
- package/src/types/chat.ts +73 -0
- package/src/utils/url.ts +11 -0
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useCallback, useEffect, useRef, useState, useMemo } from 'react';
|
|
4
|
-
import { BackHandler, Platform, StyleSheet,
|
|
4
|
+
import { ActivityIndicator, BackHandler, Platform, StyleSheet, StatusBar } from 'react-native';
|
|
5
|
+
import { LegendList } from '@legendapp/list/react-native';
|
|
5
6
|
import LinearGradient from 'react-native-linear-gradient';
|
|
6
7
|
import Animated, { FadeIn, FadeOut, SlideInDown, SlideOutDown } from 'react-native-reanimated';
|
|
7
8
|
import { Pagination } from 'react-native-snap-carousel';
|
|
8
9
|
import PhotoView from 'react-native-photo-view';
|
|
10
|
+
import RNFS from 'react-native-fs';
|
|
11
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
12
|
+
import { saveDocuments } from '@react-native-documents/picker';
|
|
9
13
|
import { KColors, KContainer, KDims, KImage, KLabel, KRadiusValue, KSpacingValue } from '@droppii/libs';
|
|
10
14
|
import VideoPlayer from "./VideoPlayer.js";
|
|
15
|
+
import { UIUtils } from "../../utils/UIUtils.js";
|
|
16
|
+
import { trans } from "../../translation/index.js";
|
|
17
|
+
import { getMimeType } from "../../utils/imageUtils.js";
|
|
11
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
19
|
const MediaViewerScreen = props => {
|
|
13
20
|
const {
|
|
@@ -17,13 +24,58 @@ const MediaViewerScreen = props => {
|
|
|
17
24
|
pagination,
|
|
18
25
|
onDismiss
|
|
19
26
|
} = props;
|
|
27
|
+
const insets = useSafeAreaInsets();
|
|
20
28
|
const listRef = useRef(null);
|
|
21
29
|
const [index, setIndex] = useState(initIndex);
|
|
22
30
|
const [isScrolling, setIsScrolling] = useState(false);
|
|
31
|
+
const [isDownloading, setIsDownloading] = useState(false);
|
|
23
32
|
const dismiss = useCallback(() => {
|
|
24
33
|
onDismiss?.();
|
|
25
34
|
}, [onDismiss]);
|
|
26
|
-
|
|
35
|
+
|
|
36
|
+
// Downloads the currently-viewed image/video, mirroring `useFileDownload`'s
|
|
37
|
+
// RNFS-download + Save-As-document pattern (no gallery/CameraRoll dependency
|
|
38
|
+
// exists in this repo — Save As is the only working "download" mechanism here).
|
|
39
|
+
const onDownload = useCallback(async () => {
|
|
40
|
+
const item = images[index];
|
|
41
|
+
if (!item?.url || isDownloading) return;
|
|
42
|
+
setIsDownloading(true);
|
|
43
|
+
try {
|
|
44
|
+
const urlPath = item.url.split('?')[0];
|
|
45
|
+
const fallbackExt = item.isVideo ? 'mp4' : 'jpg';
|
|
46
|
+
const fileName = urlPath.split('/').pop() || `${item.isVideo ? 'video' : 'image'}-${index}.${fallbackExt}`;
|
|
47
|
+
const destPath = `${RNFS.CachesDirectoryPath}/${fileName}`;
|
|
48
|
+
const exists = await RNFS.exists(destPath);
|
|
49
|
+
if (!exists) {
|
|
50
|
+
const result = await RNFS.downloadFile({
|
|
51
|
+
fromUrl: item.url,
|
|
52
|
+
toFile: destPath
|
|
53
|
+
}).promise;
|
|
54
|
+
if (result.statusCode < 200 || result.statusCode >= 300) {
|
|
55
|
+
throw new Error(`HTTP ${result.statusCode}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
await saveDocuments({
|
|
59
|
+
sourceUris: [`file://${destPath}`],
|
|
60
|
+
mimeType: getMimeType(fileName),
|
|
61
|
+
fileName,
|
|
62
|
+
copy: true
|
|
63
|
+
});
|
|
64
|
+
UIUtils.toast.open({
|
|
65
|
+
title: trans('chat:file_downloaded_success', {
|
|
66
|
+
fileName
|
|
67
|
+
}),
|
|
68
|
+
theme: 'info'
|
|
69
|
+
});
|
|
70
|
+
} catch {
|
|
71
|
+
UIUtils.toast.open({
|
|
72
|
+
title: trans('chat:file_download_failed'),
|
|
73
|
+
theme: 'warning'
|
|
74
|
+
});
|
|
75
|
+
} finally {
|
|
76
|
+
setIsDownloading(false);
|
|
77
|
+
}
|
|
78
|
+
}, [images, index, isDownloading]);
|
|
27
79
|
useEffect(() => {
|
|
28
80
|
StatusBar.setHidden(true);
|
|
29
81
|
return () => {
|
|
@@ -41,18 +93,6 @@ const MediaViewerScreen = props => {
|
|
|
41
93
|
}, [dismiss]);
|
|
42
94
|
const onMomentumScrollBegin = useCallback(() => setIsScrolling(true), []);
|
|
43
95
|
const onMomentumScrollEnd = useCallback(() => setIsScrolling(false), []);
|
|
44
|
-
const onScrollToIndexFailed = useCallback(info => {
|
|
45
|
-
const len = images.length;
|
|
46
|
-
const wait = new Promise(resolve => setTimeout(() => resolve(true), 0));
|
|
47
|
-
wait.then(() => {
|
|
48
|
-
if (info.index > -1 && info.index < len) {
|
|
49
|
-
listRef.current?.scrollToIndex({
|
|
50
|
-
index: info.index,
|
|
51
|
-
animated: false
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}, [images]);
|
|
56
96
|
const onViewableItemsChanged = useRef(({
|
|
57
97
|
viewableItems
|
|
58
98
|
}) => {
|
|
@@ -88,25 +128,32 @@ const MediaViewerScreen = props => {
|
|
|
88
128
|
})]
|
|
89
129
|
}), [index, isScrolling]);
|
|
90
130
|
const renderFooter = useMemo(() => {
|
|
91
|
-
|
|
131
|
+
// `pagination` only toggles the dot indicator (noisy on large sets like
|
|
132
|
+
// Resource Center grids) — the current-index counter should always show.
|
|
133
|
+
if (images.length <= 1) return null;
|
|
92
134
|
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
93
|
-
style: styles.footer,
|
|
135
|
+
style: [styles.footer, {
|
|
136
|
+
bottom: insets.bottom > 0 ? insets.bottom + KSpacingValue['0.5rem'] : KSpacingValue['2rem']
|
|
137
|
+
}],
|
|
94
138
|
children: [/*#__PURE__*/_jsxs(KLabel.Text, {
|
|
95
139
|
typo: "TextNmNormal",
|
|
96
140
|
color: KColors.white,
|
|
97
141
|
style: styles.counterText,
|
|
98
142
|
children: [index + 1, "/", images.length]
|
|
99
|
-
}), /*#__PURE__*/_jsx(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
143
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
144
|
+
visible: pagination !== false,
|
|
145
|
+
children: /*#__PURE__*/_jsx(Pagination, {
|
|
146
|
+
dotContainerStyle: styles.dotContainerStyle,
|
|
147
|
+
dotStyle: styles.dot,
|
|
148
|
+
inactiveDotStyle: styles.inactiveDot,
|
|
149
|
+
inactiveDotScale: 0.6,
|
|
150
|
+
dotsLength: images.length,
|
|
151
|
+
activeDotIndex: index,
|
|
152
|
+
inactiveDotOpacity: 0.5
|
|
153
|
+
})
|
|
107
154
|
})]
|
|
108
155
|
});
|
|
109
|
-
}, [pagination, images.length, index]);
|
|
156
|
+
}, [pagination, images.length, index, insets.bottom]);
|
|
110
157
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
111
158
|
style: styles.wrapper,
|
|
112
159
|
entering: SlideInDown,
|
|
@@ -117,7 +164,9 @@ const MediaViewerScreen = props => {
|
|
|
117
164
|
style: styles.flex,
|
|
118
165
|
children: [/*#__PURE__*/_jsx(LinearGradient, {
|
|
119
166
|
colors: ['rgba(0,0,0,0.9)', 'rgba(0,0,0,0)'],
|
|
120
|
-
style: [styles.topOverlay
|
|
167
|
+
style: [styles.topOverlay, {
|
|
168
|
+
paddingTop: insets.top
|
|
169
|
+
}],
|
|
121
170
|
pointerEvents: "box-none",
|
|
122
171
|
children: /*#__PURE__*/_jsxs(KContainer.View, {
|
|
123
172
|
style: styles.headerRow,
|
|
@@ -131,22 +180,36 @@ const MediaViewerScreen = props => {
|
|
|
131
180
|
})
|
|
132
181
|
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
133
182
|
flex: true
|
|
134
|
-
}),
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
183
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
184
|
+
visible: !!download,
|
|
185
|
+
children: /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
186
|
+
style: styles.headerBtn,
|
|
187
|
+
onPress: isDownloading ? undefined : onDownload,
|
|
188
|
+
disabled: isDownloading,
|
|
189
|
+
children: [/*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
190
|
+
visible: isDownloading,
|
|
191
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
192
|
+
size: "small",
|
|
193
|
+
color: KColors.white
|
|
194
|
+
})
|
|
195
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
196
|
+
visible: !isDownloading,
|
|
197
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
198
|
+
name: "download-o",
|
|
199
|
+
size: 24,
|
|
200
|
+
color: KColors.white
|
|
201
|
+
})
|
|
202
|
+
})]
|
|
141
203
|
})
|
|
142
204
|
})]
|
|
143
205
|
})
|
|
144
|
-
}), /*#__PURE__*/_jsx(
|
|
206
|
+
}), /*#__PURE__*/_jsx(LegendList, {
|
|
145
207
|
ref: listRef,
|
|
146
208
|
initialScrollIndex: initIndex >= images?.length ? images?.length - 1 : initIndex,
|
|
147
209
|
data: images,
|
|
148
210
|
renderItem: renderItem,
|
|
149
211
|
keyExtractor: keyEx,
|
|
212
|
+
estimatedItemSize: KDims.width,
|
|
150
213
|
pagingEnabled: true,
|
|
151
214
|
horizontal: true,
|
|
152
215
|
showsHorizontalScrollIndicator: false,
|
|
@@ -154,12 +217,8 @@ const MediaViewerScreen = props => {
|
|
|
154
217
|
viewabilityConfig: {
|
|
155
218
|
itemVisiblePercentThreshold: 50
|
|
156
219
|
},
|
|
157
|
-
onScrollToIndexFailed: onScrollToIndexFailed,
|
|
158
220
|
onMomentumScrollBegin: onMomentumScrollBegin,
|
|
159
221
|
onMomentumScrollEnd: onMomentumScrollEnd,
|
|
160
|
-
removeClippedSubviews: true,
|
|
161
|
-
maxToRenderPerBatch: 2,
|
|
162
|
-
windowSize: 3,
|
|
163
222
|
style: styles.flex
|
|
164
223
|
}), renderFooter]
|
|
165
224
|
})
|
|
@@ -180,13 +239,14 @@ const styles = StyleSheet.create({
|
|
|
180
239
|
height: KDims.height
|
|
181
240
|
},
|
|
182
241
|
topOverlay: {
|
|
183
|
-
//
|
|
242
|
+
// `paddingTop` is overridden inline with `useSafeAreaInsets().top` (real
|
|
243
|
+
// notch/status-bar inset, both platforms).
|
|
244
|
+
position: 'absolute',
|
|
184
245
|
top: 0,
|
|
185
246
|
left: 0,
|
|
186
247
|
right: 0,
|
|
187
248
|
zIndex: 100,
|
|
188
|
-
minHeight: 100
|
|
189
|
-
paddingTop: 30
|
|
249
|
+
minHeight: 100
|
|
190
250
|
},
|
|
191
251
|
// Figma: Header-First-Row — flex row, padding 8, alignItems center
|
|
192
252
|
headerRow: {
|
|
@@ -239,8 +299,10 @@ const styles = StyleSheet.create({
|
|
|
239
299
|
letterSpacing: 0.12
|
|
240
300
|
},
|
|
241
301
|
footer: {
|
|
302
|
+
// `bottom` is overridden inline with `useSafeAreaInsets()` (real device
|
|
303
|
+
// inset, both platforms) — `KDims.bottomSafeHeight` only covers iPhone
|
|
304
|
+
// notch/Dynamic Island and misses Android gesture-nav insets.
|
|
242
305
|
position: 'absolute',
|
|
243
|
-
bottom: KDims.bottomSafeHeight > 0 ? KDims.bottomSafeHeight + KSpacingValue['0.5rem'] : KSpacingValue['2rem'],
|
|
244
306
|
alignSelf: 'center',
|
|
245
307
|
alignItems: 'center',
|
|
246
308
|
zIndex: 10
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","useMemo","BackHandler","Platform","StyleSheet","FlatList","StatusBar","LinearGradient","Animated","FadeIn","FadeOut","SlideInDown","SlideOutDown","Pagination","PhotoView","KColors","KContainer","KDims","KImage","KLabel","KRadiusValue","KSpacingValue","VideoPlayer","jsx","_jsx","jsxs","_jsxs","MediaViewerScreen","props","images","initIndex","download","pagination","onDismiss","listRef","index","setIndex","isScrolling","setIsScrolling","dismiss","onDownload","setHidden","OS","sub","addEventListener","remove","onMomentumScrollBegin","onMomentumScrollEnd","onScrollToIndexFailed","info","len","length","wait","Promise","resolve","setTimeout","then","current","scrollToIndex","animated","onViewableItemsChanged","viewableItems","i","keyEx","item","url","renderItem","itemIndex","Touchable","center","activeOpacity","children","VisibleView","visible","isVideo","isActive","showCustomControls","source","uri","minimumZoomScale","maximumZoomScale","scale","androidScaleType","style","styles","img","renderFooter","View","footer","Text","typo","color","white","counterText","dotContainerStyle","dotStyle","dot","inactiveDotStyle","inactiveDot","inactiveDotScale","dotsLength","activeDotIndex","inactiveDotOpacity","wrapper","entering","exiting","stiffness","flex","colors","topOverlay","pointerEvents","headerRow","headerBtn","onPress","VectorIcons","name","size","ref","initialScrollIndex","data","keyExtractor","pagingEnabled","horizontal","showsHorizontalScrollIndicator","viewabilityConfig","itemVisiblePercentThreshold","removeClippedSubviews","maxToRenderPerBatch","windowSize","displayName","create","backgroundColor","black","width","height","top","left","right","zIndex","minHeight","paddingTop","flexDirection","alignItems","padding","borderRadius","justifyContent","actionGroup","gap","counterWrapper","position","letterSpacing","cartIconStyle","selectToDownloadWrapper","marginTop","selectToDownloadBtn","paddingHorizontal","borderWidth","borderColor","selectToDownloadText","bottom","bottomSafeHeight","alignSelf","marginHorizontal","gray","light"],"sourceRoot":"../../../../src","sources":["screens/MediaView/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","useMemo","ActivityIndicator","BackHandler","Platform","StyleSheet","StatusBar","LegendList","LinearGradient","Animated","FadeIn","FadeOut","SlideInDown","SlideOutDown","Pagination","PhotoView","RNFS","useSafeAreaInsets","saveDocuments","KColors","KContainer","KDims","KImage","KLabel","KRadiusValue","KSpacingValue","VideoPlayer","UIUtils","trans","getMimeType","jsx","_jsx","jsxs","_jsxs","MediaViewerScreen","props","images","initIndex","download","pagination","onDismiss","insets","listRef","index","setIndex","isScrolling","setIsScrolling","isDownloading","setIsDownloading","dismiss","onDownload","item","url","urlPath","split","fallbackExt","isVideo","fileName","pop","destPath","CachesDirectoryPath","exists","result","downloadFile","fromUrl","toFile","promise","statusCode","Error","sourceUris","mimeType","copy","toast","open","title","theme","setHidden","OS","sub","addEventListener","remove","onMomentumScrollBegin","onMomentumScrollEnd","onViewableItemsChanged","viewableItems","i","current","keyEx","renderItem","itemIndex","Touchable","center","activeOpacity","children","VisibleView","visible","isActive","showCustomControls","source","uri","minimumZoomScale","maximumZoomScale","scale","androidScaleType","style","styles","img","renderFooter","length","View","footer","bottom","Text","typo","color","white","counterText","dotContainerStyle","dotStyle","dot","inactiveDotStyle","inactiveDot","inactiveDotScale","dotsLength","activeDotIndex","inactiveDotOpacity","wrapper","entering","exiting","stiffness","flex","colors","topOverlay","paddingTop","top","pointerEvents","headerRow","headerBtn","onPress","VectorIcons","name","size","undefined","disabled","ref","initialScrollIndex","data","keyExtractor","estimatedItemSize","width","pagingEnabled","horizontal","showsHorizontalScrollIndicator","viewabilityConfig","itemVisiblePercentThreshold","displayName","create","backgroundColor","black","height","position","left","right","zIndex","minHeight","flexDirection","alignItems","padding","borderRadius","justifyContent","actionGroup","gap","counterWrapper","letterSpacing","cartIconStyle","selectToDownloadWrapper","marginTop","selectToDownloadBtn","paddingHorizontal","borderWidth","borderColor","selectToDownloadText","alignSelf","marginHorizontal","gray","light"],"sourceRoot":"../../../../src","sources":["screens/MediaView/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useMemo } from 'react';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors, KSpacingValue } from '@droppii/libs';
|
|
6
|
+
import { useFileDownload } from "../../hooks/useFileDownload.js";
|
|
7
|
+
import { getFileIcon, getMimeType, formatFileSize } from "../../utils/imageUtils.js";
|
|
8
|
+
import { trans } from "../../translation/index.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
export const FileResourceRow = /*#__PURE__*/memo(({
|
|
11
|
+
item
|
|
12
|
+
}) => {
|
|
13
|
+
const fileName = item.fileName || '[File]';
|
|
14
|
+
const url = item.sourceUrl || '';
|
|
15
|
+
const {
|
|
16
|
+
state,
|
|
17
|
+
handleView
|
|
18
|
+
} = useFileDownload(fileName, url);
|
|
19
|
+
const mimeType = useMemo(() => item.mimeType || getMimeType(fileName), [item.mimeType, fileName]);
|
|
20
|
+
const iconSource = useMemo(() => getFileIcon(mimeType), [mimeType]);
|
|
21
|
+
const subtitle = useMemo(() => {
|
|
22
|
+
if (state.status === 'downloading') {
|
|
23
|
+
return trans('chat:file_downloading', {
|
|
24
|
+
received: state.receivedMB ?? 0,
|
|
25
|
+
total: state.totalMB ?? 0
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (state.status === 'error') {
|
|
29
|
+
return state.error ?? trans('chat:file_download_failed');
|
|
30
|
+
}
|
|
31
|
+
return formatFileSize(item.fileSize ?? 0);
|
|
32
|
+
}, [state, item.fileSize]);
|
|
33
|
+
const subtitleColor = state.status === 'error' ? KColors.palette.danger?.w400 ?? '#FF3B30' : KColors.palette.gray.w400;
|
|
34
|
+
|
|
35
|
+
// Figma's File-Item component carries a trailing "Close-Button" (X in a dark
|
|
36
|
+
// circle) layer, but it's `visible: false` in every real row — the rendered
|
|
37
|
+
// design has NO trailing icon at all. Confirmed by product decision: no
|
|
38
|
+
// separate download button — the whole row is tappable (`handleView`, same
|
|
39
|
+
// cache-then-open behavior the in-chat `FileMessage` bubble's eye icon uses).
|
|
40
|
+
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
41
|
+
style: styles.row,
|
|
42
|
+
br: "3x",
|
|
43
|
+
background: KColors.opacity.grayLighter[20],
|
|
44
|
+
onPress: handleView,
|
|
45
|
+
children: [/*#__PURE__*/_jsx(KImage.Base, {
|
|
46
|
+
uri: iconSource,
|
|
47
|
+
style: styles.icon,
|
|
48
|
+
resizeMode: "contain"
|
|
49
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
50
|
+
flexS: 1,
|
|
51
|
+
children: [/*#__PURE__*/_jsx(KLabel.Text, {
|
|
52
|
+
typo: "TextMdMedium",
|
|
53
|
+
color: KColors.palette.gray.w900,
|
|
54
|
+
numberOfLines: 1,
|
|
55
|
+
ellipsizeMode: "middle",
|
|
56
|
+
children: fileName
|
|
57
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
58
|
+
typo: "TextSmNormal",
|
|
59
|
+
color: subtitleColor,
|
|
60
|
+
numberOfLines: 1,
|
|
61
|
+
children: subtitle
|
|
62
|
+
})]
|
|
63
|
+
})]
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
const styles = StyleSheet.create({
|
|
67
|
+
// Figma File-Item (`14208:88679`): 12px padding all sides, 8px gap, 40x40 icon.
|
|
68
|
+
row: {
|
|
69
|
+
flexDirection: 'row',
|
|
70
|
+
alignItems: 'center',
|
|
71
|
+
gap: KSpacingValue['0.5rem'],
|
|
72
|
+
padding: KSpacingValue['0.75rem'],
|
|
73
|
+
marginBottom: KSpacingValue['0.5rem']
|
|
74
|
+
},
|
|
75
|
+
icon: {
|
|
76
|
+
width: 40,
|
|
77
|
+
height: 40
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=FileResourceRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useMemo","StyleSheet","KContainer","KImage","KLabel","KColors","KSpacingValue","useFileDownload","getFileIcon","getMimeType","formatFileSize","trans","jsx","_jsx","jsxs","_jsxs","FileResourceRow","item","fileName","url","sourceUrl","state","handleView","mimeType","iconSource","subtitle","status","received","receivedMB","total","totalMB","error","fileSize","subtitleColor","palette","danger","w400","gray","Touchable","style","styles","row","br","background","opacity","grayLighter","onPress","children","Base","uri","icon","resizeMode","View","flexS","Text","typo","color","w900","numberOfLines","ellipsizeMode","create","flexDirection","alignItems","gap","padding","marginBottom","width","height"],"sourceRoot":"../../../../src","sources":["screens/ResourceCenter/FileResourceRow.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback, useMemo } from 'react';
|
|
4
|
+
import { ActivityIndicator, StyleSheet, useWindowDimensions } from 'react-native';
|
|
5
|
+
import { LegendList } from '@legendapp/list/react-native';
|
|
6
|
+
import { KContainer, KSpacingValue, KColors } from '@droppii/libs';
|
|
7
|
+
import { GridThumbnail } from "./GridThumbnail.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
const COLUMNS = 3;
|
|
10
|
+
const GRID_GAP = KSpacingValue['0.5rem']; // 8px
|
|
11
|
+
const CONTAINER_PADDING = KSpacingValue['0.75rem']; // 12px
|
|
12
|
+
|
|
13
|
+
export const GridRenderer = /*#__PURE__*/memo(({
|
|
14
|
+
items,
|
|
15
|
+
onEndReached,
|
|
16
|
+
isFetchingNextPage,
|
|
17
|
+
onPressItem,
|
|
18
|
+
onRefresh,
|
|
19
|
+
isRefetching,
|
|
20
|
+
emptyComponent
|
|
21
|
+
}) => {
|
|
22
|
+
// Reactive — do NOT use KDims.width (static snapshot, stale on rotation/resize).
|
|
23
|
+
const {
|
|
24
|
+
width
|
|
25
|
+
} = useWindowDimensions();
|
|
26
|
+
const cellSize = useMemo(() => {
|
|
27
|
+
const raw = (width - CONTAINER_PADDING * 2 - GRID_GAP * (COLUMNS - 1)) / COLUMNS;
|
|
28
|
+
// Floor against a degenerate width (extremely narrow split-screen, or a
|
|
29
|
+
// not-yet-measured `0` on first paint) — a <= 0 `estimatedItemSize` would
|
|
30
|
+
// feed LegendList's internal layout math a divide-by-zero/negative size.
|
|
31
|
+
return Number.isFinite(raw) && raw > 0 ? raw : 1;
|
|
32
|
+
}, [width]);
|
|
33
|
+
const renderItem = useCallback(({
|
|
34
|
+
item,
|
|
35
|
+
index
|
|
36
|
+
}) => /*#__PURE__*/_jsx(GridThumbnail, {
|
|
37
|
+
item: item,
|
|
38
|
+
index: index,
|
|
39
|
+
size: cellSize,
|
|
40
|
+
onPress: onPressItem
|
|
41
|
+
}), [cellSize, onPressItem]);
|
|
42
|
+
const keyExtractor = useCallback(item => item.id, []);
|
|
43
|
+
return /*#__PURE__*/_jsx(LegendList, {
|
|
44
|
+
data: items,
|
|
45
|
+
numColumns: COLUMNS,
|
|
46
|
+
estimatedItemSize: cellSize,
|
|
47
|
+
renderItem: renderItem,
|
|
48
|
+
keyExtractor: keyExtractor
|
|
49
|
+
// `GridThumbnail` is stateless/presentational (derives everything from
|
|
50
|
+
// props, no internal `useState`) — safe to recycle cell instances
|
|
51
|
+
// instead of remounting on scroll. Without this, LegendList defaults to
|
|
52
|
+
// `false` and logs its own dev warning recommending exactly this.
|
|
53
|
+
,
|
|
54
|
+
recycleItems: true,
|
|
55
|
+
contentContainerStyle: styles.content,
|
|
56
|
+
columnWrapperStyle: styles.row,
|
|
57
|
+
onEndReached: onEndReached,
|
|
58
|
+
onEndReachedThreshold: 0.5,
|
|
59
|
+
onRefresh: onRefresh,
|
|
60
|
+
refreshing: isRefetching,
|
|
61
|
+
ListEmptyComponent: emptyComponent,
|
|
62
|
+
ListFooterComponent: /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
63
|
+
visible: isFetchingNextPage,
|
|
64
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
65
|
+
style: styles.footer,
|
|
66
|
+
color: KColors.palette.primary.w400
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
const styles = StyleSheet.create({
|
|
72
|
+
content: {
|
|
73
|
+
padding: CONTAINER_PADDING,
|
|
74
|
+
gap: GRID_GAP
|
|
75
|
+
},
|
|
76
|
+
row: {
|
|
77
|
+
gap: GRID_GAP
|
|
78
|
+
},
|
|
79
|
+
footer: {
|
|
80
|
+
paddingVertical: KSpacingValue['1rem']
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=GridRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useMemo","ActivityIndicator","StyleSheet","useWindowDimensions","LegendList","KContainer","KSpacingValue","KColors","GridThumbnail","jsx","_jsx","COLUMNS","GRID_GAP","CONTAINER_PADDING","GridRenderer","items","onEndReached","isFetchingNextPage","onPressItem","onRefresh","isRefetching","emptyComponent","width","cellSize","raw","Number","isFinite","renderItem","item","index","size","onPress","keyExtractor","id","data","numColumns","estimatedItemSize","recycleItems","contentContainerStyle","styles","content","columnWrapperStyle","row","onEndReachedThreshold","refreshing","ListEmptyComponent","ListFooterComponent","VisibleView","visible","children","style","footer","color","palette","primary","w400","create","padding","gap","paddingVertical"],"sourceRoot":"../../../../src","sources":["screens/ResourceCenter/GridRenderer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback, useMemo, useState } from 'react';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
|
|
6
|
+
import { formatDuration } from "../../utils/dateTimeUtils.js";
|
|
7
|
+
import ChatImageDimens from "../../utils/chatImageDimens.js";
|
|
8
|
+
import { DThreadResourceContentType } from "../../types/chat.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
export const GridThumbnail = /*#__PURE__*/memo(({
|
|
11
|
+
item,
|
|
12
|
+
index,
|
|
13
|
+
size,
|
|
14
|
+
onPress
|
|
15
|
+
}) => {
|
|
16
|
+
const isVideo = item.contentType === DThreadResourceContentType.VIDEO;
|
|
17
|
+
const showDuration = isVideo && item.duration != null;
|
|
18
|
+
const durationLabel = item.duration != null ? formatDuration(item.duration) : '';
|
|
19
|
+
|
|
20
|
+
// First mount of a cell has nothing painted yet — a bare `KImage.Base` on a
|
|
21
|
+
// white screen flashes as an empty gap until the (possibly not-yet-cached)
|
|
22
|
+
// thumbnail decodes. Same skeleton-over-gray-fallback pattern as
|
|
23
|
+
// `MergedImageGrid.tsx`'s chat-bubble grid.
|
|
24
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
25
|
+
const onLoadEnd = useCallback(() => setIsLoading(false), []);
|
|
26
|
+
|
|
27
|
+
// Never request the original full-resolution asset for a grid cell — run
|
|
28
|
+
// whichever URL we end up with (BE's own resized `thumbnailUrl`, or a
|
|
29
|
+
// fallback to full-res `sourceUrl` if BE didn't provide one) through the
|
|
30
|
+
// same CDN resize+webp pipeline `imageMessage.tsx` uses for chat bubbles.
|
|
31
|
+
// `size` is included in deps since it changes on rotation/window resize.
|
|
32
|
+
const thumbnailUri = useMemo(() => {
|
|
33
|
+
// `size` is a sub-pixel float (screen-width / 3 columns) — round it, since
|
|
34
|
+
// the resize dimensions baked into the URL should be whole pixels.
|
|
35
|
+
const roundedSize = Math.round(size);
|
|
36
|
+
return ChatImageDimens.getOptimizedImageUrlWithDimensions(item.thumbnailUrl ?? item.sourceUrl, roundedSize, roundedSize);
|
|
37
|
+
}, [item.thumbnailUrl, item.sourceUrl, size]);
|
|
38
|
+
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
39
|
+
style: [styles.cell, {
|
|
40
|
+
width: size,
|
|
41
|
+
height: size
|
|
42
|
+
}],
|
|
43
|
+
onPress: () => onPress(index),
|
|
44
|
+
accessibilityLabel: item.fileName || (isVideo ? 'Video' : 'Image'),
|
|
45
|
+
children: [/*#__PURE__*/_jsx(KImage.Base, {
|
|
46
|
+
uri: thumbnailUri,
|
|
47
|
+
width: size,
|
|
48
|
+
height: size,
|
|
49
|
+
br: "2x",
|
|
50
|
+
transition: "fade",
|
|
51
|
+
onLoadEnd: onLoadEnd
|
|
52
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
53
|
+
visible: isLoading,
|
|
54
|
+
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
55
|
+
style: [styles.skeleton, {
|
|
56
|
+
width: size,
|
|
57
|
+
height: size
|
|
58
|
+
}]
|
|
59
|
+
})
|
|
60
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
61
|
+
visible: showDuration,
|
|
62
|
+
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
63
|
+
style: styles.durationBadge,
|
|
64
|
+
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
65
|
+
typo: "Text2XsNormal",
|
|
66
|
+
color: KColors.white,
|
|
67
|
+
children: durationLabel
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
})]
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
const styles = StyleSheet.create({
|
|
74
|
+
// Fallback background so a cell is never a stark blank/white gap while its
|
|
75
|
+
// thumbnail is still decoding.
|
|
76
|
+
cell: {
|
|
77
|
+
backgroundColor: KColors.palette.gray.w50,
|
|
78
|
+
overflow: 'hidden'
|
|
79
|
+
},
|
|
80
|
+
skeleton: {
|
|
81
|
+
position: 'absolute',
|
|
82
|
+
top: 0,
|
|
83
|
+
left: 0,
|
|
84
|
+
backgroundColor: KColors.palette.gray.w50,
|
|
85
|
+
borderRadius: 8
|
|
86
|
+
},
|
|
87
|
+
// Figma: Video-Time — black pill, bottom-right overlay, cornerRadius 12 (KRadius '3x')
|
|
88
|
+
durationBadge: {
|
|
89
|
+
position: 'absolute',
|
|
90
|
+
right: 4,
|
|
91
|
+
bottom: 4,
|
|
92
|
+
borderRadius: 12,
|
|
93
|
+
paddingHorizontal: 4,
|
|
94
|
+
backgroundColor: 'rgba(0,0,0,1)'
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=GridThumbnail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useMemo","useState","StyleSheet","KContainer","KImage","KLabel","KColors","formatDuration","ChatImageDimens","DThreadResourceContentType","jsx","_jsx","jsxs","_jsxs","GridThumbnail","item","index","size","onPress","isVideo","contentType","VIDEO","showDuration","duration","durationLabel","isLoading","setIsLoading","onLoadEnd","thumbnailUri","roundedSize","Math","round","getOptimizedImageUrlWithDimensions","thumbnailUrl","sourceUrl","Touchable","style","styles","cell","width","height","accessibilityLabel","fileName","children","Base","uri","br","transition","VisibleView","visible","View","skeleton","durationBadge","Text","typo","color","white","create","backgroundColor","palette","gray","w50","overflow","position","top","left","borderRadius","right","bottom","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["screens/ResourceCenter/GridThumbnail.tsx"],"mappings":"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","ignoreList":[]}
|