@unif/react-native-camera 1.2.6 → 2.1.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 (407) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +92 -22
  3. package/lib/module/camera/Camera.js +163 -285
  4. package/lib/module/camera/Camera.js.map +1 -1
  5. package/lib/module/camera/Container.js +209 -49
  6. package/lib/module/camera/Container.js.map +1 -1
  7. package/lib/module/camera/Error.js +23 -18
  8. package/lib/module/camera/Error.js.map +1 -1
  9. package/lib/module/camera/FocusIndicator.js +35 -41
  10. package/lib/module/camera/FocusIndicator.js.map +1 -1
  11. package/lib/module/camera/ModalView.js +28 -21
  12. package/lib/module/camera/ModalView.js.map +1 -1
  13. package/lib/module/camera/NoCamera.js +38 -14
  14. package/lib/module/camera/NoCamera.js.map +1 -1
  15. package/lib/module/camera/NoPermission.js +44 -38
  16. package/lib/module/camera/NoPermission.js.map +1 -1
  17. package/lib/module/camera/capturePhotoHelper.js +24 -0
  18. package/lib/module/camera/capturePhotoHelper.js.map +1 -0
  19. package/lib/module/camera/footer/Footer.js +83 -140
  20. package/lib/module/camera/footer/Footer.js.map +1 -1
  21. package/lib/module/camera/footer/index.js +3 -2
  22. package/lib/module/camera/footer/index.js.map +1 -1
  23. package/lib/module/camera/index.js +11 -13
  24. package/lib/module/camera/index.js.map +1 -1
  25. package/lib/module/camera/preview/PreView.js +36 -93
  26. package/lib/module/camera/preview/PreView.js.map +1 -1
  27. package/lib/module/camera/preview/PreViewContainer.js +28 -29
  28. package/lib/module/camera/preview/PreViewContainer.js.map +1 -1
  29. package/lib/module/camera/preview/PreviewFooter.js +30 -21
  30. package/lib/module/camera/preview/PreviewFooter.js.map +1 -1
  31. package/lib/module/camera/preview/SinglePre.js +28 -60
  32. package/lib/module/camera/preview/SinglePre.js.map +1 -1
  33. package/lib/module/camera/preview/index.js +6 -12
  34. package/lib/module/camera/preview/index.js.map +1 -1
  35. package/lib/module/camera/setup/SetUp.js +67 -189
  36. package/lib/module/camera/setup/SetUp.js.map +1 -1
  37. package/lib/module/camera/setup/index.js +3 -2
  38. package/lib/module/camera/setup/index.js.map +1 -1
  39. package/lib/module/components/Carousel/Carousel.js +33 -40
  40. package/lib/module/components/Carousel/Carousel.js.map +1 -1
  41. package/lib/module/components/Carousel/SlideItem.js +22 -70
  42. package/lib/module/components/Carousel/SlideItem.js.map +1 -1
  43. package/lib/module/components/Carousel/index.js +4 -11
  44. package/lib/module/components/Carousel/index.js.map +1 -1
  45. package/lib/module/components/Loading.js +15 -61
  46. package/lib/module/components/Loading.js.map +1 -1
  47. package/lib/module/components/PreviewThumbnail.js +36 -33
  48. package/lib/module/components/PreviewThumbnail.js.map +1 -1
  49. package/lib/module/components/index.js +5 -8
  50. package/lib/module/components/index.js.map +1 -1
  51. package/lib/module/hooks/index.js +5 -11
  52. package/lib/module/hooks/index.js.map +1 -1
  53. package/lib/module/hooks/useCamera.js +44 -0
  54. package/lib/module/hooks/useCamera.js.map +1 -0
  55. package/lib/module/hooks/useConfirm.js +13 -49
  56. package/lib/module/hooks/useConfirm.js.map +1 -1
  57. package/lib/module/hooks/useCreation.js +18 -0
  58. package/lib/module/hooks/useCreation.js.map +1 -0
  59. package/lib/module/index.js +4 -24
  60. package/lib/module/index.js.map +1 -1
  61. package/lib/module/package.json +1 -0
  62. package/lib/module/utils/depsAreSame.js +7 -4
  63. package/lib/module/utils/depsAreSame.js.map +1 -1
  64. package/lib/module/utils/index.js +6 -14
  65. package/lib/module/utils/index.js.map +1 -1
  66. package/lib/module/utils/interface.js +1 -21
  67. package/lib/module/utils/interface.js.map +1 -1
  68. package/lib/module/utils/px-to-dp.js +6 -10
  69. package/lib/module/utils/px-to-dp.js.map +1 -1
  70. package/lib/module/utils/util.js +16 -40
  71. package/lib/module/utils/util.js.map +1 -1
  72. package/lib/typescript/jest.setup.d.ts +1 -0
  73. package/lib/typescript/jest.setup.d.ts.map +1 -0
  74. package/lib/typescript/package.json +1 -0
  75. package/lib/typescript/src/camera/Camera.d.ts +18 -10
  76. package/lib/typescript/src/camera/Camera.d.ts.map +1 -1
  77. package/lib/typescript/src/camera/Container.d.ts +7 -5
  78. package/lib/typescript/src/camera/Container.d.ts.map +1 -1
  79. package/lib/typescript/src/camera/Error.d.ts +3 -7
  80. package/lib/typescript/src/camera/Error.d.ts.map +1 -1
  81. package/lib/typescript/src/camera/FocusIndicator.d.ts +7 -7
  82. package/lib/typescript/src/camera/FocusIndicator.d.ts.map +1 -1
  83. package/lib/typescript/src/camera/ModalView.d.ts +7 -4
  84. package/lib/typescript/src/camera/ModalView.d.ts.map +1 -1
  85. package/lib/typescript/src/camera/NoCamera.d.ts +5 -3
  86. package/lib/typescript/src/camera/NoCamera.d.ts.map +1 -1
  87. package/lib/typescript/src/camera/NoPermission.d.ts +6 -3
  88. package/lib/typescript/src/camera/NoPermission.d.ts.map +1 -1
  89. package/lib/typescript/src/camera/capturePhotoHelper.d.ts +16 -0
  90. package/lib/typescript/src/camera/capturePhotoHelper.d.ts.map +1 -0
  91. package/lib/typescript/src/camera/footer/Footer.d.ts +13 -15
  92. package/lib/typescript/src/camera/footer/Footer.d.ts.map +1 -1
  93. package/lib/typescript/src/camera/footer/index.d.ts +1 -2
  94. package/lib/typescript/src/camera/footer/index.d.ts.map +1 -1
  95. package/lib/typescript/src/camera/index.d.ts +9 -5
  96. package/lib/typescript/src/camera/index.d.ts.map +1 -1
  97. package/lib/typescript/src/camera/preview/PreView.d.ts +6 -9
  98. package/lib/typescript/src/camera/preview/PreView.d.ts.map +1 -1
  99. package/lib/typescript/src/camera/preview/PreViewContainer.d.ts +8 -5
  100. package/lib/typescript/src/camera/preview/PreViewContainer.d.ts.map +1 -1
  101. package/lib/typescript/src/camera/preview/PreviewFooter.d.ts +6 -6
  102. package/lib/typescript/src/camera/preview/PreviewFooter.d.ts.map +1 -1
  103. package/lib/typescript/src/camera/preview/SinglePre.d.ts +5 -28
  104. package/lib/typescript/src/camera/preview/SinglePre.d.ts.map +1 -1
  105. package/lib/typescript/src/camera/preview/index.d.ts +4 -4
  106. package/lib/typescript/src/camera/preview/index.d.ts.map +1 -1
  107. package/lib/typescript/src/camera/setup/SetUp.d.ts +12 -11
  108. package/lib/typescript/src/camera/setup/SetUp.d.ts.map +1 -1
  109. package/lib/typescript/src/camera/setup/index.d.ts +1 -2
  110. package/lib/typescript/src/camera/setup/index.d.ts.map +1 -1
  111. package/lib/typescript/src/components/Carousel/Carousel.d.ts +6 -8
  112. package/lib/typescript/src/components/Carousel/Carousel.d.ts.map +1 -1
  113. package/lib/typescript/src/components/Carousel/SlideItem.d.ts +4 -12
  114. package/lib/typescript/src/components/Carousel/SlideItem.d.ts.map +1 -1
  115. package/lib/typescript/src/components/Carousel/index.d.ts +2 -3
  116. package/lib/typescript/src/components/Carousel/index.d.ts.map +1 -1
  117. package/lib/typescript/src/components/Loading.d.ts +1 -3
  118. package/lib/typescript/src/components/Loading.d.ts.map +1 -1
  119. package/lib/typescript/src/components/PreviewThumbnail.d.ts +7 -8
  120. package/lib/typescript/src/components/PreviewThumbnail.d.ts.map +1 -1
  121. package/lib/typescript/src/components/index.d.ts +2 -7
  122. package/lib/typescript/src/components/index.d.ts.map +1 -1
  123. package/lib/typescript/src/hooks/index.d.ts +3 -3
  124. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  125. package/lib/typescript/src/hooks/useCamera.d.ts +4 -0
  126. package/lib/typescript/src/hooks/useCamera.d.ts.map +1 -0
  127. package/lib/typescript/src/hooks/useConfirm.d.ts +1 -5
  128. package/lib/typescript/src/hooks/useConfirm.d.ts.map +1 -1
  129. package/lib/typescript/src/hooks/useCreation.d.ts +2 -0
  130. package/lib/typescript/src/hooks/useCreation.d.ts.map +1 -0
  131. package/lib/typescript/src/index.d.ts +3 -4
  132. package/lib/typescript/src/index.d.ts.map +1 -1
  133. package/lib/typescript/src/utils/depsAreSame.d.ts +1 -2
  134. package/lib/typescript/src/utils/depsAreSame.d.ts.map +1 -1
  135. package/lib/typescript/src/utils/index.d.ts +2 -4
  136. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  137. package/lib/typescript/src/utils/interface.d.ts +30 -70
  138. package/lib/typescript/src/utils/interface.d.ts.map +1 -1
  139. package/lib/typescript/src/utils/px-to-dp.d.ts +1 -3
  140. package/lib/typescript/src/utils/px-to-dp.d.ts.map +1 -1
  141. package/lib/typescript/src/utils/util.d.ts +8 -9
  142. package/lib/typescript/src/utils/util.d.ts.map +1 -1
  143. package/package.json +123 -108
  144. package/src/camera/Camera.tsx +210 -331
  145. package/src/camera/Container.tsx +224 -50
  146. package/src/camera/Error.tsx +22 -23
  147. package/src/camera/FocusIndicator.tsx +36 -46
  148. package/src/camera/ModalView.tsx +26 -24
  149. package/src/camera/NoCamera.tsx +37 -14
  150. package/src/camera/NoPermission.tsx +45 -37
  151. package/src/camera/capturePhotoHelper.ts +37 -0
  152. package/src/camera/footer/Footer.tsx +104 -195
  153. package/src/camera/footer/index.tsx +1 -2
  154. package/src/camera/index.tsx +12 -13
  155. package/src/camera/preview/PreView.tsx +22 -103
  156. package/src/camera/preview/PreViewContainer.tsx +23 -27
  157. package/src/camera/preview/PreviewFooter.tsx +28 -22
  158. package/src/camera/preview/SinglePre.tsx +23 -68
  159. package/src/camera/preview/index.tsx +4 -13
  160. package/src/camera/setup/SetUp.tsx +80 -217
  161. package/src/camera/setup/index.tsx +1 -3
  162. package/src/components/Carousel/Carousel.tsx +22 -42
  163. package/src/components/Carousel/SlideItem.tsx +12 -87
  164. package/src/components/Carousel/index.tsx +2 -13
  165. package/src/components/Loading.tsx +7 -69
  166. package/src/components/PreviewThumbnail.tsx +38 -33
  167. package/src/components/index.tsx +2 -7
  168. package/src/hooks/index.ts +3 -12
  169. package/src/hooks/useCamera.tsx +42 -0
  170. package/src/hooks/useConfirm.tsx +10 -57
  171. package/src/hooks/useCreation.ts +26 -0
  172. package/src/index.tsx +3 -37
  173. package/src/utils/depsAreSame.ts +7 -8
  174. package/src/utils/index.ts +2 -12
  175. package/src/utils/interface.ts +26 -87
  176. package/src/utils/px-to-dp.tsx +5 -9
  177. package/src/utils/util.ts +17 -42
  178. package/UnifRNCamera.podspec +0 -41
  179. package/android/CMakeLists.txt +0 -15
  180. package/android/build.gradle +0 -124
  181. package/android/cpp-adapter.cpp +0 -8
  182. package/android/gradle.properties +0 -5
  183. package/android/src/main/AndroidManifest.xml +0 -3
  184. package/android/src/main/AndroidManifestNew.xml +0 -2
  185. package/android/src/main/java/com/unif/reactnativecamera/ReactNativeCameraModule.java +0 -34
  186. package/android/src/main/java/com/unif/reactnativecamera/ReactNativeCameraPackage.java +0 -45
  187. package/android/src/newarch/ReactNativeCameraSpec.java +0 -9
  188. package/android/src/oldarch/ReactNativeCameraSpec.java +0 -13
  189. package/cpp/unif-react-native-camera.cpp +0 -7
  190. package/cpp/unif-react-native-camera.h +0 -8
  191. package/ios/ReactNativeCamera.h +0 -15
  192. package/ios/ReactNativeCamera.mm +0 -51
  193. package/lib/commonjs/NativeReactNativeCamera.js +0 -17
  194. package/lib/commonjs/NativeReactNativeCamera.js.map +0 -1
  195. package/lib/commonjs/assets/close.png +0 -0
  196. package/lib/commonjs/assets/home/record.png +0 -0
  197. package/lib/commonjs/assets/home/take.png +0 -0
  198. package/lib/commonjs/assets/preview/back.png +0 -0
  199. package/lib/commonjs/assets/preview/del.png +0 -0
  200. package/lib/commonjs/assets/preview/rotate.png +0 -0
  201. package/lib/commonjs/assets/preview/save.png +0 -0
  202. package/lib/commonjs/assets/tools/auto.png +0 -0
  203. package/lib/commonjs/assets/tools/defaultEye.png +0 -0
  204. package/lib/commonjs/assets/tools/enlarge.png +0 -0
  205. package/lib/commonjs/assets/tools/fishEye.png +0 -0
  206. package/lib/commonjs/assets/tools/narrow.png +0 -0
  207. package/lib/commonjs/assets/tools/off.png +0 -0
  208. package/lib/commonjs/assets/tools/on.png +0 -0
  209. package/lib/commonjs/assets/tools/volumeOff.png +0 -0
  210. package/lib/commonjs/assets/tools/volumeOn.png +0 -0
  211. package/lib/commonjs/camera/Camera.js +0 -316
  212. package/lib/commonjs/camera/Camera.js.map +0 -1
  213. package/lib/commonjs/camera/Container.js +0 -64
  214. package/lib/commonjs/camera/Container.js.map +0 -1
  215. package/lib/commonjs/camera/Error.js +0 -30
  216. package/lib/commonjs/camera/Error.js.map +0 -1
  217. package/lib/commonjs/camera/FocusIndicator.js +0 -64
  218. package/lib/commonjs/camera/FocusIndicator.js.map +0 -1
  219. package/lib/commonjs/camera/ModalView.js +0 -37
  220. package/lib/commonjs/camera/ModalView.js.map +0 -1
  221. package/lib/commonjs/camera/NoCamera.js +0 -23
  222. package/lib/commonjs/camera/NoCamera.js.map +0 -1
  223. package/lib/commonjs/camera/NoPermission.js +0 -50
  224. package/lib/commonjs/camera/NoPermission.js.map +0 -1
  225. package/lib/commonjs/camera/footer/Footer.js +0 -159
  226. package/lib/commonjs/camera/footer/Footer.js.map +0 -1
  227. package/lib/commonjs/camera/footer/index.js +0 -14
  228. package/lib/commonjs/camera/footer/index.js.map +0 -1
  229. package/lib/commonjs/camera/index.js +0 -35
  230. package/lib/commonjs/camera/index.js.map +0 -1
  231. package/lib/commonjs/camera/preview/PreView.js +0 -109
  232. package/lib/commonjs/camera/preview/PreView.js.map +0 -1
  233. package/lib/commonjs/camera/preview/PreViewContainer.js +0 -42
  234. package/lib/commonjs/camera/preview/PreViewContainer.js.map +0 -1
  235. package/lib/commonjs/camera/preview/PreviewFooter.js +0 -35
  236. package/lib/commonjs/camera/preview/PreviewFooter.js.map +0 -1
  237. package/lib/commonjs/camera/preview/SinglePre.js +0 -72
  238. package/lib/commonjs/camera/preview/SinglePre.js.map +0 -1
  239. package/lib/commonjs/camera/preview/index.js +0 -28
  240. package/lib/commonjs/camera/preview/index.js.map +0 -1
  241. package/lib/commonjs/camera/setup/SetUp.js +0 -205
  242. package/lib/commonjs/camera/setup/SetUp.js.map +0 -1
  243. package/lib/commonjs/camera/setup/index.js +0 -14
  244. package/lib/commonjs/camera/setup/index.js.map +0 -1
  245. package/lib/commonjs/camera/watermark/Render.js +0 -110
  246. package/lib/commonjs/camera/watermark/Render.js.map +0 -1
  247. package/lib/commonjs/camera/watermark/ViewShotWatermark.js +0 -143
  248. package/lib/commonjs/camera/watermark/ViewShotWatermark.js.map +0 -1
  249. package/lib/commonjs/camera/watermark/index.js +0 -21
  250. package/lib/commonjs/camera/watermark/index.js.map +0 -1
  251. package/lib/commonjs/components/Back.js +0 -48
  252. package/lib/commonjs/components/Back.js.map +0 -1
  253. package/lib/commonjs/components/Carousel/Carousel.js +0 -51
  254. package/lib/commonjs/components/Carousel/Carousel.js.map +0 -1
  255. package/lib/commonjs/components/Carousel/SlideItem.js +0 -84
  256. package/lib/commonjs/components/Carousel/SlideItem.js.map +0 -1
  257. package/lib/commonjs/components/Carousel/index.js +0 -21
  258. package/lib/commonjs/components/Carousel/index.js.map +0 -1
  259. package/lib/commonjs/components/Delete.js +0 -36
  260. package/lib/commonjs/components/Delete.js.map +0 -1
  261. package/lib/commonjs/components/Loading.js +0 -75
  262. package/lib/commonjs/components/Loading.js.map +0 -1
  263. package/lib/commonjs/components/Modal/Confirm.js +0 -121
  264. package/lib/commonjs/components/Modal/Confirm.js.map +0 -1
  265. package/lib/commonjs/components/Modal/index.js +0 -14
  266. package/lib/commonjs/components/Modal/index.js.map +0 -1
  267. package/lib/commonjs/components/PreviewThumbnail.js +0 -44
  268. package/lib/commonjs/components/PreviewThumbnail.js.map +0 -1
  269. package/lib/commonjs/components/Rotate.js +0 -32
  270. package/lib/commonjs/components/Rotate.js.map +0 -1
  271. package/lib/commonjs/components/Save.js +0 -48
  272. package/lib/commonjs/components/Save.js.map +0 -1
  273. package/lib/commonjs/components/index.js +0 -73
  274. package/lib/commonjs/components/index.js.map +0 -1
  275. package/lib/commonjs/hooks/index.js +0 -21
  276. package/lib/commonjs/hooks/index.js.map +0 -1
  277. package/lib/commonjs/hooks/useCamera.tsx/index.js +0 -90
  278. package/lib/commonjs/hooks/useCamera.tsx/index.js.map +0 -1
  279. package/lib/commonjs/hooks/useConfirm.js +0 -61
  280. package/lib/commonjs/hooks/useConfirm.js.map +0 -1
  281. package/lib/commonjs/hooks/useCreation/index.js +0 -34
  282. package/lib/commonjs/hooks/useCreation/index.js.map +0 -1
  283. package/lib/commonjs/index.js +0 -39
  284. package/lib/commonjs/index.js.map +0 -1
  285. package/lib/commonjs/utils/common.js +0 -69
  286. package/lib/commonjs/utils/common.js.map +0 -1
  287. package/lib/commonjs/utils/depsAreSame.js +0 -14
  288. package/lib/commonjs/utils/depsAreSame.js.map +0 -1
  289. package/lib/commonjs/utils/index.js +0 -72
  290. package/lib/commonjs/utils/index.js.map +0 -1
  291. package/lib/commonjs/utils/interface.js +0 -24
  292. package/lib/commonjs/utils/interface.js.map +0 -1
  293. package/lib/commonjs/utils/px-to-dp.js +0 -21
  294. package/lib/commonjs/utils/px-to-dp.js.map +0 -1
  295. package/lib/commonjs/utils/render-item.js +0 -40
  296. package/lib/commonjs/utils/render-item.js.map +0 -1
  297. package/lib/commonjs/utils/util.js +0 -53
  298. package/lib/commonjs/utils/util.js.map +0 -1
  299. package/lib/commonjs/utils/watermark.js +0 -49
  300. package/lib/commonjs/utils/watermark.js.map +0 -1
  301. package/lib/module/NativeReactNativeCamera.js +0 -12
  302. package/lib/module/NativeReactNativeCamera.js.map +0 -1
  303. package/lib/module/assets/close.png +0 -0
  304. package/lib/module/assets/home/record.png +0 -0
  305. package/lib/module/assets/home/take.png +0 -0
  306. package/lib/module/assets/preview/back.png +0 -0
  307. package/lib/module/assets/preview/del.png +0 -0
  308. package/lib/module/assets/preview/rotate.png +0 -0
  309. package/lib/module/assets/preview/save.png +0 -0
  310. package/lib/module/assets/tools/auto.png +0 -0
  311. package/lib/module/assets/tools/defaultEye.png +0 -0
  312. package/lib/module/assets/tools/enlarge.png +0 -0
  313. package/lib/module/assets/tools/fishEye.png +0 -0
  314. package/lib/module/assets/tools/narrow.png +0 -0
  315. package/lib/module/assets/tools/off.png +0 -0
  316. package/lib/module/assets/tools/on.png +0 -0
  317. package/lib/module/assets/tools/volumeOff.png +0 -0
  318. package/lib/module/assets/tools/volumeOn.png +0 -0
  319. package/lib/module/camera/watermark/Render.js +0 -102
  320. package/lib/module/camera/watermark/Render.js.map +0 -1
  321. package/lib/module/camera/watermark/ViewShotWatermark.js +0 -133
  322. package/lib/module/camera/watermark/ViewShotWatermark.js.map +0 -1
  323. package/lib/module/camera/watermark/index.js +0 -13
  324. package/lib/module/camera/watermark/index.js.map +0 -1
  325. package/lib/module/components/Back.js +0 -40
  326. package/lib/module/components/Back.js.map +0 -1
  327. package/lib/module/components/Delete.js +0 -28
  328. package/lib/module/components/Delete.js.map +0 -1
  329. package/lib/module/components/Modal/Confirm.js +0 -111
  330. package/lib/module/components/Modal/Confirm.js.map +0 -1
  331. package/lib/module/components/Modal/index.js +0 -3
  332. package/lib/module/components/Modal/index.js.map +0 -1
  333. package/lib/module/components/Rotate.js +0 -24
  334. package/lib/module/components/Rotate.js.map +0 -1
  335. package/lib/module/components/Save.js +0 -40
  336. package/lib/module/components/Save.js.map +0 -1
  337. package/lib/module/hooks/useCamera.tsx/index.js +0 -81
  338. package/lib/module/hooks/useCamera.tsx/index.js.map +0 -1
  339. package/lib/module/hooks/useCreation/index.js +0 -27
  340. package/lib/module/hooks/useCreation/index.js.map +0 -1
  341. package/lib/module/utils/common.js +0 -62
  342. package/lib/module/utils/common.js.map +0 -1
  343. package/lib/module/utils/render-item.js +0 -32
  344. package/lib/module/utils/render-item.js.map +0 -1
  345. package/lib/module/utils/watermark.js +0 -39
  346. package/lib/module/utils/watermark.js.map +0 -1
  347. package/lib/typescript/src/NativeReactNativeCamera.d.ts +0 -6
  348. package/lib/typescript/src/NativeReactNativeCamera.d.ts.map +0 -1
  349. package/lib/typescript/src/camera/watermark/Render.d.ts +0 -26
  350. package/lib/typescript/src/camera/watermark/Render.d.ts.map +0 -1
  351. package/lib/typescript/src/camera/watermark/ViewShotWatermark.d.ts +0 -41
  352. package/lib/typescript/src/camera/watermark/ViewShotWatermark.d.ts.map +0 -1
  353. package/lib/typescript/src/camera/watermark/index.d.ts +0 -4
  354. package/lib/typescript/src/camera/watermark/index.d.ts.map +0 -1
  355. package/lib/typescript/src/components/Back.d.ts +0 -20
  356. package/lib/typescript/src/components/Back.d.ts.map +0 -1
  357. package/lib/typescript/src/components/Delete.d.ts +0 -7
  358. package/lib/typescript/src/components/Delete.d.ts.map +0 -1
  359. package/lib/typescript/src/components/Modal/Confirm.d.ts +0 -9
  360. package/lib/typescript/src/components/Modal/Confirm.d.ts.map +0 -1
  361. package/lib/typescript/src/components/Modal/index.d.ts +0 -3
  362. package/lib/typescript/src/components/Modal/index.d.ts.map +0 -1
  363. package/lib/typescript/src/components/Rotate.d.ts +0 -9
  364. package/lib/typescript/src/components/Rotate.d.ts.map +0 -1
  365. package/lib/typescript/src/components/Save.d.ts +0 -20
  366. package/lib/typescript/src/components/Save.d.ts.map +0 -1
  367. package/lib/typescript/src/hooks/useCamera.tsx/index.d.ts +0 -5
  368. package/lib/typescript/src/hooks/useCamera.tsx/index.d.ts.map +0 -1
  369. package/lib/typescript/src/hooks/useCreation/index.d.ts +0 -3
  370. package/lib/typescript/src/hooks/useCreation/index.d.ts.map +0 -1
  371. package/lib/typescript/src/utils/common.d.ts +0 -14
  372. package/lib/typescript/src/utils/common.d.ts.map +0 -1
  373. package/lib/typescript/src/utils/render-item.d.ts +0 -10
  374. package/lib/typescript/src/utils/render-item.d.ts.map +0 -1
  375. package/lib/typescript/src/utils/watermark.d.ts +0 -11
  376. package/lib/typescript/src/utils/watermark.d.ts.map +0 -1
  377. package/src/NativeReactNativeCamera.ts +0 -15
  378. package/src/assets/close.png +0 -0
  379. package/src/assets/home/record.png +0 -0
  380. package/src/assets/home/take.png +0 -0
  381. package/src/assets/preview/back.png +0 -0
  382. package/src/assets/preview/del.png +0 -0
  383. package/src/assets/preview/rotate.png +0 -0
  384. package/src/assets/preview/save.png +0 -0
  385. package/src/assets/tools/auto.png +0 -0
  386. package/src/assets/tools/defaultEye.png +0 -0
  387. package/src/assets/tools/enlarge.png +0 -0
  388. package/src/assets/tools/fishEye.png +0 -0
  389. package/src/assets/tools/narrow.png +0 -0
  390. package/src/assets/tools/off.png +0 -0
  391. package/src/assets/tools/on.png +0 -0
  392. package/src/assets/tools/volumeOff.png +0 -0
  393. package/src/assets/tools/volumeOn.png +0 -0
  394. package/src/camera/watermark/Render.tsx +0 -128
  395. package/src/camera/watermark/ViewShotWatermark.tsx +0 -134
  396. package/src/camera/watermark/index.tsx +0 -12
  397. package/src/components/Back.tsx +0 -37
  398. package/src/components/Delete.tsx +0 -30
  399. package/src/components/Modal/Confirm.tsx +0 -116
  400. package/src/components/Modal/index.tsx +0 -3
  401. package/src/components/Rotate.tsx +0 -32
  402. package/src/components/Save.tsx +0 -37
  403. package/src/hooks/useCamera.tsx/index.tsx +0 -95
  404. package/src/hooks/useCreation/index.ts +0 -25
  405. package/src/utils/common.ts +0 -67
  406. package/src/utils/render-item.tsx +0 -39
  407. package/src/utils/watermark.ts +0 -55
