@chem-po/react-native 0.0.23 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/lib/commonjs/components/form/input/file/index.js +3 -1
  2. package/lib/commonjs/components/form/input/file/index.js.map +1 -1
  3. package/lib/commonjs/components/image/ImageViewModal.backup.js +285 -0
  4. package/lib/commonjs/components/image/ImageViewModal.backup.js.map +1 -0
  5. package/lib/commonjs/components/image/ImageViewModal.js +265 -0
  6. package/lib/commonjs/components/image/ImageViewModal.js.map +1 -0
  7. package/lib/commonjs/components/image/ImageViewModal.old.js +285 -0
  8. package/lib/commonjs/components/image/ImageViewModal.old.js.map +1 -0
  9. package/lib/commonjs/components/image/index.js +17 -0
  10. package/lib/commonjs/components/image/index.js.map +1 -0
  11. package/lib/commonjs/components/index.js +8 -8
  12. package/lib/commonjs/components/index.js.map +1 -1
  13. package/lib/commonjs/components/loading/LoadingImage.js +11 -6
  14. package/lib/commonjs/components/loading/LoadingImage.js.map +1 -1
  15. package/lib/module/components/form/input/file/index.js +3 -1
  16. package/lib/module/components/form/input/file/index.js.map +1 -1
  17. package/lib/module/components/image/ImageViewModal.backup.js +277 -0
  18. package/lib/module/components/image/ImageViewModal.backup.js.map +1 -0
  19. package/lib/module/components/image/ImageViewModal.js +257 -0
  20. package/lib/module/components/image/ImageViewModal.js.map +1 -0
  21. package/lib/module/components/image/ImageViewModal.old.js +277 -0
  22. package/lib/module/components/image/ImageViewModal.old.js.map +1 -0
  23. package/lib/module/components/image/index.js +2 -0
  24. package/lib/module/components/image/index.js.map +1 -0
  25. package/lib/module/components/index.js +1 -1
  26. package/lib/module/components/index.js.map +1 -1
  27. package/lib/module/components/loading/LoadingImage.js +11 -6
  28. package/lib/module/components/loading/LoadingImage.js.map +1 -1
  29. package/lib/typescript/components/form/input/file/index.d.ts +2 -1
  30. package/lib/typescript/components/form/input/file/index.d.ts.map +1 -1
  31. package/lib/typescript/components/image/ImageViewModal.backup.d.ts +9 -0
  32. package/lib/typescript/components/image/ImageViewModal.backup.d.ts.map +1 -0
  33. package/lib/typescript/components/image/ImageViewModal.d.ts +9 -0
  34. package/lib/typescript/components/image/ImageViewModal.d.ts.map +1 -0
  35. package/lib/typescript/components/image/ImageViewModal.old.d.ts +9 -0
  36. package/lib/typescript/components/image/ImageViewModal.old.d.ts.map +1 -0
  37. package/lib/typescript/components/image/index.d.ts +2 -0
  38. package/lib/typescript/components/image/index.d.ts.map +1 -0
  39. package/lib/typescript/components/index.d.ts +1 -1
  40. package/lib/typescript/components/index.d.ts.map +1 -1
  41. package/lib/typescript/components/loading/LoadingImage.d.ts +2 -2
  42. package/lib/typescript/components/loading/LoadingImage.d.ts.map +1 -1
  43. package/package.json +11 -10
  44. package/src/components/form/input/file/index.tsx +3 -0
  45. package/src/components/image/ImageViewModal.backup.tsx +261 -0
  46. package/src/components/image/ImageViewModal.old.tsx +261 -0
  47. package/src/components/image/ImageViewModal.tsx +254 -0
  48. package/src/components/image/index.ts +1 -0
  49. package/src/components/index.ts +1 -1
  50. package/src/components/loading/LoadingImage.tsx +10 -6
  51. package/lib/commonjs/components/overlay/ImageViewOverlay.js +0 -127
  52. package/lib/commonjs/components/overlay/ImageViewOverlay.js.map +0 -1
  53. package/lib/commonjs/components/overlay/index.js +0 -17
  54. package/lib/commonjs/components/overlay/index.js.map +0 -1
  55. package/lib/module/components/overlay/ImageViewOverlay.js +0 -119
  56. package/lib/module/components/overlay/ImageViewOverlay.js.map +0 -1
  57. package/lib/module/components/overlay/index.js +0 -2
  58. package/lib/module/components/overlay/index.js.map +0 -1
  59. package/lib/typescript/components/overlay/ImageViewOverlay.d.ts +0 -6
  60. package/lib/typescript/components/overlay/ImageViewOverlay.d.ts.map +0 -1
  61. package/lib/typescript/components/overlay/index.d.ts +0 -2
  62. package/lib/typescript/components/overlay/index.d.ts.map +0 -1
  63. package/src/components/overlay/ImageViewOverlay.tsx +0 -104
  64. package/src/components/overlay/index.ts +0 -1
