@unif/react-native-camera 2.6.0 → 2.7.0

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 (259) hide show
  1. package/README.md +14 -0
  2. package/lib/module/camera/Camera.js +96 -27
  3. package/lib/module/camera/Camera.js.map +1 -1
  4. package/lib/module/camera/CaptureFlash.js +38 -0
  5. package/lib/module/camera/CaptureFlash.js.map +1 -0
  6. package/lib/module/camera/CaptureFlash.test.js +19 -0
  7. package/lib/module/camera/CaptureFlash.test.js.map +1 -0
  8. package/lib/module/camera/Container.js +166 -64
  9. package/lib/module/camera/Container.js.map +1 -1
  10. package/lib/module/camera/FocusIndicator.js +99 -23
  11. package/lib/module/camera/FocusIndicator.js.map +1 -1
  12. package/lib/module/camera/FocusIndicator.test.js +27 -0
  13. package/lib/module/camera/FocusIndicator.test.js.map +1 -0
  14. package/lib/module/camera/colors/dark.js +22 -0
  15. package/lib/module/camera/colors/dark.js.map +1 -0
  16. package/lib/module/camera/colors/dark.test.js +10 -0
  17. package/lib/module/camera/colors/dark.test.js.map +1 -0
  18. package/lib/module/camera/footer/ActionRow.js +65 -0
  19. package/lib/module/camera/footer/ActionRow.js.map +1 -0
  20. package/lib/module/camera/footer/ActionRow.test.js +53 -0
  21. package/lib/module/camera/footer/ActionRow.test.js.map +1 -0
  22. package/lib/module/camera/footer/FlipButton.js +31 -0
  23. package/lib/module/camera/footer/FlipButton.js.map +1 -0
  24. package/lib/module/camera/footer/FlipButton.test.js +16 -0
  25. package/lib/module/camera/footer/FlipButton.test.js.map +1 -0
  26. package/lib/module/camera/footer/ModeSwitcherPill.js +89 -0
  27. package/lib/module/camera/footer/ModeSwitcherPill.js.map +1 -0
  28. package/lib/module/camera/footer/ModeSwitcherPill.test.js +43 -0
  29. package/lib/module/camera/footer/ModeSwitcherPill.test.js.map +1 -0
  30. package/lib/module/camera/footer/RecordingTimer.js +66 -0
  31. package/lib/module/camera/footer/RecordingTimer.js.map +1 -0
  32. package/lib/module/camera/footer/RecordingTimer.test.js +20 -0
  33. package/lib/module/camera/footer/RecordingTimer.test.js.map +1 -0
  34. package/lib/module/camera/footer/Shutter.js +70 -0
  35. package/lib/module/camera/footer/Shutter.js.map +1 -0
  36. package/lib/module/camera/footer/Shutter.test.js +42 -0
  37. package/lib/module/camera/footer/Shutter.test.js.map +1 -0
  38. package/lib/module/camera/footer/ThumbnailStack.js +71 -0
  39. package/lib/module/camera/footer/ThumbnailStack.js.map +1 -0
  40. package/lib/module/camera/footer/ThumbnailStack.test.js +30 -0
  41. package/lib/module/camera/footer/ThumbnailStack.test.js.map +1 -0
  42. package/lib/module/camera/footer/ZoomChips.js +57 -0
  43. package/lib/module/camera/footer/ZoomChips.js.map +1 -0
  44. package/lib/module/camera/footer/ZoomChips.test.js +17 -0
  45. package/lib/module/camera/footer/ZoomChips.test.js.map +1 -0
  46. package/lib/module/camera/footer/index.js +7 -1
  47. package/lib/module/camera/footer/index.js.map +1 -1
  48. package/lib/module/camera/icons/VolumeIcon.js +44 -0
  49. package/lib/module/camera/icons/VolumeIcon.js.map +1 -0
  50. package/lib/module/camera/icons/VolumeIcon.test.js +18 -0
  51. package/lib/module/camera/icons/VolumeIcon.test.js.map +1 -0
  52. package/lib/module/camera/index.js +3 -1
  53. package/lib/module/camera/index.js.map +1 -1
  54. package/lib/module/camera/preview/PreviewBottomBar.js +69 -0
  55. package/lib/module/camera/preview/PreviewBottomBar.js.map +1 -0
  56. package/lib/module/camera/preview/PreviewBottomBar.test.js +46 -0
  57. package/lib/module/camera/preview/PreviewBottomBar.test.js.map +1 -0
  58. package/lib/module/camera/preview/PreviewOverlay.js +89 -0
  59. package/lib/module/camera/preview/PreviewOverlay.js.map +1 -0
  60. package/lib/module/camera/preview/PreviewOverlay.test.js +45 -0
  61. package/lib/module/camera/preview/PreviewOverlay.test.js.map +1 -0
  62. package/lib/module/camera/preview/PreviewTopBar.js +96 -0
  63. package/lib/module/camera/preview/PreviewTopBar.js.map +1 -0
  64. package/lib/module/camera/preview/PreviewTopBar.test.js +44 -0
  65. package/lib/module/camera/preview/PreviewTopBar.test.js.map +1 -0
  66. package/lib/module/camera/preview/groupTypes.js +11 -0
  67. package/lib/module/camera/preview/groupTypes.js.map +1 -0
  68. package/lib/module/camera/preview/groupTypes.test.js +25 -0
  69. package/lib/module/camera/preview/groupTypes.test.js.map +1 -0
  70. package/lib/module/camera/preview/index.js +3 -4
  71. package/lib/module/camera/preview/index.js.map +1 -1
  72. package/lib/module/camera/setup/SideRail.js +138 -0
  73. package/lib/module/camera/setup/SideRail.js.map +1 -0
  74. package/lib/module/camera/setup/SideRail.test.js +49 -0
  75. package/lib/module/camera/setup/SideRail.test.js.map +1 -0
  76. package/lib/module/camera/setup/index.js +1 -1
  77. package/lib/module/camera/setup/index.js.map +1 -1
  78. package/lib/module/components/Carousel/SlideItem.js +5 -3
  79. package/lib/module/components/Carousel/SlideItem.js.map +1 -1
  80. package/lib/module/components/Carousel/SlideItem.test.js +39 -0
  81. package/lib/module/components/Carousel/SlideItem.test.js.map +1 -0
  82. package/lib/module/components/VideoPlayer.js +34 -0
  83. package/lib/module/components/VideoPlayer.js.map +1 -0
  84. package/lib/module/components/VideoPlayer.test.js +15 -0
  85. package/lib/module/components/VideoPlayer.test.js.map +1 -0
  86. package/lib/module/components/index.js +0 -1
  87. package/lib/module/components/index.js.map +1 -1
  88. package/lib/module/hooks/index.js +0 -1
  89. package/lib/module/hooks/index.js.map +1 -1
  90. package/lib/typescript/src/camera/Camera.d.ts +3 -0
  91. package/lib/typescript/src/camera/Camera.d.ts.map +1 -1
  92. package/lib/typescript/src/camera/CaptureFlash.d.ts +6 -0
  93. package/lib/typescript/src/camera/CaptureFlash.d.ts.map +1 -0
  94. package/lib/typescript/src/camera/CaptureFlash.test.d.ts +2 -0
  95. package/lib/typescript/src/camera/CaptureFlash.test.d.ts.map +1 -0
  96. package/lib/typescript/src/camera/Container.d.ts.map +1 -1
  97. package/lib/typescript/src/camera/FocusIndicator.d.ts.map +1 -1
  98. package/lib/typescript/src/camera/FocusIndicator.test.d.ts +2 -0
  99. package/lib/typescript/src/camera/FocusIndicator.test.d.ts.map +1 -0
  100. package/lib/typescript/src/camera/colors/dark.d.ts +18 -0
  101. package/lib/typescript/src/camera/colors/dark.d.ts.map +1 -0
  102. package/lib/typescript/src/camera/colors/dark.test.d.ts +2 -0
  103. package/lib/typescript/src/camera/colors/dark.test.d.ts.map +1 -0
  104. package/lib/typescript/src/camera/footer/ActionRow.d.ts +14 -0
  105. package/lib/typescript/src/camera/footer/ActionRow.d.ts.map +1 -0
  106. package/lib/typescript/src/camera/footer/ActionRow.test.d.ts +2 -0
  107. package/lib/typescript/src/camera/footer/ActionRow.test.d.ts.map +1 -0
  108. package/lib/typescript/src/camera/footer/FlipButton.d.ts +4 -0
  109. package/lib/typescript/src/camera/footer/FlipButton.d.ts.map +1 -0
  110. package/lib/typescript/src/camera/footer/FlipButton.test.d.ts +2 -0
  111. package/lib/typescript/src/camera/footer/FlipButton.test.d.ts.map +1 -0
  112. package/lib/typescript/src/camera/footer/ModeSwitcherPill.d.ts +10 -0
  113. package/lib/typescript/src/camera/footer/ModeSwitcherPill.d.ts.map +1 -0
  114. package/lib/typescript/src/camera/footer/ModeSwitcherPill.test.d.ts +2 -0
  115. package/lib/typescript/src/camera/footer/ModeSwitcherPill.test.d.ts.map +1 -0
  116. package/lib/typescript/src/camera/footer/RecordingTimer.d.ts +5 -0
  117. package/lib/typescript/src/camera/footer/RecordingTimer.d.ts.map +1 -0
  118. package/lib/typescript/src/camera/footer/RecordingTimer.test.d.ts +2 -0
  119. package/lib/typescript/src/camera/footer/RecordingTimer.test.d.ts.map +1 -0
  120. package/lib/typescript/src/camera/footer/Shutter.d.ts +9 -0
  121. package/lib/typescript/src/camera/footer/Shutter.d.ts.map +1 -0
  122. package/lib/typescript/src/camera/footer/Shutter.test.d.ts +2 -0
  123. package/lib/typescript/src/camera/footer/Shutter.test.d.ts.map +1 -0
  124. package/lib/typescript/src/camera/footer/ThumbnailStack.d.ts +8 -0
  125. package/lib/typescript/src/camera/footer/ThumbnailStack.d.ts.map +1 -0
  126. package/lib/typescript/src/camera/footer/ThumbnailStack.test.d.ts +2 -0
  127. package/lib/typescript/src/camera/footer/ThumbnailStack.test.d.ts.map +1 -0
  128. package/lib/typescript/src/camera/footer/ZoomChips.d.ts +5 -0
  129. package/lib/typescript/src/camera/footer/ZoomChips.d.ts.map +1 -0
  130. package/lib/typescript/src/camera/footer/ZoomChips.test.d.ts +2 -0
  131. package/lib/typescript/src/camera/footer/ZoomChips.test.d.ts.map +1 -0
  132. package/lib/typescript/src/camera/footer/index.d.ts +7 -1
  133. package/lib/typescript/src/camera/footer/index.d.ts.map +1 -1
  134. package/lib/typescript/src/camera/icons/VolumeIcon.d.ts +8 -0
  135. package/lib/typescript/src/camera/icons/VolumeIcon.d.ts.map +1 -0
  136. package/lib/typescript/src/camera/icons/VolumeIcon.test.d.ts +2 -0
  137. package/lib/typescript/src/camera/icons/VolumeIcon.test.d.ts.map +1 -0
  138. package/lib/typescript/src/camera/index.d.ts +3 -1
  139. package/lib/typescript/src/camera/index.d.ts.map +1 -1
  140. package/lib/typescript/src/camera/preview/PreviewBottomBar.d.ts +12 -0
  141. package/lib/typescript/src/camera/preview/PreviewBottomBar.d.ts.map +1 -0
  142. package/lib/typescript/src/camera/preview/PreviewBottomBar.test.d.ts +2 -0
  143. package/lib/typescript/src/camera/preview/PreviewBottomBar.test.d.ts.map +1 -0
  144. package/lib/typescript/src/camera/preview/PreviewOverlay.d.ts +12 -0
  145. package/lib/typescript/src/camera/preview/PreviewOverlay.d.ts.map +1 -0
  146. package/lib/typescript/src/camera/preview/PreviewOverlay.test.d.ts +2 -0
  147. package/lib/typescript/src/camera/preview/PreviewOverlay.test.d.ts.map +1 -0
  148. package/lib/typescript/src/camera/preview/PreviewTopBar.d.ts +10 -0
  149. package/lib/typescript/src/camera/preview/PreviewTopBar.d.ts.map +1 -0
  150. package/lib/typescript/src/camera/preview/PreviewTopBar.test.d.ts +2 -0
  151. package/lib/typescript/src/camera/preview/PreviewTopBar.test.d.ts.map +1 -0
  152. package/lib/typescript/src/camera/preview/groupTypes.d.ts +4 -0
  153. package/lib/typescript/src/camera/preview/groupTypes.d.ts.map +1 -0
  154. package/lib/typescript/src/camera/preview/groupTypes.test.d.ts +2 -0
  155. package/lib/typescript/src/camera/preview/groupTypes.test.d.ts.map +1 -0
  156. package/lib/typescript/src/camera/preview/index.d.ts +3 -4
  157. package/lib/typescript/src/camera/preview/index.d.ts.map +1 -1
  158. package/lib/typescript/src/camera/setup/SideRail.d.ts +15 -0
  159. package/lib/typescript/src/camera/setup/SideRail.d.ts.map +1 -0
  160. package/lib/typescript/src/camera/setup/SideRail.test.d.ts +2 -0
  161. package/lib/typescript/src/camera/setup/SideRail.test.d.ts.map +1 -0
  162. package/lib/typescript/src/camera/setup/index.d.ts +2 -1
  163. package/lib/typescript/src/camera/setup/index.d.ts.map +1 -1
  164. package/lib/typescript/src/components/Carousel/SlideItem.d.ts.map +1 -1
  165. package/lib/typescript/src/components/Carousel/SlideItem.test.d.ts +2 -0
  166. package/lib/typescript/src/components/Carousel/SlideItem.test.d.ts.map +1 -0
  167. package/lib/typescript/src/components/VideoPlayer.d.ts +4 -0
  168. package/lib/typescript/src/components/VideoPlayer.d.ts.map +1 -0
  169. package/lib/typescript/src/components/VideoPlayer.test.d.ts +2 -0
  170. package/lib/typescript/src/components/VideoPlayer.test.d.ts.map +1 -0
  171. package/lib/typescript/src/components/index.d.ts +0 -1
  172. package/lib/typescript/src/components/index.d.ts.map +1 -1
  173. package/lib/typescript/src/hooks/index.d.ts +0 -1
  174. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  175. package/package.json +7 -3
  176. package/src/camera/Camera.tsx +117 -26
  177. package/src/camera/CaptureFlash.test.tsx +11 -0
  178. package/src/camera/CaptureFlash.tsx +42 -0
  179. package/src/camera/Container.tsx +158 -64
  180. package/src/camera/FocusIndicator.test.tsx +17 -0
  181. package/src/camera/FocusIndicator.tsx +111 -27
  182. package/src/camera/colors/dark.test.ts +8 -0
  183. package/src/camera/colors/dark.ts +19 -0
  184. package/src/camera/footer/ActionRow.test.tsx +44 -0
  185. package/src/camera/footer/ActionRow.tsx +80 -0
  186. package/src/camera/footer/FlipButton.test.tsx +9 -0
  187. package/src/camera/footer/FlipButton.tsx +22 -0
  188. package/src/camera/footer/ModeSwitcherPill.test.tsx +29 -0
  189. package/src/camera/footer/ModeSwitcherPill.tsx +97 -0
  190. package/src/camera/footer/RecordingTimer.test.tsx +14 -0
  191. package/src/camera/footer/RecordingTimer.tsx +58 -0
  192. package/src/camera/footer/Shutter.test.tsx +26 -0
  193. package/src/camera/footer/Shutter.tsx +71 -0
  194. package/src/camera/footer/ThumbnailStack.test.tsx +19 -0
  195. package/src/camera/footer/ThumbnailStack.tsx +58 -0
  196. package/src/camera/footer/ZoomChips.test.tsx +9 -0
  197. package/src/camera/footer/ZoomChips.tsx +53 -0
  198. package/src/camera/footer/index.tsx +7 -1
  199. package/src/camera/icons/VolumeIcon.test.tsx +9 -0
  200. package/src/camera/icons/VolumeIcon.tsx +39 -0
  201. package/src/camera/index.tsx +11 -1
  202. package/src/camera/preview/PreviewBottomBar.test.tsx +43 -0
  203. package/src/camera/preview/PreviewBottomBar.tsx +79 -0
  204. package/src/camera/preview/PreviewOverlay.test.tsx +45 -0
  205. package/src/camera/preview/PreviewOverlay.tsx +99 -0
  206. package/src/camera/preview/PreviewTopBar.test.tsx +46 -0
  207. package/src/camera/preview/PreviewTopBar.tsx +91 -0
  208. package/src/camera/preview/groupTypes.test.ts +34 -0
  209. package/src/camera/preview/groupTypes.ts +15 -0
  210. package/src/camera/preview/index.tsx +3 -4
  211. package/src/camera/setup/SideRail.test.tsx +37 -0
  212. package/src/camera/setup/SideRail.tsx +161 -0
  213. package/src/camera/setup/index.tsx +2 -1
  214. package/src/components/Carousel/SlideItem.test.tsx +27 -0
  215. package/src/components/Carousel/SlideItem.tsx +11 -7
  216. package/src/components/VideoPlayer.test.tsx +8 -0
  217. package/src/components/VideoPlayer.tsx +30 -0
  218. package/src/components/index.tsx +0 -1
  219. package/src/hooks/index.ts +0 -1
  220. package/lib/module/camera/footer/Footer.js +0 -94
  221. package/lib/module/camera/footer/Footer.js.map +0 -1
  222. package/lib/module/camera/preview/PreView.js +0 -43
  223. package/lib/module/camera/preview/PreView.js.map +0 -1
  224. package/lib/module/camera/preview/PreViewContainer.js +0 -33
  225. package/lib/module/camera/preview/PreViewContainer.js.map +0 -1
  226. package/lib/module/camera/preview/PreviewFooter.js +0 -36
  227. package/lib/module/camera/preview/PreviewFooter.js.map +0 -1
  228. package/lib/module/camera/preview/SinglePre.js +0 -32
  229. package/lib/module/camera/preview/SinglePre.js.map +0 -1
  230. package/lib/module/camera/setup/SetUp.js +0 -74
  231. package/lib/module/camera/setup/SetUp.js.map +0 -1
  232. package/lib/module/components/PreviewThumbnail.js +0 -39
  233. package/lib/module/components/PreviewThumbnail.js.map +0 -1
  234. package/lib/module/hooks/useConfirm.js +0 -16
  235. package/lib/module/hooks/useConfirm.js.map +0 -1
  236. package/lib/typescript/src/camera/footer/Footer.d.ts +0 -14
  237. package/lib/typescript/src/camera/footer/Footer.d.ts.map +0 -1
  238. package/lib/typescript/src/camera/preview/PreView.d.ts +0 -7
  239. package/lib/typescript/src/camera/preview/PreView.d.ts.map +0 -1
  240. package/lib/typescript/src/camera/preview/PreViewContainer.d.ts +0 -9
  241. package/lib/typescript/src/camera/preview/PreViewContainer.d.ts.map +0 -1
  242. package/lib/typescript/src/camera/preview/PreviewFooter.d.ts +0 -7
  243. package/lib/typescript/src/camera/preview/PreviewFooter.d.ts.map +0 -1
  244. package/lib/typescript/src/camera/preview/SinglePre.d.ts +0 -7
  245. package/lib/typescript/src/camera/preview/SinglePre.d.ts.map +0 -1
  246. package/lib/typescript/src/camera/setup/SetUp.d.ts +0 -13
  247. package/lib/typescript/src/camera/setup/SetUp.d.ts.map +0 -1
  248. package/lib/typescript/src/components/PreviewThumbnail.d.ts +0 -9
  249. package/lib/typescript/src/components/PreviewThumbnail.d.ts.map +0 -1
  250. package/lib/typescript/src/hooks/useConfirm.d.ts +0 -2
  251. package/lib/typescript/src/hooks/useConfirm.d.ts.map +0 -1
  252. package/src/camera/footer/Footer.tsx +0 -113
  253. package/src/camera/preview/PreView.tsx +0 -32
  254. package/src/camera/preview/PreViewContainer.tsx +0 -30
  255. package/src/camera/preview/PreviewFooter.tsx +0 -38
  256. package/src/camera/preview/SinglePre.tsx +0 -30
  257. package/src/camera/setup/SetUp.tsx +0 -93
  258. package/src/components/PreviewThumbnail.tsx +0 -45
  259. package/src/hooks/useConfirm.tsx +0 -11
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","Linking","StyleSheet","View","useCameraDevice","useCameraPermission","useSharedValue","NoCamera","NoPermission","Loading","Camera","PreViewContainer","Footer","SetUp","jsx","_jsx","jsxs","_jsxs","NEUTRAL_ZOOM","Container","config","onSettle","settledRef","settle","r","current","code","data","message","hasPermission","requestPermission","state","setState","cancelled","then","ok","catch","initialPosition","cameraMode","type","device","physicalDevices","cameraRef","photos","setPhotos","previewing","setPreviewing","recording","setRecording","modeIndex","setModeIndex","currentMode","flash","setFlash","aspectRatio","setAspectRatio","zoomShared","lensLabel","setLensLabel","toFixed","onShutter","mode","startVideo","f","stopVideo","capture","prev","onCancel","onOpenSettings","openSettings","style","styles","root","testID","children","files","onRetake","onConfirm","onToggleLens","startsWith","minZoom","value","ref","onChangeFlash","onChangeAspectRatio","modes","currentIndex","onSelectMode","i","dataRetainedMode","onFinishBurst","undefined","burstCount","length","create","flex","backgroundColor","justifyContent","alignItems"],"sourceRoot":"../../../src","sources":["camera/Container.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Linking","StyleSheet","View","useCameraDevice","useCameraPermission","useSharedValue","useSafeAreaInsets","r","NoCamera","NoPermission","Loading","Camera","PreviewOverlay","CaptureFlash","SideRail","ZoomChips","ModeSwitcherPill","ActionRow","RecordingTimer","DARK","jsx","_jsx","jsxs","_jsxs","Container","config","onSettle","settledRef","settle","result","current","code","data","message","hasPermission","requestPermission","state","setState","cancelled","then","ok","catch","insets","initialPosition","cameraMode","type","position","setPosition","flipNonce","setFlipNonce","device","physicalDevices","cameraRef","photos","setPhotos","previewing","setPreviewing","previewVariant","setPreviewVariant","recording","setRecording","modeIndex","setModeIndex","currentMode","flash","setFlash","flashMode","sound","setSound","grid","setGrid","aspectRatio","setAspectRatio","flashNonce","setFlashNonce","recSeconds","setRecSeconds","zoom","setZoom","zoomShared","id","setInterval","s","clearInterval","onShutter","mode","startVideo","f","stopVideo","prev","capture","n","dataRetainedMode","onFlip","p","onSelectMode","i","onCancel","onOpenSettings","openSettings","style","styles","root","testID","children","files","variant","onRetake","onSave","onBack","onDelete","next","filter","x","length","modeItems","map","m","key","label","ref","sideRail","bottom","onChangeFlash","onChangeAspectRatio","onToggleSound","v","onToggleGrid","zoomChips","onSelect","z","clamped","Math","min","max","minZoom","maxZoom","value","paddingBottom","center","seconds","items","currentIndex","latestUri","at","uri","count","onOpenPreview","trigger","create","flex","backgroundColor","black","justifyContent","alignItems","left","zIndex","right","paddingTop","gap"],"sourceRoot":"../../../src","sources":["camera/Container.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,49 +2,125 @@
2
2
 