@@ -1,204 +1,113 @@
1
+ import { StyleSheet, TouchableOpacity, View } from 'react-native';
1
2
  import {
2
- Image,
3
- StyleSheet,
4
- Text,
5
- TouchableOpacity,
6
- View,
7
- type GestureResponderEvent,
8
- } from 'react-native';
9
- import React, { useState } from 'react';
10
- import {
11
- CameraModeEnum,
12
- formatUri,
13
- throttle,
14
- type CameraMode,
15
- type CameraModeType,
16
- } from '../../utils';
17
- import { Back, Rotate, PreviewThumbnail } from '../../components';
18
- import type { PhotoFile } from 'react-native-vision-camera';
19
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
3
+ Button,
4
+ Segmented,
5
+ r,
6
+ useThemedStyles,
7
+ type ColorTokens,
8
+ } from '@unif/react-native-design';
9
+ import type { CameraMode } from '../../utils';
10
+
11
+ type Props = {
12
+ modes: CameraMode[];
13
+ currentIndex: number;
14
+ recording: boolean;
15
+ onShutter: () => void;
16
+ onSelectMode: (i: number) => void;
17
+ onCancel: () => void;
18
+ onFinishBurst?: () => void;
19
+ burstCount?: number;
20
+ };
20
21
 
21
- const Take = require('../../assets/home/take.png');
22
+ const labelMap: Record<CameraMode['mode'], string> = {
23
+ single: '拍照',
24
+ continuous: '连拍',
25
+ video: '视频',
26
+ };
22
27
 