@@ -0,0 +1,254 @@
1
+ import { useScreen } from '@chem-po/react'
2
+ import { Ionicons } from '@expo/vector-icons'
3
+ import React, { useCallback, useEffect, useMemo, useState } from 'react'
4
+ import { Image, Modal, StyleSheet, TouchableOpacity, View } from 'react-native'
5
+ import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler'
6
+ import Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated'
7
+ import { LoadingLogo } from '../loading/Loading'
8
+
9
+ interface ImageViewModalProps {
10
+ isOpen: boolean
11
+ onClose: () => void
12
+ src: string | null
13
+ }
14
+
15
+ export const ImageViewModal: React.FC<ImageViewModalProps> = ({ isOpen, onClose, src }) => {
16
+ const [loading, setLoading] = useState(true)
17
+ const screenWidth = useScreen(s => s.width)
18
+ const screenHeight = useScreen(s => s.height)
19
+ const [imageSize, setImageSize] = useState({ width: screenWidth / 2, height: screenHeight / 2 })
20
+
21
+ // Shared values for zoom and pan (reanimated)
22
+ const scale = useSharedValue(1)
23
+ const translateX = useSharedValue(0)
24
+ const translateY = useSharedValue(0)
25
+
26
+ // Saved state for gesture handling
27
+ const savedScale = useSharedValue(1)
28
+ const savedTranslateX = useSharedValue(0)
29
+ const savedTranslateY = useSharedValue(0)
30
+
31
+ const { height, width } = useMemo(() => {
32
+ if (loading) return imageSize
33
+ const ratio = imageSize.width / imageSize.height
34
+ let h = Math.min(imageSize.height, screenHeight * 0.9)
35
+ let w = h * ratio
36
+ if (w > screenWidth * 0.9) {
37
+ w = Math.min(imageSize.width, screenWidth * 0.9)
38
+ h = w / ratio
39
+ }
40
+ return { height: h, width: w }
41
+ }, [screenHeight, screenWidth, imageSize, loading])
42
+
43
+ const onLoadStart = useCallback(() => setLoading(true), [])
44
+ const onLoad = useCallback((e: any) => {
45
+ const { width: naturalWidth, height: naturalHeight } = e.nativeEvent.source
46
+ setImageSize({ width: naturalWidth, height: naturalHeight })
47
+ setLoading(false)
48
+ }, [])
49
+
50
+ // Reset zoom and pan when modal opens/closes
51
+ const resetTransform = useCallback(() => {
52
+ scale.value = 1
53
+ translateX.value = 0
54
+ translateY.value = 0
55
+ savedScale.value = 1
56
+ savedTranslateX.value = 0
57
+ savedTranslateY.value = 0
58
+ }, [scale, translateX, translateY, savedScale, savedTranslateX, savedTranslateY])
59
+
60
+ // Reset when modal closes or src changes
61
+ useEffect(() => {
62
+ if (!isOpen || !src) {
63
+ resetTransform()
64
+ }
65
+ }, [isOpen, src, resetTransform])
66
+
67
+ // Pan gesture with worklet
68
+ const panGesture = Gesture.Pan()
69
+ .onUpdate(event => {
70
+ 'worklet'
71
+ // Only allow panning if zoomed in
72
+ if (savedScale.value > 1) {
73
+ const newTranslateX = savedTranslateX.value + event.translationX
74
+ const newTranslateY = savedTranslateY.value + event.translationY
75
+
76
+ // Calculate bounds to prevent panning too far
77
+ const maxTranslateX = (width * savedScale.value - width) / 2
78
+ const maxTranslateY = (height * savedScale.value - height) / 2
79
+
80
+ const boundedTranslateX = Math.max(-maxTranslateX, Math.min(maxTranslateX, newTranslateX))
81
+ const boundedTranslateY = Math.max(-maxTranslateY, Math.min(maxTranslateY, newTranslateY))
82
+
83
+ translateX.value = boundedTranslateX
84
+ translateY.value = boundedTranslateY
85
+ }
86
+ })
87
+ .onEnd(() => {
88
+ 'worklet'
89
+ savedTranslateX.value = translateX.value
90
+ savedTranslateY.value = translateY.value
91
+ })
92
+
93
+ // Pinch gesture with worklet
94
+ const pinchGesture = Gesture.Pinch()
95
+ .onUpdate(event => {
96
+ 'worklet'
97
+ const newScale = savedScale.value * event.scale
98
+ // Limit zoom between 1x and 5x
99
+ const boundedScale = Math.max(1, Math.min(5, newScale))
100
+ scale.value = boundedScale
101
+
102
+ // If zooming out to 1x, reset position
103
+ if (boundedScale <= 1) {
104
+ translateX.value = 0
105
+ translateY.value = 0
106
+ }
107
+ })
108
+ .onEnd(() => {
109
+ 'worklet'
110
+ savedScale.value = scale.value
111
+ // If scale is close to 1, snap back to 1
112
+ if (savedScale.value < 1.1) {
113
+ scale.value = withSpring(1)
114
+ translateX.value = withSpring(0)
115
+ translateY.value = withSpring(0)
116
+ savedScale.value = 1
117
+ savedTranslateX.value = 0
118
+ savedTranslateY.value = 0
119
+ } else {
120
+ savedTranslateX.value = translateX.value
121
+ savedTranslateY.value = translateY.value
122
+ }
123
+ })
124
+
125
+ // Double tap to zoom with worklet
126
+ const doubleTapGesture = Gesture.Tap()
127
+ .numberOfTaps(2)
128
+ .onEnd(() => {
129
+ 'worklet'
130
+ if (savedScale.value > 1) {
131
+ // Zoom out
132
+ scale.value = withSpring(1)
133
+ translateX.value = withSpring(0)
134
+ translateY.value = withSpring(0)
135
+ savedScale.value = 1
136
+ savedTranslateX.value = 0
137
+ savedTranslateY.value = 0
138
+ } else {
139
+ // Zoom in to 2x
140
+ scale.value = withSpring(2)
141
+ savedScale.value = 2
142
+ }
143
+ })
144
+
145
+ // Combine gestures
146
+ const combinedGestures = Gesture.Race(
147
+ doubleTapGesture,
148
+ Gesture.Simultaneous(panGesture, pinchGesture),
149
+ )
150
+
151
+ // Animated style using reanimated
152
+ const animatedStyle = useAnimatedStyle(() => {
153
+ return {
154
+ transform: [
155
+ { scale: scale.value },
156
+ { translateX: translateX.value },
157
+ { translateY: translateY.value },
158
+ ],
159
+ }
160
+ })
161
+
162
+ if (!isOpen) {
163
+ return null
164
+ }
165
+
166
+ return (
167
+ <Modal visible={isOpen} transparent animationType="fade" onRequestClose={onClose}>
168
+ <GestureHandlerRootView style={styles.gestureRoot}>
169
+ <View style={styles.modalOverlay}>
170
+ <TouchableOpacity
171
+ style={styles.backgroundTouchable}
172
+ activeOpacity={1}
173
+ onPress={onClose}
174
+ />
175
+ <View style={styles.contentContainer}>
176
+ <GestureDetector gesture={combinedGestures}>
177
+ <Animated.View
178
+ style={[
179
+ styles.imageContainer,
180
+ {
181
+ width,
182
+ height,
183
+ opacity: loading ? 0 : 1,
184
+ },
185
+ animatedStyle,
186
+ ]}>
187
+ <Image
188
+ source={src ? { uri: src } : undefined}
189
+ style={styles.image}
190
+ onLoadStart={onLoadStart}
191
+ onLoad={onLoad}
192
+ resizeMode="contain"
193
+ />
194
+ </Animated.View>
195
+ </GestureDetector>
196
+
197
+ <TouchableOpacity style={styles.closeButton} onPress={onClose}>
198
+ <Ionicons name="close" size={24} color="white" />
199
+ </TouchableOpacity>
200
+
201
+ {loading || !src ? (
202
+ <View style={styles.loadingContainer}>
203
+ <LoadingLogo isLoading={loading} size={70} />
204
+ </View>
205
+ ) : null}
206
+ </View>
207
+ </View>
208
+ </GestureHandlerRootView>
209
+ </Modal>
210
+ )
211
+ }
212
+
213
+ const styles = StyleSheet.create({
214
+ gestureRoot: {
215
+ flex: 1,
216
+ },
217
+ modalOverlay: {
218
+ flex: 1,
219
+ backgroundColor: 'rgba(0, 0, 0, 0.7)',
220
+ },
221
+ backgroundTouchable: {
222
+ ...StyleSheet.absoluteFillObject,
223
+ },
224
+ contentContainer: {
225
+ flex: 1,
226
+ justifyContent: 'center',
227
+ alignItems: 'center',
228
+ padding: 16,
229
+ },
230
+ imageContainer: {
231
+ overflow: 'hidden',
232
+ borderRadius: 4,
233
+ },
234
+ image: {
235
+ width: '100%',
236
+ height: '100%',
237
+ },
238
+ closeButton: {
239
+ position: 'absolute',
240
+ top: 16,
241
+ right: 16,
242
+ width: 40,
243
+ height: 40,
244
+ borderRadius: 20,
245
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
246
+ justifyContent: 'center',
247
+ alignItems: 'center',
248
+ },
249
+ loadingContainer: {
250
+ ...StyleSheet.absoluteFillObject,
251
+ justifyContent: 'center',
252
+ alignItems: 'center',
253
+ },
254
+ })
@@ -0,0 +1 @@
1
+ export * from './ImageViewModal'
@@ -2,7 +2,7 @@ export * from './box'
2
2
  export * from './button'