3
3
  import { useEffect, useRef } from 'react';
4
4
  import { Animated, StyleSheet } from 'react-native';
5
+ import Svg, { Circle, Line, Path } from 'react-native-svg';
5
6
  import { r } from '@unif/react-native-design';
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- const SIZE = r(80);
7
+ import { DARK } from "./colors/dark.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ // 聚焦指示器(取景态固定深色,品牌橙):四角括号 + 中心点 + 右侧曝光小太阳。
10
+ // 设计稿 viewBox 390×844 视口下盒子 110×88,transformOrigin 居中(44,44)。
11
+ // 多段动画:淡入放大 1.35 → 回弹 0.94 → 1 → 定格(opacity 0.72),约 1.3s 后 onAnimationEnd()。
12
+ const VB_W = 110;
13
+ const VB_H = 88;
14
+ const W = r(VB_W);
15
+ const H = r(VB_H);
16
+
17
+ // 曝光小太阳中心(右侧)与半径,8 道短射线绕一圈。
18
+ const SUN_CX = 97;
19
+ const SUN_CY = 44;
20
+ const SUN_R = 4.5;
21
+ const RAY_INNER = SUN_R + 2.5;
22
+ const RAY_OUTER = SUN_R + 6;
23
+ const RAY_ANGLES = [0, 45, 90, 135, 180, 225, 270, 315];
24
+ const AnimatedSvg = Animated.createAnimatedComponent(Svg);
8
25
  export function FocusIndicator({
9
26
  point,
10
27
  onAnimationEnd
11
28
  }) {
12
- const scale = useRef(new Animated.Value(1.6)).current;
13
- const opacity = useRef(new Animated.Value(1)).current;
29
+ const scale = useRef(new Animated.Value(1.35)).current;
30
+ const opacity = useRef(new Animated.Value(0)).current;
14
31
  useEffect(() => {
15
- Animated.parallel([Animated.timing(scale, {
32
+ const anim = Animated.sequence([Animated.parallel([Animated.timing(opacity, {
33
+ toValue: 1,
34
+ duration: 120,
35
+ useNativeDriver: true
36
+ }), Animated.spring(scale, {
37
+ toValue: 0.94,
38
+ useNativeDriver: true
39
+ })]), Animated.spring(scale, {
16
40
  toValue: 1,
17
- duration: 200,
18
41
  useNativeDriver: true
19
- }), Animated.sequence([Animated.delay(600), Animated.timing(opacity, {
20
- toValue: 0,
21
- duration: 200,
42
+ }), Animated.delay(800), Animated.timing(opacity, {
43
+ toValue: 0.72,
44
+ duration: 180,
22
45
  useNativeDriver: true
23
- })])]).start(() => onAnimationEnd());
46
+ })]);
47
+ anim.start(() => onAnimationEnd());
48
+ return () => anim.stop();
24
49
  }, [scale, opacity, onAnimationEnd]);
25
50
  return /*#__PURE__*/_jsx(Animated.View, {
51
+ pointerEvents: "none",
52
+ testID: "focus-indicator",
26
53
  style: [styles.box, {
27
- left: point.x - SIZE / 2,
28
- top: point.y - SIZE / 2,
54
+ left: point.x - W / 2,
55
+ top: point.y - H / 2,
56
+ opacity,
29
57
  transform: [{
30
58
  scale
31
- }],
32
- opacity
59
+ }]
33
60
  }],
34
- pointerEvents: "none",
35
- testID: "focus-indicator"
61
+ children: /*#__PURE__*/_jsxs(AnimatedSvg, {
62
+ width: W,
63
+ height: H,
64
+ viewBox: `0 0 ${VB_W} ${VB_H}`,
65
+ children: [/*#__PURE__*/_jsx(Path, {
66
+ d: "M23 31v-8h8 M79 23h8v8 M87 57v8h-8 M31 65h-8v-8",
67
+ stroke: DARK.orange,
68
+ strokeWidth: 2,
69
+ strokeLinecap: "round",
70
+ strokeLinejoin: "round",
71
+ fill: "none"
72
+ }), /*#__PURE__*/_jsx(Circle, {
73
+ cx: 55,
74
+ cy: 44,
75
+ r: 2.4,
76
+ fill: DARK.orange
77
+ }), /*#__PURE__*/_jsx(Circle, {
78
+ cx: SUN_CX,
79
+ cy: SUN_CY,
80
+ r: SUN_R,
81
+ stroke: DARK.orange,
82
+ strokeWidth: 1.6,
83
+ fill: "rgba(235,110,0,0.2)"
84
+ }), RAY_ANGLES.map(deg => {
85
+ const rad = deg * Math.PI / 180;
86
+ const cos = Math.cos(rad);
87
+ const sin = Math.sin(rad);
88
+ return /*#__PURE__*/_jsx(Line, {
89
+ x1: SUN_CX + cos * RAY_INNER,
90
+ y1: SUN_CY + sin * RAY_INNER,
91
+ x2: SUN_CX + cos * RAY_OUTER,
92
+ y2: SUN_CY + sin * RAY_OUTER,
93
+ stroke: DARK.orange,
94
+ strokeWidth: 1.4,
95
+ strokeLinecap: "round"
96
+ }, deg);
97
+ }), /*#__PURE__*/_jsx(Line, {
98
+ x1: SUN_CX,
99
+ y1: 20,
100
+ x2: SUN_CX,
101
+ y2: 34,
102
+ stroke: DARK.orange,
103
+ strokeWidth: 1.6,
104
+ opacity: 0.45,
105
+ strokeLinecap: "round"
106
+ }), /*#__PURE__*/_jsx(Line, {
107
+ x1: SUN_CX,
108
+ y1: 54,
109
+ x2: SUN_CX,
110
+ y2: 68,
111
+ stroke: DARK.orange,
112
+ strokeWidth: 1.6,
113
+ opacity: 0.45,
114
+ strokeLinecap: "round"
115
+ })]
116
+ })
36
117
  });