23
- const Footer: React.FC<{
24
- cameraMode: CameraModeType[];
25
- photos: PhotoFile[];
26
- backPress?: (event: GestureResponderEvent) => void;
27
- thumbnailPress?: (event: GestureResponderEvent) => void;
28
- savePress?: (event: GestureResponderEvent) => void;
29
- rotatePress?: (event: GestureResponderEvent) => void;
30
- takePress?: (event: GestureResponderEvent) => void;
31
- onChange?: (val: CameraModeType) => void;
32
- }> = ({
33
- cameraMode,
34
- photos,
35
- backPress,
36
- thumbnailPress,
37
- takePress,
38
- savePress,
39
- rotatePress,
40
- onChange,
41
- }) => {
42
- const isPhotos = () => photos.length > 0;
43
- const [stateText, setStateText] = useState('');
44
- const back = (e: GestureResponderEvent) => {
45
- backPress && backPress(e);
46
- };
47
- const [mode, setMode] = useState<CameraMode | undefined>(cameraMode[0]?.mode);
48
- const insets = useSafeAreaInsets();
28
+ export function Footer({
29
+ modes,
30
+ currentIndex,
31
+ recording,
32
+ onShutter,
33
+ onSelectMode,
34
+ onCancel,
35
+ onFinishBurst,
36
+ burstCount,
37
+ }: Props) {
38
+ const styles = useThemedStyles(makeStyles);
39
+ const modeItems = modes.map((m, i) => ({
40
+ id: String(i),
41
+ label: labelMap[m.mode],
42
+ testID: `mode-${m.mode}`,
43
+ }));
49
44
  return (
50
- <View style={[styles.footer, { paddingBottom: insets.bottom + 6 }]}>
51
- {stateText ? (
52
- <View>
53
- <Text style={styles.stateText}>{stateText}</Text>
45
+ <View style={styles.root}>
46
+ {!recording && modeItems.length > 0 && (
47
+ <View style={styles.modesRow}>
48
+ <Segmented
49
+ items={modeItems}
50
+ value={String(currentIndex)}
51
+ onChange={(v) => onSelectMode(Number(v))}
52
+ testID="mode-segmented"
53
+ />
54
54
  </View>
55
- ) : (
56
- <>
57
- <View style={styles.footerTop}>
58
- {cameraMode.map((item) => {
59
- return (
60
- <TouchableOpacity
61
- key={item.mode}
62
- style={[
63
- styles.footerTopText,
64
- item.mode === mode
65
- ? styles.footerTopTextSelected
66
- : undefined,
67
- ]}
68
- onPress={() => {
69
- if (item.mode !== mode) {
70
- setMode(item.mode);
71
- }
72
- if (cameraMode.length > 1) {
73
- onChange && onChange(item);
74
- }
75
- }}
76
- >
77
- <Text
78
- style={[
79
- styles.footerTopTextColor,
80
- item.mode === mode
81
- ? styles.footerTopTextSelected
82
- : undefined,
83
- ]}
84
- >
85
- {CameraModeEnum[item.mode]}
86
- </Text>
87
- </TouchableOpacity>
88
- );
89
- })}
90
- </View>
91
- <View style={styles.footerBottom}>
92
- <View style={styles.footerHorizontal}>
93
- {isPhotos() ? (
94
- <PreviewThumbnail
95
- uri={formatUri(photos[photos.length - 1]?.path || '')}
96
- onPress={thumbnailPress}
97
- />
98
- ) : (
99
- <Back onPress={back} />
100
- )}
101
- </View>
102
- <View style={styles.footerCenter}>
103
- {isPhotos() && (
104
- <Text style={styles.back} onPress={back}>
105
- 返回
106
- </Text>
107
- )}
108
- <TouchableOpacity
109
- onPress={throttle(
110
- (e: GestureResponderEvent) => takePress?.(e),
111
- 1000
112
- )}
113
- >
114
- <Image source={Take} style={styles.image} />
115
- </TouchableOpacity>
116
- {isPhotos() && (
117
- <Text
118
- style={styles.save}
119
- onPress={(e) => {
120
- setStateText('保存中...');
121
- savePress && savePress(e);
122
- }}
123
- >
124
- 保存
125
- </Text>
126
- )}
127
- </View>
128
- <View style={styles.footerHorizontal}>
129
- <Rotate onPress={rotatePress} />
130
- </View>
131
- </View>
132
- </>
133
55
  )}
56
+ <View style={styles.actions}>
57
+ <Button
58
+ variant="ghost"
59
+ label="取消"
60
+ onPress={onCancel}
61
+ testID="cancel-btn"
62
+ disabled={recording}
63
+ />
64
+ {/* shutter 按钮:相机 UX 惯例的圆形快门,无 design 对应组件,保留自定义实现 */}
65
+ <TouchableOpacity
66
+ onPress={onShutter}
67
+ testID="shutter-btn"
68
+ style={[styles.shutter, recording && styles.shutterRecording]}
69
+ />
70
+ {onFinishBurst && burstCount && burstCount > 0 ? (
71
+ <Button
72
+ variant="primary"
73
+ label={`完成 (${burstCount})`}
74
+ onPress={onFinishBurst}
75
+ testID="finish-burst-btn"
76
+ />
77
+ ) : (
78
+ <View style={styles.placeholder} />
79
+ )}
80
+ </View>
134
81
  </View>
135
82
  );
136
- };
137
-
138
- export default Footer;
83
+ }
139
84
 
140
- const styles = StyleSheet.create({
141
- image: { width: 62, height: 62 },
142
- stateText: {
143
- textAlign: 'center',
144
- color: '#fff',
145
- },
146
- footer: {
147
- ...StyleSheet.absoluteFillObject,
148
- top: undefined,
149
- backgroundColor: 'rgba(0,0,0,0.3)',
150
- paddingTop: 6,
151
- display: 'flex',
152
- borderTopLeftRadius: 10,
153
- borderTopRightRadius: 10,
154
- paddingHorizontal: 16,
155
- zIndex: 9,
156
- },
157
- footerBottom: {
158
- flexDirection: 'row',
159
- justifyContent: 'space-between',
160
- alignItems: 'center',
161
- },
162
- footerHorizontal: { width: 34, height: 34 },
163
- footerCenter: {
164
- flex: 1,
165
- justifyContent: 'center',
166
- alignItems: 'center',
167
- flexDirection: 'row',
168
- },
169
- footerTop: {
170
- display: 'flex',
171
- flexDirection: 'row',
172
- justifyContent: 'center',
173
- paddingBottom: 6,
174
- },
175
- footerTopText: {
176
- paddingVertical: 6,
177
- paddingHorizontal: 24,
178
- marginHorizontal: 2,
179
- borderRadius: 10,
180
- },
181
- footerTopTextColor: {
182
- color: '#fff',
183
- borderRadius: 10,
184
- fontSize: 16,
185
- },
186
- footerTopTextSelected: {
187
- color: '#E96C00',
188
- borderRadius: 10,
189
- },
190
- save: {
191
- flex: 1,
192
- paddingVertical: 24,
193
- marginLeft: 24,
194
- color: '#fff',
195
- textAlign: 'left',
196
- },
197
- back: {
198
- paddingVertical: 24,
199
- flex: 1,
200
- textAlign: 'right',
201
- color: '#fff',
202
- marginRight: 24,
203
- },
204
- });
85
+ const makeStyles = (c: ColorTokens) =>
86
+ StyleSheet.create({
87
+ root: {
88
+ position: 'absolute',
89
+ bottom: r(30),
90
+ left: 0,
91
+ right: 0,
92
+ alignItems: 'center',
93
+ },
94
+ modesRow: { marginBottom: r(16) },
95
+ actions: {
96
+ flexDirection: 'row',
97
+ width: '100%',
98
+ justifyContent: 'space-around',
99
+ alignItems: 'center',
100
+ },
101
+ // shutter 圆形快门:相机 UX 惯例,沿用白底高对比度.
102
+ // 录制态切换为 c.error 红底标识"录制中".
103
+ shutter: {
104
+ width: r(64),
105
+ height: r(64),
106
+ borderRadius: r(32),
107
+ backgroundColor: c.surface,
108
+ borderWidth: r(4),
109
+ borderColor: c.outline,
110
+ },
111
+ shutterRecording: { backgroundColor: c.error },
112
+ placeholder: { width: r(60) },
113
+ });
@@ -1,2 +1 @@
1
- import Footer from './Footer';
2
- export { Footer };
1
+ export { Footer } from './Footer';
@@ -1,13 +1,12 @@
1
- /*
2
- * @Author: 刘利军
3
- * @Date: 2024-01-12 13:44:47
4
- * @LastEditors: 刘利军
5
- * @LastEditTime: 2024-12-25 11:04:23
6
- * @Description:
7
- * @PageName:
8
- */
9
- import Camera from './Camera';
10
- import NoCamera from './NoCamera';
11
- import NoPermission from './NoPermission';
12
- import ModalView from './ModalView';
13
- export { Camera, NoCamera, NoPermission, ModalView };
1
+ export { ModalView } from './ModalView';
2
+ export { Container } from './Container';
3
+ export { NoPermission } from './NoPermission';
4
+ export { NoCamera } from './NoCamera';
5
+ export { ErrorView } from './Error';
6
+ export { Camera, type CameraHandle } from './Camera';
7
+ export { FocusIndicator } from './FocusIndicator';
8
+ export {
9
+ capturePhotoToFile,
10
+ type CapturedPhotoRaw,
11
+ } from './capturePhotoHelper';
12
+ export { Footer } from './footer';
@@ -1,113 +1,32 @@
1
- /*
2
- * @Author: 刘利军
3
- * @Date: 2024-12-02 13:37:36
4
- * @LastEditors: 刘利军
5
- * @LastEditTime: 2024-12-25 17:10:52
6
- * @Description:
7
- * @PageName:
8
- */
9
- import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
10
- import React, { useState } from 'react';
1
+ import { useState } from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+ import { r } from '@unif/react-native-design';
4
+ import type { CustomPhotoFile } from '../../utils';
5
+ import { Carousel } from '../../components/Carousel';
6
+ import { PreviewThumbnail } from '../../components/PreviewThumbnail';
11
7
 
12
- import { CameraModeEnum, type CameraModeType } from '../../utils';
13
- import { Back, Delete, MyCarousel } from '../../components';
14
- import { pxToDpWidth, type CustomPhotoFile } from '../../utils';
15
- import PreviewFooter from './PreviewFooter';
8
+ type Props = { files: CustomPhotoFile[] };
16
9
 
17
- import { styles as singleStyles, type CommonProps } from './SinglePre';
18
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
19
- const PreView: React.FC<
20
- {
21
- cameraMode: CameraModeType[];
22
- data: CustomPhotoFile[];
23
- } & CommonProps
24
- > = ({ cameraMode, data, onBack, onDel }) => {
25
- const inset = useSafeAreaInsets();
26
- const [mode, setMode] = useState(data[0]?.mode);
27
- const showData = data.filter((item) => item.mode === mode);
28
- const [snapToIndex, setSnapToIndex] = useState<number>(0);
10
+ export function PreView({ files }: Props) {
11
+ const [index, setIndex] = useState(0);
29
12
  return (
30
- <View style={styles.container}>
31
- <View style={styles.mode}>
32
- {cameraMode
33
- .filter((item) => {
34
- return data.some((dItem) => {
35
- return item.mode === dItem.mode;
36
- });
37
- })
38
- .map((item, index) => {
39
- return (
40
- <TouchableOpacity
41
- style={styles.modeItem}
42
- key={`${item.mode}_${index}`}
43
- onPress={() => setMode(item.mode)}
44
- >
45
- <Text
46
- style={[
47
- styles.modeText,
48
- item.mode === mode ? styles.modeTextSelected : undefined,
49
- ]}
50
- >
51
- {CameraModeEnum[item.mode]}
52
- </Text>
53
- </TouchableOpacity>
54
- );
55
- })}
56
- </View>
57
- <View style={{ paddingHorizontal: pxToDpWidth(34) }}>
58
- <MyCarousel data={showData} onSnapToItem={setSnapToIndex} />
59
- </View>
60
- <View style={[singleStyles.footer, { bottom: inset.bottom + 16 }]}>
61
- <PreviewFooter
62
- actions={[
63
- <Back
64
- key="back"
65
- style={singleStyles.image}
66
- text="返回"
67
- onPress={onBack}
68
- />,
69
- <Delete
70
- key="del"
71
- style={singleStyles.image}
72
- text="删除"
73
- onPress={async () => {
74
- if (onDel) {
75
- const isDel = await onDel(showData[snapToIndex]);
76
- if (isDel && snapToIndex > 0) {
77
- setSnapToIndex((val) => val - 1);
78
- }
79
- }
80
- }}
81
- />,
82
- ]}
83
- />
13
+ <View style={styles.root} testID="multi-pre">
14
+ <Carousel data={files} onIndexChange={setIndex} />
15
+ <View style={styles.thumbWrap}>
16
+ <PreviewThumbnail files={files} currentIndex={index} onTap={setIndex} />
84
17
  </View>
85
18
  </View>
86
19
  );
87
- };
88
-
89
- export default PreView;
20
+ }
90
21
 
91
22
  const styles = StyleSheet.create({
92
- container: {
93
- flex: 1,
94
- backgroundColor: '#3C3A3E',
95
- },
96
- mode: {
97
- flexDirection: 'row',
98
- marginVertical: pxToDpWidth(24),
99
- },
100
- modeItem: {
101
- padding: 10,
102
- },
103
- modeText: {
104
- color: '#fff',
105
- fontSize: 14,
106
- fontWeight: 400,
107
- },
108
- modeTextSelected: {
109
- color: '#E96C00',
110
- fontSize: 16,
111
- fontWeight: 500,
23
+ // 多图预览容器固定黑底:相机 UX 惯例,与 SinglePre / PreViewContainer 一致.
24
+ root: { flex: 1, backgroundColor: '#000' },
25
+ thumbWrap: {
26
+ position: 'absolute',
27
+ bottom: r(100),
28
+ left: 0,
29
+ right: 0,
30
+ alignItems: 'center',
112
31
  },
113
32
  });
@@ -1,34 +1,30 @@
1
- /*
2
- * @Author: 刘利军
3
- * @Date: 2024-12-02 13:37:36
4
- * @LastEditors: 刘利军
5
- * @LastEditTime: 2024-12-27 13:29:19
6
- * @Description:
7
- * @PageName:
8
- */
9
1
  import { StyleSheet, View } from 'react-native';
10
- import React, { type PropsWithChildren } from 'react';
2
+ import type { CustomPhotoFile } from '../../utils';
3
+ import { SinglePre } from './SinglePre';
4
+ import { PreView } from './PreView';
5
+ import { PreviewFooter } from './PreviewFooter';
11
6
 
12
- const PreViewContainer: React.FC<PropsWithChildren<{ visible: boolean }>> = ({
13
- visible,
14
- children,
15
- }) => {
16
- if (!visible) {
17
- return null;
18
- }
19
- return <View style={styles.container}>{children}</View>;
7
+ type Props = {
8
+ files: CustomPhotoFile[];
9
+ onRetake: () => void;
10
+ onConfirm: () => void;
20
11
  };
21
12
 
22
- export default PreViewContainer;
13
+ export function PreViewContainer({ files, onRetake, onConfirm }: Props) {
14
+ const first = files[0];
15
+ return (
16
+ <View style={styles.root}>
17
+ {files.length === 1 && first != null ? (
18
+ <SinglePre file={first} />
19
+ ) : files.length > 1 ? (
20
+ <PreView files={files} />
21
+ ) : null}
22
+ <PreviewFooter onRetake={onRetake} onConfirm={onConfirm} />
23
+ </View>
24
+ );
25
+ }
23
26
 
24
27
  const styles = StyleSheet.create({
25
- container: {
26
- position: 'absolute',
27
- top: 0,
28
- bottom: 0,
29
- right: 0,
30
- left: 0,
31
- backgroundColor: '#fff',
32
- zIndex: 19,
33
- },
28
+ // 预览容器固定黑底:相机 UX 惯例,与 SinglePre / PreView / SlideItem 一致.
29
+ root: { flex: 1, backgroundColor: '#000' },
34
30
  });
@@ -1,32 +1,38 @@
1
- /*
2
- * @Author: 刘利军
3
- * @Date: 2024-12-16 09:21:56
4
- * @LastEditors: 刘利军
5
- * @LastEditTime: 2024-12-25 17:12:01
6
- * @Description:
7
- * @PageName:
8
- */
9
1
  import { StyleSheet, View } from 'react-native';
10
- import React, { type ReactNode } from 'react';
2
+ import { Button, r } from '@unif/react-native-design';
11
3
 
12
- export interface PreviewFooterProps {
13
- actions: ReactNode[];
14
- }
15
- const PreviewFooter: React.FC<PreviewFooterProps> = ({ actions }) => {
4
+ type Props = {
5
+ onRetake: () => void;
6
+ onConfirm: () => void;
7
+ };
8
+
9
+ export function PreviewFooter({ onRetake, onConfirm }: Props) {
16
10
  return (
17
- <View style={styles.footer}>
18
- {actions.map((item) => {
19
- return item;
20
- })}
11
+ <View style={styles.root}>
12
+ <Button
13
+ variant="ghost"
14
+ label="重拍"
15
+ onPress={onRetake}
16
+ testID="retake-btn"
17
+ />
18
+ <Button
19
+ variant="primary"
20
+ label="使用照片"
21
+ onPress={onConfirm}
22
+ testID="confirm-btn"
23
+ />
21
24
  </View>
22
25
  );
23
- };
24
-
25
- export default PreviewFooter;
26
+ }
26
27
 
27
28
  const styles = StyleSheet.create({
28
- footer: {
29
+ root: {
30
+ position: 'absolute',
31
+ bottom: r(40),
32
+ left: 0,
33
+ right: 0,
29
34
  flexDirection: 'row',
30
- justifyContent: 'space-evenly',
35
+ justifyContent: 'space-around',
36
+ alignItems: 'center',
31
37
  },
32
38
  });