3
3
  export * from './feed'
4
4
  export * from './form'
5
+ export * from './image'
5
6
  export * from './loading'
6
- export * from './overlay'
7
7
  export * from './text'
8
8
  export * from './theme'
@@ -2,14 +2,14 @@ import { useMounted } from '@chem-po/react'
2
2
  import { Ionicons } from '@expo/vector-icons'
3
3
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
4
4
  import { DimensionValue, Image, StyleSheet, TouchableOpacity, View, ViewStyle } from 'react-native'
5
- import { ImageViewOverlay } from '../overlay/ImageViewOverlay'
5
+ import { ImageViewModal } from '../image/ImageViewModal'
6
6
  import { LoadingLogo } from './Loading'
7
7
 
8
8
  export interface LoadingImageProps {
9
9
  src?: string | null
10
10
  loadingOverride?: boolean
11
11
  onLoad?: (e: any) => void
12
- noFullView?: boolean
12
+ withFullView?: boolean
13
13
  buttonFullView?: boolean
14
14
  style?: ViewStyle
15
15
  width?: DimensionValue
@@ -25,7 +25,7 @@ export const LoadingImage = ({
25
25
  onLoad,
26
26
  width,
27
27
  height,
28
- noFullView,
28
+ withFullView,
29
29
  buttonFullView,
30
30
  style,
31
31
  }: LoadingImageProps) => {
@@ -77,13 +77,16 @@ export const LoadingImage = ({
77
77
  },
78
78
  style,
79
79
  ]}>
80
- {noFullView || buttonFullView ? (
80
+ {!withFullView || buttonFullView ? (
81
81
  ImageComponent
82
82
  ) : (
83
83
  <TouchableOpacity
84
84
  activeOpacity={0.9}
85
85
  onPress={() => setViewing(true)}
86
- style={styles.imageContainer}>
86
+ style={{
87
+ width: width ? undefined : '100%',
88
+ height: height ? undefined : '100%',
89
+ }}>
87
90
  {ImageComponent}
88
91
  </TouchableOpacity>
89
92
  )}
@@ -100,11 +103,12 @@ export const LoadingImage = ({
100
103
  styles.loadingContainer,
101
104
  {
102
105
  opacity: loading ? 1 : 0,
106
+ pointerEvents: loading ? 'auto' : 'none',
103
107
  },
104
108
  ]}>
105
109
  <LoadingLogo isLoading={loading} size={10} />
106
110
  </View>
107
- {viewing && <ImageViewOverlay src={src ?? emptyPng} onClose={() => setViewing(false)} />}
111
+ {viewing && <ImageViewModal isOpen src={src ?? emptyPng} onClose={() => setViewing(false)} />}
108
112
  </View>
109
113
  )
110
114
  }
@@ -1,127 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ImageViewOverlay = void 0;
7
- var _react = require("@chem-po/react");
8
- var _vectorIcons = require("@expo/vector-icons");
9
- var _react2 = _interopRequireWildcard(require("react"));
10
- var _reactNative = require("react-native");
11
- var _Loading = require("../loading/Loading");
12
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
- const ImageViewOverlay = ({
14
- src,
15
- onClose
16
- }) => {
17
- const [loading, setLoading] = (0, _react2.useState)(true);
18
- const screenWidth = (0, _react.useScreen)(s => s.width);
19
- const screenHeight = (0, _react.useScreen)(s => s.height);
20
- const [imageSize, setImageSize] = (0, _react2.useState)({
21
- width: screenWidth / 2,
22
- height: screenHeight / 2
23
- });
24
- const {
25
- height,
26
- width
27
- } = (0, _react2.useMemo)(() => {
28
- if (loading) return imageSize;
29
- const ratio = imageSize.width / imageSize.height;
30
- let h = Math.min(imageSize.height, screenHeight * 0.9);
31
- let w = h * ratio;
32
- if (w > screenWidth * 0.9) {
33
- w = Math.min(imageSize.width, screenWidth * 0.9);
34
- h = w / ratio;
35
- }
36
- return {
37
- height: h,
38
- width: w
39
- };
40
- }, [screenHeight, screenWidth, imageSize, loading]);
41
- const onLoadStart = (0, _react2.useCallback)(() => setLoading(true), []);
42
- const onLoad = (0, _react2.useCallback)(e => {
43
- const {
44
- width: naturalWidth,
45
- height: naturalHeight
46
- } = e.nativeEvent.source;
47
- setImageSize({
48
- width: naturalWidth,
49
- height: naturalHeight
50
- });
51
- setLoading(false);
52
- }, []);
53
- return /*#__PURE__*/_react2.default.createElement(_reactNative.Modal, {
54
- visible: true,
55
- transparent: true,
56
- animationType: "fade",
57
- onRequestClose: onClose
58
- }, /*#__PURE__*/_react2.default.createElement(_reactNative.View, {
59
- style: styles.modalOverlay
60
- }, /*#__PURE__*/_react2.default.createElement(_reactNative.View, {
61
- style: styles.contentContainer
62
- }, /*#__PURE__*/_react2.default.createElement(_reactNative.View, {
63
- style: [styles.imageContainer, {
64
- width,
65
- height,
66
- opacity: loading ? 0 : 1
67
- }]
68
- }, /*#__PURE__*/_react2.default.createElement(_reactNative.Image, {
69
- source: {
70
- uri: src
71
- },
72
- style: styles.image,
73
- onLoadStart: onLoadStart,
74
- onLoad: onLoad,
75
- resizeMode: "contain"
76
- })), /*#__PURE__*/_react2.default.createElement(_reactNative.TouchableOpacity, {
77
- style: styles.closeButton,
78
- onPress: onClose
79
- }, /*#__PURE__*/_react2.default.createElement(_vectorIcons.Ionicons, {
80
- name: "close",
81
- size: 24,
82
- color: "white"
83
- })), loading && /*#__PURE__*/_react2.default.createElement(_reactNative.View, {
84
- style: styles.loadingContainer
85
- }, /*#__PURE__*/_react2.default.createElement(_Loading.LoadingLogo, {
86
- isLoading: loading,
87
- size: 70
88
- })))));
89
- };
90
- exports.ImageViewOverlay = ImageViewOverlay;
91
- const styles = _reactNative.StyleSheet.create({
92
- modalOverlay: {
93
- flex: 1,
94
- backgroundColor: 'rgba(0, 0, 0, 0.7)'
95
- },
96
- contentContainer: {
97
- flex: 1,
98
- justifyContent: 'center',
99
- alignItems: 'center',
100
- padding: 16
101
- },
102
- imageContainer: {
103
- overflow: 'hidden',
104
- borderRadius: 4
105
- },
106
- image: {
107
- width: '100%',
108
- height: '100%'
109
- },
110
- closeButton: {
111
- position: 'absolute',
112
- top: 16,
113
- right: 16,
114
- width: 40,
115
- height: 40,
116
- borderRadius: 20,
117
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
118
- justifyContent: 'center',
119
- alignItems: 'center'
120
- },
121
- loadingContainer: {
122
- ..._reactNative.StyleSheet.absoluteFillObject,
123
- justifyContent: 'center',
124
- alignItems: 'center'
125
- }
126
- });
127
- //# sourceMappingURL=ImageViewOverlay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_vectorIcons","_react2","_interopRequireWildcard","_reactNative","_Loading","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImageViewOverlay","src","onClose","loading","setLoading","useState","screenWidth","useScreen","s","width","screenHeight","height","imageSize","setImageSize","useMemo","ratio","h","Math","min","w","onLoadStart","useCallback","onLoad","naturalWidth","naturalHeight","nativeEvent","source","createElement","Modal","visible","transparent","animationType","onRequestClose","View","style","styles","modalOverlay","contentContainer","imageContainer","opacity","Image","uri","image","resizeMode","TouchableOpacity","closeButton","onPress","Ionicons","name","size","color","loadingContainer","LoadingLogo","isLoading","exports","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","padding","overflow","borderRadius","position","top","right","absoluteFillObject"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/overlay/ImageViewOverlay.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _ImageViewOverlay = require("./ImageViewOverlay");
7
- Object.keys(_ImageViewOverlay).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _ImageViewOverlay[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _ImageViewOverlay[key];
14
- }
15
- });
16
- });
17
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_ImageViewOverlay","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/overlay/index.ts"],"mappings":";;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,iBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,119 +0,0 @@
1
- import { useScreen } from '@chem-po/react';
2
- import { Ionicons } from '@expo/vector-icons';
3
- import React, { useCallback, useMemo, useState } from 'react';
4
- import { Image, Modal, StyleSheet, TouchableOpacity, View } from 'react-native';
5
- import { LoadingLogo } from '../loading/Loading';
6
- export const ImageViewOverlay = ({
7
- src,
8
- onClose
9
- }) => {
10
- const [loading, setLoading] = useState(true);
11
- const screenWidth = useScreen(s => s.width);
12
- const screenHeight = useScreen(s => s.height);
13
- const [imageSize, setImageSize] = useState({
14
- width: screenWidth / 2,
15
- height: screenHeight / 2
16
- });
17
- const {
18
- height,
19
- width
20
- } = useMemo(() => {
21
- if (loading) return imageSize;
22
- const ratio = imageSize.width / imageSize.height;
23
- let h = Math.min(imageSize.height, screenHeight * 0.9);
24
- let w = h * ratio;
25
- if (w > screenWidth * 0.9) {
26
- w = Math.min(imageSize.width, screenWidth * 0.9);
27
- h = w / ratio;
28
- }
29
- return {
30
- height: h,
31
- width: w
32
- };
33
- }, [screenHeight, screenWidth, imageSize, loading]);
34
- const onLoadStart = useCallback(() => setLoading(true), []);
35
- const onLoad = useCallback(e => {
36
- const {
37
- width: naturalWidth,
38
- height: naturalHeight
39
- } = e.nativeEvent.source;
40
- setImageSize({
41
- width: naturalWidth,
42
- height: naturalHeight
43
- });
44
- setLoading(false);
45
- }, []);
46
- return /*#__PURE__*/React.createElement(Modal, {
47
- visible: true,
48
- transparent: true,
49
- animationType: "fade",
50
- onRequestClose: onClose
51
- }, /*#__PURE__*/React.createElement(View, {
52
- style: styles.modalOverlay
53
- }, /*#__PURE__*/React.createElement(View, {
54
- style: styles.contentContainer
55
- }, /*#__PURE__*/React.createElement(View, {
56
- style: [styles.imageContainer, {
57
- width,
58
- height,
59
- opacity: loading ? 0 : 1
60
- }]
61
- }, /*#__PURE__*/React.createElement(Image, {
62
- source: {
63
- uri: src
64
- },
65
- style: styles.image,
66
- onLoadStart: onLoadStart,
67
- onLoad: onLoad,
68
- resizeMode: "contain"
69
- })), /*#__PURE__*/React.createElement(TouchableOpacity, {
70
- style: styles.closeButton,
71
- onPress: onClose
72
- }, /*#__PURE__*/React.createElement(Ionicons, {
73
- name: "close",
74
- size: 24,
75
- color: "white"
76
- })), loading && /*#__PURE__*/React.createElement(View, {
77
- style: styles.loadingContainer
78
- }, /*#__PURE__*/React.createElement(LoadingLogo, {
79
- isLoading: loading,
80
- size: 70
81
- })))));
82
- };
83
- const styles = StyleSheet.create({
84
- modalOverlay: {
85
- flex: 1,
86
- backgroundColor: 'rgba(0, 0, 0, 0.7)'
87
- },
88
- contentContainer: {
89
- flex: 1,
90
- justifyContent: 'center',
91
- alignItems: 'center',
92
- padding: 16
93
- },
94
- imageContainer: {
95
- overflow: 'hidden',
96
- borderRadius: 4
97
- },
98
- image: {
99
- width: '100%',
100
- height: '100%'
101
- },
102
- closeButton: {
103
- position: 'absolute',
104
- top: 16,
105
- right: 16,
106
- width: 40,
107
- height: 40,
108
- borderRadius: 20,
109
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
110
- justifyContent: 'center',
111
- alignItems: 'center'
112
- },
113
- loadingContainer: {
114
- ...StyleSheet.absoluteFillObject,
115
- justifyContent: 'center',
116
- alignItems: 'center'
117
- }
118
- });
119
- //# sourceMappingURL=ImageViewOverlay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useScreen","Ionicons","React","useCallback","useMemo","useState","Image","Modal","StyleSheet","TouchableOpacity","View","LoadingLogo","ImageViewOverlay","src","onClose","loading","setLoading","screenWidth","s","width","screenHeight","height","imageSize","setImageSize","ratio","h","Math","min","w","onLoadStart","onLoad","e","naturalWidth","naturalHeight","nativeEvent","source","createElement","visible","transparent","animationType","onRequestClose","style","styles","modalOverlay","contentContainer","imageContainer","opacity","uri","image","resizeMode","closeButton","onPress","name","size","color","loadingContainer","isLoading","create","flex","backgroundColor","justifyContent","alignItems","padding","overflow","borderRadius","position","top","right","absoluteFillObject"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/overlay/ImageViewOverlay.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export * from './ImageViewOverlay';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/overlay/index.ts"],"mappings":"AAAA,cAAc,oBAAoB","ignoreList":[]}
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export declare const ImageViewOverlay: ({ src, onClose }: {
3
- src: string;
4
- onClose: () => void;
5
- }) => React.JSX.Element;
6
- //# sourceMappingURL=ImageViewOverlay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageViewOverlay.d.ts","sourceRoot":"","sources":["../../../../src/components/overlay/ImageViewOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAI7D,eAAO,MAAM,gBAAgB,GAAI,kBAAkB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,sBA4DtF,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './ImageViewOverlay';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/overlay/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}