37
118
  }
38
119
  const styles = StyleSheet.create({
39
120
  box: {
40
121
  position: 'absolute',
41
- width: SIZE,
42
- height: SIZE,
43
- borderWidth: 1.5,
44
- // 对焦黄框:相机 UX 惯例(iOS / Android 系统相机统一用饱和黄高对比度),
45
- // 不走主题 token —— 任何主题下都需要在镜头预览(黑底为主)上一眼可见.
46
- borderColor: 'yellow',
47
- borderRadius: r(6)
122
+ width: W,
123
+ height: H
48
124
  }
49
125
  });
50
126
  //# sourceMappingURL=FocusIndicator.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","Animated","StyleSheet","r","jsx","_jsx","SIZE","FocusIndicator","point","onAnimationEnd","scale","Value","current","opacity","parallel","timing","toValue","duration","useNativeDriver","sequence","delay","start","View","style","styles","box","left","x","top","y","transform","pointerEvents","testID","create","position","width","height","borderWidth","borderColor","borderRadius"],"sourceRoot":"../../../src","sources":["camera/FocusIndicator.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AACnD,SAASC,CAAC,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAK9C,MAAMC,IAAI,GAAGH,CAAC,CAAC,EAAE,CAAC;AAElB,OAAO,SAASI,cAAcA,CAAC;EAAEC,KAAK;EAAEC;AAAsB,CAAC,EAAE;EAC/D,MAAMC,KAAK,GAAGV,MAAM,CAAC,IAAIC,QAAQ,CAACU,KAAK,CAAC,GAAG,CAAC,CAAC,CAACC,OAAO;EACrD,MAAMC,OAAO,GAAGb,MAAM,CAAC,IAAIC,QAAQ,CAACU,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAErDb,SAAS,CAAC,MAAM;IACdE,QAAQ,CAACa,QAAQ,CAAC,CAChBb,QAAQ,CAACc,MAAM,CAACL,KAAK,EAAE;MACrBM,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE,GAAG;MACbC,eAAe,EAAE;IACnB,CAAC,CAAC,EACFjB,QAAQ,CAACkB,QAAQ,CAAC,CAChBlB,QAAQ,CAACmB,KAAK,CAAC,GAAG,CAAC,EACnBnB,QAAQ,CAACc,MAAM,CAACF,OAAO,EAAE;MACvBG,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE,GAAG;MACbC,eAAe,EAAE;IACnB,CAAC,CAAC,CACH,CAAC,CACH,CAAC,CAACG,KAAK,CAAC,MAAMZ,cAAc,CAAC,CAAC,CAAC;EAClC,CAAC,EAAE,CAACC,KAAK,EAAEG,OAAO,EAAEJ,cAAc,CAAC,CAAC;EAEpC,oBACEJ,IAAA,CAACJ,QAAQ,CAACqB,IAAI;IACZC,KAAK,EAAE,CACLC,MAAM,CAACC,GAAG,EACV;MACEC,IAAI,EAAElB,KAAK,CAACmB,CAAC,GAAGrB,IAAI,GAAG,CAAC;MACxBsB,GAAG,EAAEpB,KAAK,CAACqB,CAAC,GAAGvB,IAAI,GAAG,CAAC;MACvBwB,SAAS,EAAE,CAAC;QAAEpB;MAAM,CAAC,CAAC;MACtBG;IACF,CAAC,CACD;IACFkB,aAAa,EAAC,MAAM;IACpBC,MAAM,EAAC;EAAiB,CACzB,CAAC;AAEN;AAEA,MAAMR,MAAM,GAAGtB,UAAU,CAAC+B,MAAM,CAAC;EAC/BR,GAAG,EAAE;IACHS,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE7B,IAAI;IACX8B,MAAM,EAAE9B,IAAI;IACZ+B,WAAW,EAAE,GAAG;IAChB;IACA;IACAC,WAAW,EAAE,QAAQ;IACrBC,YAAY,EAAEpC,CAAC,CAAC,CAAC;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","Animated","StyleSheet","Svg","Circle","Line","Path","r","DARK","jsx","_jsx","jsxs","_jsxs","VB_W","VB_H","W","H","SUN_CX","SUN_CY","SUN_R","RAY_INNER","RAY_OUTER","RAY_ANGLES","AnimatedSvg","createAnimatedComponent","FocusIndicator","point","onAnimationEnd","scale","Value","current","opacity","anim","sequence","parallel","timing","toValue","duration","useNativeDriver","spring","delay","start","stop","View","pointerEvents","testID","style","styles","box","left","x","top","y","transform","children","width","height","viewBox","d","stroke","orange","strokeWidth","strokeLinecap","strokeLinejoin","fill","cx","cy","map","deg","rad","Math","PI","cos","sin","x1","y1","x2","y2","create","position"],"sourceRoot":"../../../src","sources":["camera/FocusIndicator.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import { render } from '@testing-library/react-native';
4
+ import { FocusIndicator } from "./FocusIndicator.js";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ it('renders focus brackets without crashing', () => {
7
+ expect(() => render(/*#__PURE__*/_jsx(FocusIndicator, {
8
+ point: {
9
+ x: 100,
10
+ y: 200
11
+ },
12
+ onAnimationEnd: () => {}
13
+ }))).not.toThrow();
14
+ });
15
+ it('exposes the focus-indicator testID', () => {
16
+ const {
17
+ getByTestId
18
+ } = render(/*#__PURE__*/_jsx(FocusIndicator, {
19
+ point: {
20
+ x: 100,
21
+ y: 200
22
+ },
23
+ onAnimationEnd: () => {}
24
+ }));
25
+ expect(getByTestId('focus-indicator')).toBeTruthy();
26
+ });
27
+ //# sourceMappingURL=FocusIndicator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["render","FocusIndicator","jsx","_jsx","it","expect","point","x","y","onAnimationEnd","not","toThrow","getByTestId","toBeTruthy"],"sourceRoot":"../../../src","sources":["camera/FocusIndicator.test.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,+BAA+B;AACtD,SAASC,cAAc,QAAQ,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElDC,EAAE,CAAC,yCAAyC,EAAE,MAAM;EAClDC,MAAM,CAAC,MACLL,MAAM,cACJG,IAAA,CAACF,cAAc;IAACK,KAAK,EAAE;MAAEC,CAAC,EAAE,GAAG;MAAEC,CAAC,EAAE;IAAI,CAAE;IAACC,cAAc,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAE,CACxE,CACF,CAAC,CAACC,GAAG,CAACC,OAAO,CAAC,CAAC;AACjB,CAAC,CAAC;AAEFP,EAAE,CAAC,oCAAoC,EAAE,MAAM;EAC7C,MAAM;IAAEQ;EAAY,CAAC,GAAGZ,MAAM,cAC5BG,IAAA,CAACF,cAAc;IAACK,KAAK,EAAE;MAAEC,CAAC,EAAE,GAAG;MAAEC,CAAC,EAAE;IAAI,CAAE;IAACC,cAAc,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAE,CACxE,CAAC;EACDJ,MAAM,CAACO,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAACC,UAAU,CAAC,CAAC;AACrD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ // 取景态固定深色常量。取景器是相机画面,永远深色,不跟随 light/dark 主题;
4
+ // 只有预览/弹窗/Toast(2b)走 useColors()。品牌橙两主题都不变。
5
+ export const DARK = {
6
+ white: '#fff',
7
+ white95: 'rgba(255,255,255,0.95)',
8
+ white65: 'rgba(255,255,255,0.65)',
9
+ white40: 'rgba(255,255,255,0.4)',
10
+ white25: 'rgba(255,255,255,0.25)',
11
+ white12: 'rgba(255,255,255,0.12)',
12
+ white08: 'rgba(255,255,255,0.08)',
13
+ black: '#000',
14
+ black42: 'rgba(0,0,0,0.42)',
15
+ black45: 'rgba(0,0,0,0.45)',
16
+ orange: '#EB6E00',
17
+ orange16: 'rgba(235,110,0,0.16)',
18
+ orange18: 'rgba(235,110,0,0.18)',
19
+ orange95: 'rgba(235,110,0,0.95)',
20
+ recRed: '#ff3b30'
21
+ };
22
+ //# sourceMappingURL=dark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DARK","white","white95","white65","white40","white25","white12","white08","black","black42","black45","orange","orange16","orange18","orange95","recRed"],"sourceRoot":"../../../../src","sources":["camera/colors/dark.ts"],"mappings":";;AAAA;AACA;AACA,OAAO,MAAMA,IAAI,GAAG;EAClBC,KAAK,EAAE,MAAM;EACbC,OAAO,EAAE,wBAAwB;EACjCC,OAAO,EAAE,wBAAwB;EACjCC,OAAO,EAAE,uBAAuB;EAChCC,OAAO,EAAE,wBAAwB;EACjCC,OAAO,EAAE,wBAAwB;EACjCC,OAAO,EAAE,wBAAwB;EACjCC,KAAK,EAAE,MAAM;EACbC,OAAO,EAAE,kBAAkB;EAC3BC,OAAO,EAAE,kBAAkB;EAC3BC,MAAM,EAAE,SAAS;EACjBC,QAAQ,EAAE,sBAAsB;EAChCC,QAAQ,EAAE,sBAAsB;EAChCC,QAAQ,EAAE,sBAAsB;EAChCC,MAAM,EAAE;AACV,CAAU","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import { DARK } from "./dark.js";
4
+ it('exposes brand orange and core dark tokens', () => {
5
+ expect(DARK.orange).toBe('#EB6E00');
6
+ expect(DARK.white).toBe('#fff');
7
+ expect(DARK.recRed).toBe('#ff3b30');
8
+ expect(DARK.orange16).toBe('rgba(235,110,0,0.16)');
9
+ });
10
+ //# sourceMappingURL=dark.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DARK","it","expect","orange","toBe","white","recRed","orange16"],"sourceRoot":"../../../../src","sources":["camera/colors/dark.test.ts"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,WAAQ;AAE7BC,EAAE,CAAC,2CAA2C,EAAE,MAAM;EACpDC,MAAM,CAACF,IAAI,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,SAAS,CAAC;EACnCF,MAAM,CAACF,IAAI,CAACK,KAAK,CAAC,CAACD,IAAI,CAAC,MAAM,CAAC;EAC/BF,MAAM,CAACF,IAAI,CAACM,MAAM,CAAC,CAACF,IAAI,CAAC,SAAS,CAAC;EACnCF,MAAM,CAACF,IAAI,CAACO,QAAQ,CAAC,CAACH,IAAI,CAAC,sBAAsB,CAAC;AACpD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet, View } from 'react-native';
4
+ import { Button, r } from '@unif/react-native-design';
5
+ import { Shutter } from "./Shutter.js";
6
+ import { ThumbnailStack } from "./ThumbnailStack.js";
7
+ import { FlipButton } from "./FlipButton.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export function ActionRow({
10
+ mode,
11
+ recording,
12
+ latestUri,
13
+ count,
14
+ onShutter,
15
+ onBack,
16
+ onSave,
17
+ onFlip,
18
+ onOpenPreview
19
+ }) {
20
+ return /*#__PURE__*/_jsxs(View, {
21
+ style: styles.row,
22
+ children: [!recording ? /*#__PURE__*/_jsx(ThumbnailStack, {
23
+ latestUri: latestUri,
24
+ count: count,
25
+ onPress: onOpenPreview
26
+ }) : /*#__PURE__*/_jsx(View, {
27
+ style: styles.slot
28
+ }), !recording ? /*#__PURE__*/_jsx(Button, {
29
+ variant: "ghost",
30
+ label: "\u8FD4\u56DE",
31
+ onPress: onBack,
32
+ testID: "back-btn"
33
+ }) : /*#__PURE__*/_jsx(View, {
34
+ style: styles.slot
35
+ }), /*#__PURE__*/_jsx(Shutter, {
36
+ mode: mode,
37
+ recording: recording,
38
+ onPress: onShutter
39
+ }), !recording ? /*#__PURE__*/_jsx(Button, {
40
+ variant: "primary",
41
+ label: "\u4FDD\u5B58",
42
+ onPress: onSave,
43
+ testID: "save-btn"
44
+ }) : /*#__PURE__*/_jsx(View, {
45
+ style: styles.slot
46
+ }), !recording ? /*#__PURE__*/_jsx(FlipButton, {
47
+ onFlip: onFlip
48
+ }) : /*#__PURE__*/_jsx(View, {
49
+ style: styles.slot
50
+ })]
51
+ });
52
+ }
53
+ const styles = StyleSheet.create({
54
+ row: {
55
+ flexDirection: 'row',
56
+ alignItems: 'center',
57
+ justifyContent: 'space-between',
58
+ width: '100%',
59
+ paddingHorizontal: r(20)
60
+ },
61
+ slot: {
62
+ width: r(44)
63
+ }
64
+ });
65
+ //# sourceMappingURL=ActionRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","View","Button","r","Shutter","ThumbnailStack","FlipButton","jsx","_jsx","jsxs","_jsxs","ActionRow","mode","recording","latestUri","count","onShutter","onBack","onSave","onFlip","onOpenPreview","style","styles","row","children","onPress","slot","variant","label","testID","create","flexDirection","alignItems","justifyContent","width","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["camera/footer/ActionRow.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,MAAM,EAAEC,CAAC,QAAQ,2BAA2B;AACrD,SAASC,OAAO,QAAQ,cAAW;AACnC,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc1C,OAAO,SAASC,SAASA,CAAC;EACxBC,IAAI;EACJC,SAAS;EACTC,SAAS;EACTC,KAAK;EACLC,SAAS;EACTC,MAAM;EACNC,MAAM;EACNC,MAAM;EACNC;AACK,CAAC,EAAE;EACR,oBACEV,KAAA,CAACT,IAAI;IAACoB,KAAK,EAAEC,MAAM,CAACC,GAAI;IAAAC,QAAA,GACrB,CAACX,SAAS,gBACTL,IAAA,CAACH,cAAc;MACbS,SAAS,EAAEA,SAAU;MACrBC,KAAK,EAAEA,KAAM;MACbU,OAAO,EAAEL;IAAc,CACxB,CAAC,gBAEFZ,IAAA,CAACP,IAAI;MAACoB,KAAK,EAAEC,MAAM,CAACI;IAAK,CAAE,CAC5B,EACA,CAACb,SAAS,gBACTL,IAAA,CAACN,MAAM;MACLyB,OAAO,EAAC,OAAO;MACfC,KAAK,EAAC,cAAI;MACVH,OAAO,EAAER,MAAO;MAChBY,MAAM,EAAC;IAAU,CAClB,CAAC,gBAEFrB,IAAA,CAACP,IAAI;MAACoB,KAAK,EAAEC,MAAM,CAACI;IAAK,CAAE,CAC5B,eACDlB,IAAA,CAACJ,OAAO;MAACQ,IAAI,EAAEA,IAAK;MAACC,SAAS,EAAEA,SAAU;MAACY,OAAO,EAAET;IAAU,CAAE,CAAC,EAChE,CAACH,SAAS,gBACTL,IAAA,CAACN,MAAM;MACLyB,OAAO,EAAC,SAAS;MACjBC,KAAK,EAAC,cAAI;MACVH,OAAO,EAAEP,MAAO;MAChBW,MAAM,EAAC;IAAU,CAClB,CAAC,gBAEFrB,IAAA,CAACP,IAAI;MAACoB,KAAK,EAAEC,MAAM,CAACI;IAAK,CAAE,CAC5B,EACA,CAACb,SAAS,gBACTL,IAAA,CAACF,UAAU;MAACa,MAAM,EAAEA;IAAO,CAAE,CAAC,gBAE9BX,IAAA,CAACP,IAAI;MAACoB,KAAK,EAAEC,MAAM,CAACI;IAAK,CAAE,CAC5B;EAAA,CACG,CAAC;AAEX;AAEA,MAAMJ,MAAM,GAAGtB,UAAU,CAAC8B,MAAM,CAAC;EAC/BP,GAAG,EAAE;IACHQ,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,eAAe;IAC/BC,KAAK,EAAE,MAAM;IACbC,iBAAiB,EAAEhC,CAAC,CAAC,EAAE;EACzB,CAAC;EACDuB,IAAI,EAAE;IAAEQ,KAAK,EAAE/B,CAAC,CAAC,EAAE;EAAE;AACvB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ import { render, fireEvent } from '@testing-library/react-native';
4
+ import { ActionRow } from "./ActionRow.js";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const base = {
7
+ mode: 'single',
8
+ recording: false,
9
+ latestUri: undefined,
10
+ count: 0,
11
+ onShutter: jest.fn(),
12
+ onBack: jest.fn(),
13
+ onSave: jest.fn(),
14
+ onFlip: jest.fn(),
15
+ onOpenPreview: jest.fn()
16
+ };
17
+ it('wires shutter/back/save/flip', () => {
18
+ const p = {
19
+ ...base,
20
+ onShutter: jest.fn(),
21
+ onBack: jest.fn(),
22
+ onSave: jest.fn(),
23
+ onFlip: jest.fn()
24
+ };
25
+ const {
26
+ getByTestId
27
+ } = render(/*#__PURE__*/_jsx(ActionRow, {
28
+ ...p
29
+ }));
30
+ fireEvent.press(getByTestId('shutter-btn'));
31
+ expect(p.onShutter).toHaveBeenCalled();
32
+ fireEvent.press(getByTestId('back-btn'));
33
+ expect(p.onBack).toHaveBeenCalled();
34
+ fireEvent.press(getByTestId('save-btn'));
35
+ expect(p.onSave).toHaveBeenCalled();
36
+ fireEvent.press(getByTestId('flip-btn'));
37
+ expect(p.onFlip).toHaveBeenCalled();
38
+ });
39
+ it('recording hides back/save/flip/thumb', () => {
40
+ const {
41
+ queryByTestId,
42
+ getByTestId
43
+ } = render(/*#__PURE__*/_jsx(ActionRow, {
44
+ ...base,
45
+ recording: true
46
+ }));
47
+ expect(getByTestId('shutter-btn')).toBeTruthy();
48
+ expect(queryByTestId('back-btn')).toBeNull();
49
+ expect(queryByTestId('save-btn')).toBeNull();
50
+ expect(queryByTestId('flip-btn')).toBeNull();
51
+ expect(queryByTestId('thumbnail-stack')).toBeNull();
52
+ });
53
+ //# sourceMappingURL=ActionRow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["render","fireEvent","ActionRow","jsx","_jsx","base","mode","recording","latestUri","undefined","count","onShutter","jest","fn","onBack","onSave","onFlip","onOpenPreview","it","p","getByTestId","press","expect","toHaveBeenCalled","queryByTestId","toBeTruthy","toBeNull"],"sourceRoot":"../../../../src","sources":["camera/footer/ActionRow.test.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AACjE,SAASC,SAAS,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,MAAMC,IAAI,GAAG;EACXC,IAAI,EAAE,QAAiB;EACvBC,SAAS,EAAE,KAAK;EAChBC,SAAS,EAAEC,SAAS;EACpBC,KAAK,EAAE,CAAC;EACRC,SAAS,EAAEC,IAAI,CAACC,EAAE,CAAC,CAAC;EACpBC,MAAM,EAAEF,IAAI,CAACC,EAAE,CAAC,CAAC;EACjBE,MAAM,EAAEH,IAAI,CAACC,EAAE,CAAC,CAAC;EACjBG,MAAM,EAAEJ,IAAI,CAACC,EAAE,CAAC,CAAC;EACjBI,aAAa,EAAEL,IAAI,CAACC,EAAE,CAAC;AACzB,CAAC;AAEDK,EAAE,CAAC,8BAA8B,EAAE,MAAM;EACvC,MAAMC,CAAC,GAAG;IACR,GAAGd,IAAI;IACPM,SAAS,EAAEC,IAAI,CAACC,EAAE,CAAC,CAAC;IACpBC,MAAM,EAAEF,IAAI,CAACC,EAAE,CAAC,CAAC;IACjBE,MAAM,EAAEH,IAAI,CAACC,EAAE,CAAC,CAAC;IACjBG,MAAM,EAAEJ,IAAI,CAACC,EAAE,CAAC;EAClB,CAAC;EACD,MAAM;IAAEO;EAAY,CAAC,GAAGpB,MAAM,cAACI,IAAA,CAACF,SAAS;IAAA,GAAKiB;EAAC,CAAG,CAAC,CAAC;EACpDlB,SAAS,CAACoB,KAAK,CAACD,WAAW,CAAC,aAAa,CAAC,CAAC;EAC3CE,MAAM,CAACH,CAAC,CAACR,SAAS,CAAC,CAACY,gBAAgB,CAAC,CAAC;EACtCtB,SAAS,CAACoB,KAAK,CAACD,WAAW,CAAC,UAAU,CAAC,CAAC;EACxCE,MAAM,CAACH,CAAC,CAACL,MAAM,CAAC,CAACS,gBAAgB,CAAC,CAAC;EACnCtB,SAAS,CAACoB,KAAK,CAACD,WAAW,CAAC,UAAU,CAAC,CAAC;EACxCE,MAAM,CAACH,CAAC,CAACJ,MAAM,CAAC,CAACQ,gBAAgB,CAAC,CAAC;EACnCtB,SAAS,CAACoB,KAAK,CAACD,WAAW,CAAC,UAAU,CAAC,CAAC;EACxCE,MAAM,CAACH,CAAC,CAACH,MAAM,CAAC,CAACO,gBAAgB,CAAC,CAAC;AACrC,CAAC,CAAC;AAEFL,EAAE,CAAC,sCAAsC,EAAE,MAAM;EAC/C,MAAM;IAAEM,aAAa;IAAEJ;EAAY,CAAC,GAAGpB,MAAM,cAC3CI,IAAA,CAACF,SAAS;IAAA,GAAKG,IAAI;IAAEE,SAAS;EAAA,CAAE,CAClC,CAAC;EACDe,MAAM,CAACF,WAAW,CAAC,aAAa,CAAC,CAAC,CAACK,UAAU,CAAC,CAAC;EAC/CH,MAAM,CAACE,aAAa,CAAC,UAAU,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC5CJ,MAAM,CAACE,aAAa,CAAC,UAAU,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC5CJ,MAAM,CAACE,aAAa,CAAC,UAAU,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC5CJ,MAAM,CAACE,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;AACrD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet, TouchableOpacity } from 'react-native';
4
+ import { Icon, r } from '@unif/react-native-design';
5
+ import { DARK } from "../colors/dark.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function FlipButton({
8
+ onFlip
9
+ }) {
10
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
11
+ testID: "flip-btn",
12
+ onPress: onFlip,
13
+ style: styles.btn,
14
+ children: /*#__PURE__*/_jsx(Icon, {
15
+ name: "lens-flip",
16
+ size: r(20),
17
+ color: DARK.white
18
+ })
19
+ });
20
+ }
21
+ const styles = StyleSheet.create({
22
+ btn: {
23
+ width: r(44),
24
+ height: r(44),
25
+ borderRadius: r(22),
26
+ backgroundColor: DARK.white12,
27
+ alignItems: 'center',
28
+ justifyContent: 'center'
29
+ }
30
+ });
31
+ //# sourceMappingURL=FlipButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","TouchableOpacity","Icon","r","DARK","jsx","_jsx","FlipButton","onFlip","testID","onPress","style","styles","btn","children","name","size","color","white","create","width","height","borderRadius","backgroundColor","white12","alignItems","justifyContent"],"sourceRoot":"../../../../src","sources":["camera/footer/FlipButton.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,gBAAgB,QAAQ,cAAc;AAC3D,SAASC,IAAI,EAAEC,CAAC,QAAQ,2BAA2B;AACnD,SAASC,IAAI,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtC,OAAO,SAASC,UAAUA,CAAC;EAAEC;AAA+B,CAAC,EAAE;EAC7D,oBACEF,IAAA,CAACL,gBAAgB;IAACQ,MAAM,EAAC,UAAU;IAACC,OAAO,EAAEF,MAAO;IAACG,KAAK,EAAEC,MAAM,CAACC,GAAI;IAAAC,QAAA,eACrER,IAAA,CAACJ,IAAI;MAACa,IAAI,EAAC,WAAW;MAACC,IAAI,EAAEb,CAAC,CAAC,EAAE,CAAE;MAACc,KAAK,EAAEb,IAAI,CAACc;IAAM,CAAE;EAAC,CACzC,CAAC;AAEvB;AAEA,MAAMN,MAAM,GAAGZ,UAAU,CAACmB,MAAM,CAAC;EAC/BN,GAAG,EAAE;IACHO,KAAK,EAAEjB,CAAC,CAAC,EAAE,CAAC;IACZkB,MAAM,EAAElB,CAAC,CAAC,EAAE,CAAC;IACbmB,YAAY,EAAEnB,CAAC,CAAC,EAAE,CAAC;IACnBoB,eAAe,EAAEnB,IAAI,CAACoB,OAAO;IAC7BC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ import { render, fireEvent } from '@testing-library/react-native';
4
+ import { FlipButton } from "./FlipButton.js";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ it('fires onFlip', () => {
7
+ const onFlip = jest.fn();
8
+ const {
9
+ getByTestId
10
+ } = render(/*#__PURE__*/_jsx(FlipButton, {
11
+ onFlip: onFlip
12
+ }));
13
+ fireEvent.press(getByTestId('flip-btn'));
14
+ expect(onFlip).toHaveBeenCalled();
15
+ });
16
+ //# sourceMappingURL=FlipButton.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["render","fireEvent","FlipButton","jsx","_jsx","it","onFlip","jest","fn","getByTestId","press","expect","toHaveBeenCalled"],"sourceRoot":"../../../../src","sources":["camera/footer/FlipButton.test.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AACjE,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1CC,EAAE,CAAC,cAAc,EAAE,MAAM;EACvB,MAAMC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACxB,MAAM;IAAEC;EAAY,CAAC,GAAGT,MAAM,cAACI,IAAA,CAACF,UAAU;IAACI,MAAM,EAAEA;EAAO,CAAE,CAAC,CAAC;EAC9DL,SAAS,CAACS,KAAK,CAACD,WAAW,CAAC,UAAU,CAAC,CAAC;EACxCE,MAAM,CAACL,MAAM,CAAC,CAACM,gBAAgB,CAAC,CAAC;AACnC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { Animated, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
+ import { r } from '@unif/react-native-design';
6
+ import { DARK } from "../colors/dark.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export function ModeSwitcherPill({
9
+ items,
10
+ currentIndex,
11
+ onSelect
12
+ }) {
13
+ const [w, setW] = useState(0);
14
+ const slide = useRef(new Animated.Value(0)).current;
15
+ const itemW = items.length ? w / items.length : 0;
16
+ useEffect(() => {
17
+ Animated.timing(slide, {
18
+ toValue: currentIndex * itemW,
19
+ duration: 240,
20
+ useNativeDriver: true
21
+ }).start();
22
+ }, [currentIndex, itemW, slide]);
23
+ if (items.length === 1) {
24
+ return /*#__PURE__*/_jsx(Text, {
25
+ style: styles.singleLabel,
26
+ children: items[0].label
27
+ });
28
+ }
29
+ return /*#__PURE__*/_jsxs(View, {
30
+ style: styles.wrap,
31
+ onLayout: e => setW(e.nativeEvent.layout.width),
32
+ children: [itemW > 0 && /*#__PURE__*/_jsx(Animated.View, {
33
+ style: [styles.slider, {
34
+ width: itemW,
35
+ transform: [{
36
+ translateX: slide
37
+ }]
38
+ }]
39
+ }), items.map((it, i) => {
40
+ const sel = i === currentIndex;
41
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
42
+ testID: `mode-pill-${i}`,
43
+ style: styles.item,
44
+ onPress: () => onSelect(i),
45
+ children: /*#__PURE__*/_jsx(Text, {
46
+ style: [styles.txt, sel && styles.txtSel],
47
+ children: it.label
48
+ })
49
+ }, it.key);
50
+ })]
51
+ });
52
+ }
53
+ const styles = StyleSheet.create({
54
+ wrap: {
55
+ flexDirection: 'row',
56
+ alignSelf: 'center',
57
+ position: 'relative'
58
+ },
59
+ slider: {
60
+ position: 'absolute',
61
+ top: r(4),
62
+ bottom: r(4),
63
+ left: 0,
64
+ borderRadius: r(999),
65
+ backgroundColor: DARK.orange16
66
+ },
67
+ item: {
68
+ paddingVertical: r(8),
69
+ paddingHorizontal: r(22),
70
+ alignItems: 'center'
71
+ },
72
+ txt: {
73
+ color: DARK.white65,
74
+ fontSize: r(15),
75
+ fontWeight: '500',
76
+ letterSpacing: 1
77
+ },
78
+ txtSel: {
79
+ color: DARK.orange,
80
+ fontWeight: '600'
81
+ },
82
+ singleLabel: {
83
+ color: DARK.white65,
84
+ fontSize: r(14),
85
+ letterSpacing: 2,
86
+ alignSelf: 'center'
87
+ }
88
+ });
89
+ //# sourceMappingURL=ModeSwitcherPill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useState","Animated","StyleSheet","Text","TouchableOpacity","View","r","DARK","jsx","_jsx","jsxs","_jsxs","ModeSwitcherPill","items","currentIndex","onSelect","w","setW","slide","Value","current","itemW","length","timing","toValue","duration","useNativeDriver","start","style","styles","singleLabel","children","label","wrap","onLayout","e","nativeEvent","layout","width","slider","transform","translateX","map","it","i","sel","testID","item","onPress","txt","txtSel","key","create","flexDirection","alignSelf","position","top","bottom","left","borderRadius","backgroundColor","orange16","paddingVertical","paddingHorizontal","alignItems","color","white65","fontSize","fontWeight","letterSpacing","orange"],"sourceRoot":"../../../../src","sources":["camera/footer/ModeSwitcherPill.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ import { render, fireEvent } from '@testing-library/react-native';
4
+ import { ModeSwitcherPill } from "./ModeSwitcherPill.js";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const items = [{
7
+ key: 'continuous',
8
+ label: '连拍'
9
+ }, {
10
+ key: 'single',
11
+ label: '单拍'
12
+ }, {
13
+ key: 'video',
14
+ label: '视频'
15
+ }];
16
+ it('selects by tap', () => {
17
+ const onSelect = jest.fn();
18
+ const {
19
+ getByTestId
20
+ } = render(/*#__PURE__*/_jsx(ModeSwitcherPill, {
21
+ items: items,
22
+ currentIndex: 1,
23
+ onSelect: onSelect
24
+ }));
25
+ fireEvent.press(getByTestId('mode-pill-2'));
26
+ expect(onSelect).toHaveBeenCalledWith(2);
27
+ });
28
+ it('single item shows label only (no pill)', () => {
29
+ const {
30
+ queryByTestId,
31
+ getByText
32
+ } = render(/*#__PURE__*/_jsx(ModeSwitcherPill, {
33
+ items: [{
34
+ key: 'single',
35
+ label: '单拍'
36
+ }],
37
+ currentIndex: 0,
38
+ onSelect: () => {}
39
+ }));
40
+ expect(queryByTestId('mode-pill-0')).toBeNull();
41
+ expect(getByText('单拍')).toBeTruthy();
42
+ });
43
+ //# sourceMappingURL=ModeSwitcherPill.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["render","fireEvent","ModeSwitcherPill","jsx","_jsx","items","key","label","it","onSelect","jest","fn","getByTestId","currentIndex","press","expect","toHaveBeenCalledWith","queryByTestId","getByText","toBeNull","toBeTruthy"],"sourceRoot":"../../../../src","sources":["camera/footer/ModeSwitcherPill.test.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AACjE,SAASC,gBAAgB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtD,MAAMC,KAAK,GAAG,CACZ;EAAEC,GAAG,EAAE,YAAY;EAAEC,KAAK,EAAE;AAAK,CAAC,EAClC;EAAED,GAAG,EAAE,QAAQ;EAAEC,KAAK,EAAE;AAAK,CAAC,EAC9B;EAAED,GAAG,EAAE,OAAO;EAAEC,KAAK,EAAE;AAAK,CAAC,CAC9B;AAEDC,EAAE,CAAC,gBAAgB,EAAE,MAAM;EACzB,MAAMC,QAAQ,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC1B,MAAM;IAAEC;EAAY,CAAC,GAAGZ,MAAM,cAC5BI,IAAA,CAACF,gBAAgB;IAACG,KAAK,EAAEA,KAAM;IAACQ,YAAY,EAAE,CAAE;IAACJ,QAAQ,EAAEA;EAAS,CAAE,CACxE,CAAC;EACDR,SAAS,CAACa,KAAK,CAACF,WAAW,CAAC,aAAa,CAAC,CAAC;EAC3CG,MAAM,CAACN,QAAQ,CAAC,CAACO,oBAAoB,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEFR,EAAE,CAAC,wCAAwC,EAAE,MAAM;EACjD,MAAM;IAAES,aAAa;IAAEC;EAAU,CAAC,GAAGlB,MAAM,cACzCI,IAAA,CAACF,gBAAgB;IACfG,KAAK,EAAE,CAAC;MAAEC,GAAG,EAAE,QAAQ;MAAEC,KAAK,EAAE;IAAK,CAAC,CAAE;IACxCM,YAAY,EAAE,CAAE;IAChBJ,QAAQ,EAAEA,CAAA,KAAM,CAAC;EAAE,CACpB,CACH,CAAC;EACDM,MAAM,CAACE,aAAa,CAAC,aAAa,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC/CJ,MAAM,CAACG,SAAS,CAAC,IAAI,CAAC,CAAC,CAACE,UAAU,CAAC,CAAC;AACtC,CAAC,CAAC","ignoreList":[]}