@xhsreds/reds-rn-next 0.1.2 → 0.1.4

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 (335) hide show
  1. package/benchmarks/out.json +900 -820
  2. package/coverage/.tmp/coverage-0.json +1 -1
  3. package/coverage/.tmp/coverage-1.json +1 -1
  4. package/coverage/.tmp/coverage-10.json +1 -1
  5. package/coverage/.tmp/coverage-12.json +1 -1
  6. package/coverage/.tmp/coverage-13.json +1 -1
  7. package/coverage/.tmp/coverage-14.json +1 -1
  8. package/coverage/.tmp/coverage-15.json +1 -1
  9. package/coverage/.tmp/coverage-16.json +1 -1
  10. package/coverage/.tmp/coverage-17.json +1 -1
  11. package/coverage/.tmp/coverage-18.json +1 -1
  12. package/coverage/.tmp/coverage-19.json +1 -1
  13. package/coverage/.tmp/coverage-2.json +1 -1
  14. package/coverage/.tmp/coverage-20.json +1 -1
  15. package/coverage/.tmp/coverage-21.json +1 -1
  16. package/coverage/.tmp/coverage-22.json +1 -1
  17. package/coverage/.tmp/coverage-23.json +1 -1
  18. package/coverage/.tmp/coverage-24.json +1 -1
  19. package/coverage/.tmp/coverage-25.json +1 -1
  20. package/coverage/.tmp/coverage-26.json +1 -1
  21. package/coverage/.tmp/coverage-27.json +1 -1
  22. package/coverage/.tmp/coverage-28.json +1 -1
  23. package/coverage/.tmp/coverage-29.json +1 -0
  24. package/coverage/.tmp/coverage-3.json +1 -1
  25. package/coverage/.tmp/coverage-30.json +1 -0
  26. package/coverage/.tmp/coverage-31.json +1 -0
  27. package/coverage/.tmp/coverage-32.json +1 -0
  28. package/coverage/.tmp/coverage-4.json +1 -1
  29. package/coverage/.tmp/coverage-5.json +1 -1
  30. package/coverage/.tmp/coverage-6.json +1 -1
  31. package/coverage/.tmp/coverage-7.json +1 -1
  32. package/coverage/.tmp/coverage-8.json +1 -1
  33. package/coverage/.tmp/coverage-9.json +1 -1
  34. package/lib/cjs/_chunks/CkkZzOy_.js +23 -0
  35. package/lib/cjs/_chunks/CkkZzOy_.js.map +1 -0
  36. package/lib/cjs/_chunks/GhFTd1qc.js +22 -0
  37. package/lib/cjs/_chunks/GhFTd1qc.js.map +1 -0
  38. package/lib/cjs/_chunks/RPaDcSae.js +20 -0
  39. package/lib/cjs/_chunks/RPaDcSae.js.map +1 -0
  40. package/lib/cjs/_chunks/bwo-gq0b.js +66 -0
  41. package/lib/cjs/_chunks/bwo-gq0b.js.map +1 -0
  42. package/lib/cjs/components/ActionSheets/ActionSheets.js +99 -0
  43. package/lib/cjs/components/ActionSheets/ActionSheets.js.map +1 -0
  44. package/lib/cjs/components/ActionSheets/index.js +37 -0
  45. package/lib/cjs/components/ActionSheets/index.js.map +1 -0
  46. package/lib/cjs/components/ActionSheets/interface/index.js +9 -0
  47. package/lib/cjs/components/ActionSheets/interface/index.js.map +1 -0
  48. package/lib/cjs/components/ActionSheets/styles.js +59 -0
  49. package/lib/cjs/components/ActionSheets/styles.js.map +1 -0
  50. package/lib/cjs/components/Alert/Alert.js +143 -0
  51. package/lib/cjs/components/Alert/Alert.js.map +1 -0
  52. package/lib/cjs/components/Alert/index.js +145 -0
  53. package/lib/cjs/components/Alert/index.js.map +1 -0
  54. package/lib/cjs/components/Alert/interface/index.js +8 -0
  55. package/lib/cjs/components/Alert/interface/index.js.map +1 -0
  56. package/lib/cjs/components/Alert/styles.js +124 -0
  57. package/lib/cjs/components/Alert/styles.js.map +1 -0
  58. package/lib/cjs/components/Avatar/Avatar.js +1 -1
  59. package/lib/cjs/components/Avatar/Avatar.js.map +1 -1
  60. package/lib/cjs/components/AvatarGroup/AvatarGroup.js +97 -98
  61. package/lib/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
  62. package/lib/cjs/components/AvatarGroup/index.js +61 -21
  63. package/lib/cjs/components/AvatarGroup/index.js.map +1 -1
  64. package/lib/cjs/components/Button/Button.js +1 -1
  65. package/lib/cjs/components/Button/Button.js.map +1 -1
  66. package/lib/cjs/components/FAB/FAB.js +1 -1
  67. package/lib/cjs/components/FAB/FAB.js.map +1 -1
  68. package/lib/cjs/components/Image/hook/index.js +2 -2
  69. package/lib/cjs/components/Image/hook/index.js.map +1 -1
  70. package/lib/cjs/components/ImagePreview/ImagePreview.js +96 -68
  71. package/lib/cjs/components/ImagePreview/ImagePreview.js.map +1 -1
  72. package/lib/cjs/components/ImagePreview/ImageViewer3.js +3 -3
  73. package/lib/cjs/components/ImagePreview/ImageViewer3.js.map +1 -1
  74. package/lib/cjs/components/ImagePreview/index.js +65 -20
  75. package/lib/cjs/components/ImagePreview/index.js.map +1 -1
  76. package/lib/cjs/components/List/ListItem/ListItem.js +94 -113
  77. package/lib/cjs/components/List/ListItem/ListItem.js.map +1 -1
  78. package/lib/cjs/components/List/index.js +59 -18
  79. package/lib/cjs/components/List/index.js.map +1 -1
  80. package/lib/cjs/components/Picker/Picker.js +6 -1
  81. package/lib/cjs/components/Picker/Picker.js.map +1 -1
  82. package/lib/cjs/components/Picker/index.js +6 -1
  83. package/lib/cjs/components/Picker/index.js.map +1 -1
  84. package/lib/cjs/components/Sheets/Sheets.js +168 -16
  85. package/lib/cjs/components/Sheets/Sheets.js.map +1 -1
  86. package/lib/cjs/components/Sheets/index.js +9 -3
  87. package/lib/cjs/components/Sheets/index.js.map +1 -1
  88. package/lib/cjs/components/Sheets/interface/index.js +6 -1
  89. package/lib/cjs/components/Sheets/interface/index.js.map +1 -1
  90. package/lib/cjs/components/Sheets/styles.js +39 -11
  91. package/lib/cjs/components/Sheets/styles.js.map +1 -1
  92. package/lib/cjs/components/Silder/Silder.js +71 -0
  93. package/lib/cjs/components/Silder/Silder.js.map +1 -0
  94. package/lib/cjs/components/Silder/index.js +18 -0
  95. package/lib/cjs/components/Silder/index.js.map +1 -0
  96. package/lib/cjs/components/Silder/interface/index.js +9 -0
  97. package/lib/cjs/components/Silder/interface/index.js.map +1 -0
  98. package/lib/cjs/components/Silder/styles.js +29 -0
  99. package/lib/cjs/components/Silder/styles.js.map +1 -0
  100. package/lib/cjs/components/TabBar/TabBar.js +10 -10
  101. package/lib/cjs/components/TabBar/TabBar.js.map +1 -1
  102. package/lib/cjs/components/Tag/Tag.js +1 -1
  103. package/lib/cjs/components/Tag/Tag.js.map +1 -1
  104. package/lib/cjs/components/Text/hooks/loadFontFromFile.js +1 -1
  105. package/lib/cjs/components/Text/hooks/loadFontFromFile.js.map +1 -1
  106. package/lib/cjs/index.js +254 -30
  107. package/lib/cjs/index.js.map +1 -1
  108. package/lib/esm/_chunks/BJ2Kj1Vd.js +58 -0
  109. package/lib/esm/_chunks/BJ2Kj1Vd.js.map +1 -0
  110. package/lib/esm/_chunks/BKEXyO9m.js +19 -0
  111. package/lib/esm/_chunks/BKEXyO9m.js.map +1 -0
  112. package/lib/esm/_chunks/{D-HreRcG.js → CwHnr-H1.js} +2 -2
  113. package/lib/esm/_chunks/{D-HreRcG.js.map → CwHnr-H1.js.map} +1 -1
  114. package/lib/esm/_chunks/DHJk9lIr.js +19 -0
  115. package/lib/esm/_chunks/DHJk9lIr.js.map +1 -0
  116. package/lib/esm/_chunks/RRfNwNcs.js +17 -0
  117. package/lib/esm/_chunks/RRfNwNcs.js.map +1 -0
  118. package/lib/esm/components/ActionSheets/ActionSheets.js +95 -0
  119. package/lib/esm/components/ActionSheets/ActionSheets.js.map +1 -0
  120. package/lib/esm/components/ActionSheets/index.js +31 -0
  121. package/lib/esm/components/ActionSheets/index.js.map +1 -0
  122. package/lib/esm/components/ActionSheets/interface/index.js +2 -0
  123. package/lib/esm/components/ActionSheets/interface/index.js.map +1 -0
  124. package/lib/esm/components/ActionSheets/styles.js +55 -0
  125. package/lib/esm/components/ActionSheets/styles.js.map +1 -0
  126. package/lib/esm/components/Alert/Alert.js +135 -0
  127. package/lib/esm/components/Alert/Alert.js.map +1 -0
  128. package/lib/esm/components/Alert/index.js +139 -0
  129. package/lib/esm/components/Alert/index.js.map +1 -0
  130. package/lib/esm/components/Alert/interface/index.js +2 -0
  131. package/lib/esm/components/Alert/interface/index.js.map +1 -0
  132. package/lib/esm/components/Alert/styles.js +122 -0
  133. package/lib/esm/components/Alert/styles.js.map +1 -0
  134. package/lib/esm/components/Avatar/Avatar.js +2 -2
  135. package/lib/esm/components/Avatar/Avatar.js.map +1 -1
  136. package/lib/esm/components/Avatar/index.js +1 -1
  137. package/lib/esm/components/Avatar/styles.js +1 -1
  138. package/lib/esm/components/AvatarGroup/AvatarGroup.js +95 -100
  139. package/lib/esm/components/AvatarGroup/AvatarGroup.js.map +1 -1
  140. package/lib/esm/components/AvatarGroup/index.js +59 -19
  141. package/lib/esm/components/AvatarGroup/index.js.map +1 -1
  142. package/lib/esm/components/Badge/Badge.js +1 -1
  143. package/lib/esm/components/Badge/index.js +1 -1
  144. package/lib/esm/components/BottomBar/BottomBar.js +1 -1
  145. package/lib/esm/components/BottomBar/index.js +1 -1
  146. package/lib/esm/components/Button/Button.js +2 -2
  147. package/lib/esm/components/Button/Button.js.map +1 -1
  148. package/lib/esm/components/Button/index.js +1 -1
  149. package/lib/esm/components/Button/styleMap.js +1 -1
  150. package/lib/esm/components/Collapse/Collapse.js +1 -1
  151. package/lib/esm/components/Collapse/Item/Item.js +1 -1
  152. package/lib/esm/components/Collapse/Item/styles.js +1 -1
  153. package/lib/esm/components/Collapse/index.js +1 -1
  154. package/lib/esm/components/ConfigProvider/ConfigProvider.js +1 -1
  155. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +1 -1
  156. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js +1 -1
  157. package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js +1 -1
  158. package/lib/esm/components/ConfigProvider/index.js +1 -1
  159. package/lib/esm/components/Divider/Divider.js +1 -1
  160. package/lib/esm/components/Divider/index.js +1 -1
  161. package/lib/esm/components/Divider/styles.js +1 -1
  162. package/lib/esm/components/DropDown/DropDown.js +1 -1
  163. package/lib/esm/components/DropDown/DropDownItem.js +1 -1
  164. package/lib/esm/components/DropDown/index.js +1 -1
  165. package/lib/esm/components/DropDown/styles.js +1 -1
  166. package/lib/esm/components/Empty/Empty.js +1 -1
  167. package/lib/esm/components/Empty/index.js +1 -1
  168. package/lib/esm/components/Empty/styles.js +1 -1
  169. package/lib/esm/components/FAB/FAB.js +2 -2
  170. package/lib/esm/components/FAB/FAB.js.map +1 -1
  171. package/lib/esm/components/FAB/index.js +1 -1
  172. package/lib/esm/components/Image/Image.js +1 -1
  173. package/lib/esm/components/Image/hook/index.js +3 -3
  174. package/lib/esm/components/Image/hook/index.js.map +1 -1
  175. package/lib/esm/components/Image/index.js +1 -1
  176. package/lib/esm/components/ImagePreview/Gesture/useGesture.js +1 -1
  177. package/lib/esm/components/ImagePreview/ImagePreview.js +95 -71
  178. package/lib/esm/components/ImagePreview/ImagePreview.js.map +1 -1
  179. package/lib/esm/components/ImagePreview/ImageViewer.js +1 -1
  180. package/lib/esm/components/ImagePreview/ImageViewer3.js +4 -4
  181. package/lib/esm/components/ImagePreview/ImageViewer3.js.map +1 -1
  182. package/lib/esm/components/ImagePreview/index.js +63 -18
  183. package/lib/esm/components/ImagePreview/index.js.map +1 -1
  184. package/lib/esm/components/List/ListItem/ListItem.js +92 -115
  185. package/lib/esm/components/List/ListItem/ListItem.js.map +1 -1
  186. package/lib/esm/components/List/index.js +59 -18
  187. package/lib/esm/components/List/index.js.map +1 -1
  188. package/lib/esm/components/Picker/Picker.js +7 -2
  189. package/lib/esm/components/Picker/Picker.js.map +1 -1
  190. package/lib/esm/components/Picker/index.js +7 -2
  191. package/lib/esm/components/Picker/index.js.map +1 -1
  192. package/lib/esm/components/PickerView/PickerView.js +1 -1
  193. package/lib/esm/components/PickerView/Wheel.js +1 -1
  194. package/lib/esm/components/PickerView/index.js +1 -1
  195. package/lib/esm/components/Popover/Popover.js +1 -1
  196. package/lib/esm/components/Popover/component.js +1 -1
  197. package/lib/esm/components/Popover/hook.js +1 -1
  198. package/lib/esm/components/Popover/index.js +1 -1
  199. package/lib/esm/components/Portal/core/PortalProvider.js +1 -1
  200. package/lib/esm/components/Portal/index.js +1 -1
  201. package/lib/esm/components/Progress/Progress.js +1 -1
  202. package/lib/esm/components/Progress/index.js +1 -1
  203. package/lib/esm/components/ProgressIndicator/ProgressIndicator.js +1 -1
  204. package/lib/esm/components/ProgressIndicator/index.js +1 -1
  205. package/lib/esm/components/ProgressIndicator/styles.js +1 -1
  206. package/lib/esm/components/PullRefresh/PullRefresh.js +1 -1
  207. package/lib/esm/components/PullRefresh/component.js +1 -1
  208. package/lib/esm/components/PullRefresh/index.js +1 -1
  209. package/lib/esm/components/Result/Result.js +1 -1
  210. package/lib/esm/components/Result/index.js +1 -1
  211. package/lib/esm/components/Result/styles.js +1 -1
  212. package/lib/esm/components/Sheets/Sheets.js +170 -18
  213. package/lib/esm/components/Sheets/Sheets.js.map +1 -1
  214. package/lib/esm/components/Sheets/index.js +9 -3
  215. package/lib/esm/components/Sheets/index.js.map +1 -1
  216. package/lib/esm/components/Sheets/interface/index.js +1 -1
  217. package/lib/esm/components/Sheets/styles.js +39 -11
  218. package/lib/esm/components/Sheets/styles.js.map +1 -1
  219. package/lib/esm/components/Silder/Silder.js +67 -0
  220. package/lib/esm/components/Silder/Silder.js.map +1 -0
  221. package/lib/esm/components/Silder/index.js +12 -0
  222. package/lib/esm/components/Silder/index.js.map +1 -0
  223. package/lib/esm/components/Silder/interface/index.js +3 -0
  224. package/lib/esm/components/Silder/interface/index.js.map +1 -0
  225. package/lib/esm/components/Silder/styles.js +25 -0
  226. package/lib/esm/components/Silder/styles.js.map +1 -0
  227. package/lib/esm/components/Skeleton/Item/SkeletonItem.js +1 -1
  228. package/lib/esm/components/Skeleton/Skeleton.js +1 -1
  229. package/lib/esm/components/Skeleton/index.js +1 -1
  230. package/lib/esm/components/Switch/Switch.js +1 -1
  231. package/lib/esm/components/Switch/index.js +1 -1
  232. package/lib/esm/components/Tab/Tab.js +1 -1
  233. package/lib/esm/components/Tab/index.js +1 -1
  234. package/lib/esm/components/Tab/styles.js +1 -1
  235. package/lib/esm/components/TabBar/TabBar.js +11 -11
  236. package/lib/esm/components/TabBar/TabBar.js.map +1 -1
  237. package/lib/esm/components/TabBar/index.js +1 -1
  238. package/lib/esm/components/Tag/Tag.js +2 -2
  239. package/lib/esm/components/Tag/Tag.js.map +1 -1
  240. package/lib/esm/components/Tag/index.js +1 -1
  241. package/lib/esm/components/Text/Text.js +1 -1
  242. package/lib/esm/components/Text/hooks/cloneContainer.js +1 -1
  243. package/lib/esm/components/Text/hooks/index.js +1 -1
  244. package/lib/esm/components/Text/hooks/loadFontFromFile.js +2 -2
  245. package/lib/esm/components/Text/hooks/loadFontFromFile.js.map +1 -1
  246. package/lib/esm/components/Text/index.js +1 -1
  247. package/lib/esm/components/Text/styles.js +1 -1
  248. package/lib/esm/components/Toast/Toast.js +1 -1
  249. package/lib/esm/components/Toast/api.js +1 -1
  250. package/lib/esm/components/Toast/index.js +1 -1
  251. package/lib/esm/components/Toast/styles.js +1 -1
  252. package/lib/esm/index.js +253 -28
  253. package/lib/esm/index.js.map +1 -1
  254. package/lib/types/components/ActionSheets/ActionSheets.d.ts +10 -0
  255. package/lib/types/components/ActionSheets/demo/index.d.ts +2 -0
  256. package/lib/types/components/ActionSheets/index.d.ts +4 -0
  257. package/lib/types/components/ActionSheets/interface/index.d.ts +23 -0
  258. package/lib/types/components/ActionSheets/styles.d.ts +51 -0
  259. package/lib/types/components/ActionSheets/test/index.bench.d.ts +1 -0
  260. package/lib/types/components/ActionSheets/test/index.test.d.ts +1 -0
  261. package/lib/types/components/ActionSheets/test/paper.bench.d.ts +1 -0
  262. package/lib/types/components/Alert/Alert.d.ts +4 -0
  263. package/lib/types/components/Alert/demo/index.d.ts +2 -0
  264. package/lib/types/components/Alert/index.d.ts +4 -0
  265. package/lib/types/components/Alert/interface/index.d.ts +35 -0
  266. package/lib/types/components/Alert/styles.d.ts +108 -0
  267. package/lib/types/components/Alert/test/index.bench.d.ts +1 -0
  268. package/lib/types/components/Alert/test/index.test.d.ts +1 -0
  269. package/lib/types/components/Alert/test/paper.bench.d.ts +1 -0
  270. package/lib/types/components/FAB/test/paper.bench.d.ts +1 -0
  271. package/lib/types/components/Sheets/Sheets.d.ts +17 -1
  272. package/lib/types/components/Sheets/interface/index.d.ts +45 -0
  273. package/lib/types/components/Sheets/styles.d.ts +38 -9
  274. package/lib/types/components/Sheets/test/index.test.d.ts +1 -1
  275. package/lib/types/components/Silder/Silder.d.ts +13 -0
  276. package/lib/types/components/Silder/demo/index.d.ts +2 -0
  277. package/lib/types/components/Silder/index.d.ts +4 -0
  278. package/lib/types/components/Silder/interface/index.d.ts +19 -0
  279. package/lib/types/components/Silder/styles.d.ts +20 -0
  280. package/lib/types/components/Silder/test/index.bench.d.ts +1 -0
  281. package/lib/types/components/Silder/test/index.test.d.ts +1 -0
  282. package/lib/types/index.d.ts +6 -0
  283. package/package.json +2 -3
  284. package/src/components/ActionSheets/ActionSheets.tsx +66 -0
  285. package/src/components/ActionSheets/demo/index.tsx +65 -0
  286. package/src/components/ActionSheets/doc/index.mdx +24 -0
  287. package/src/components/ActionSheets/index.ts +5 -0
  288. package/src/components/ActionSheets/interface/index.ts +27 -0
  289. package/src/components/ActionSheets/styles.ts +54 -0
  290. package/src/components/ActionSheets/test/index.bench.tsx +13 -0
  291. package/src/components/ActionSheets/test/index.test.tsx +81 -0
  292. package/src/components/ActionSheets/test/paper.bench.tsx +17 -0
  293. package/src/components/Alert/Alert.tsx +170 -0
  294. package/src/components/Alert/demo/index.tsx +234 -0
  295. package/src/components/Alert/doc/index.mdx +37 -0
  296. package/src/components/Alert/index.ts +5 -0
  297. package/src/components/Alert/interface/index.ts +35 -0
  298. package/src/components/Alert/styles.ts +116 -0
  299. package/src/components/Alert/test/__snapshots__/index.test.tsx.snap +519 -0
  300. package/src/components/Alert/test/index.bench.tsx +13 -0
  301. package/src/components/Alert/test/index.test.tsx +62 -0
  302. package/src/components/Alert/test/paper.bench.tsx +26 -0
  303. package/src/components/Avatar/test/__snapshots__/index.test.tsx.snap +32 -0
  304. package/src/components/Avatar/test/paper.bench.tsx +1 -1
  305. package/src/components/Button/test/__snapshots__/index.test.tsx.snap +0 -10
  306. package/src/components/Divider/test/__snapshots__/index.test.tsx.snap +420 -6
  307. package/src/components/Divider/test/index.test.tsx +43 -35
  308. package/src/components/FAB/test/__snapshots__/index.test.tsx.snap +0 -2
  309. package/src/components/FAB/test/paper.bench.tsx +12 -0
  310. package/src/components/Picker/test/index.test.tsx +17 -25
  311. package/src/components/Progress/test/__snapshots__/index.test.tsx.snap +332 -3
  312. package/src/components/Progress/test/index.test.tsx +29 -19
  313. package/src/components/PullRefresh/test/index.bench.tsx +1 -1
  314. package/src/components/Sheets/Sheets.tsx +293 -20
  315. package/src/components/Sheets/demo/index.tsx +191 -14
  316. package/src/components/Sheets/doc/index.mdx +16 -5
  317. package/src/components/Sheets/interface/index.ts +50 -0
  318. package/src/components/Sheets/styles.ts +38 -10
  319. package/src/components/Sheets/test/index.test.tsx +71 -48
  320. package/src/components/Sheets/test/paper.bench.tsx +1 -1
  321. package/src/components/Silder/Silder.tsx +49 -0
  322. package/src/components/Silder/demo/index.tsx +53 -0
  323. package/src/components/Silder/doc/index.mdx +26 -0
  324. package/src/components/Silder/index.ts +5 -0
  325. package/src/components/Silder/interface/index.ts +20 -0
  326. package/src/components/Silder/styles.ts +24 -0
  327. package/src/components/Silder/test/index.bench.tsx +13 -0
  328. package/src/components/Silder/test/index.test.tsx +18 -0
  329. package/src/components/TabBar/TabBar.tsx +17 -17
  330. package/src/components/Toast/test/paper.bench.tsx +9 -5
  331. package/src/index.ts +17 -0
  332. package/lib/cjs/_chunks/DIhBCUjt.js +0 -17
  333. package/lib/cjs/_chunks/DIhBCUjt.js.map +0 -1
  334. package/lib/esm/_chunks/B3_9dzWY.js +0 -14
  335. package/lib/esm/_chunks/B3_9dzWY.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ import React from "react";
2
+ import { render, fireEvent } from "@testing-library/react-native";
3
+ import { describe, it, expect, vi } from "vitest";
4
+ import ActionSheets from "../ActionSheets";
5
+ import { ActionType } from "../interface";
6
+
7
+ describe("<ActionSheets />", () => {
8
+ const themeColorMock = {
9
+ Disabled: "gray",
10
+ Primary: "blue",
11
+ Bg1: "white",
12
+ Bg2: "lightgray",
13
+ Title: "black",
14
+ };
15
+
16
+ vi.mock("../ConfigProvider", () => ({
17
+ useThemeColor: () => themeColorMock,
18
+ }));
19
+
20
+ it("renders correctly with description and data", () => {
21
+ const data = [
22
+ { label: "Option 1", value: "1", type: ActionType.primary },
23
+ { label: "Option 2", value: "2", type: ActionType.invalid },
24
+ ];
25
+ const { getByText } = render(
26
+ <ActionSheets visible={true} description="Description text" data={data} onChange={() => {}} onClose={() => {}} />,
27
+ );
28
+
29
+ expect(getByText("Description text")).toBeTruthy();
30
+ expect(getByText("Option 1")).toBeTruthy();
31
+ expect(getByText("Option 2")).toBeTruthy();
32
+ expect(getByText("取消")).toBeTruthy();
33
+ });
34
+
35
+ it("triggers onChange and onClose on item click", () => {
36
+ const handleChange = vi.fn();
37
+ const handleClose = vi.fn();
38
+
39
+ const data = [{ label: "Option 1", value: "1", type: ActionType.primary }];
40
+
41
+ const { getByText } = render(
42
+ <ActionSheets visible={true} data={data} onChange={handleChange} onClose={handleClose} />,
43
+ );
44
+
45
+ fireEvent.press(getByText("Option 1"));
46
+
47
+ expect(handleChange).toHaveBeenCalledWith("1");
48
+ expect(handleClose).toHaveBeenCalled();
49
+ });
50
+
51
+ it("triggers onClose when cancel is pressed", () => {
52
+ const handleClose = vi.fn();
53
+
54
+ const { getByText } = render(<ActionSheets visible={true} data={[]} onClose={handleClose} onChange={() => {}} />);
55
+
56
+ fireEvent.press(getByText("取消"));
57
+
58
+ expect(handleClose).toHaveBeenCalled();
59
+ });
60
+
61
+ it("renders correctly without description", () => {
62
+ const { queryByText } = render(<ActionSheets visible={true} data={[]} onChange={() => {}} onClose={() => {}} />);
63
+
64
+ expect(queryByText("Description text")).toBeNull();
65
+ });
66
+
67
+ it("renders with correct styles based on action type", () => {
68
+ const data = [
69
+ { label: "Primary Option", value: "1", type: ActionType.primary },
70
+ { label: "Invalid Option", value: "2", type: ActionType.invalid },
71
+ ];
72
+
73
+ const { getByText } = render(<ActionSheets visible={true} data={data} onChange={() => {}} onClose={() => {}} />);
74
+
75
+ const primaryOption = getByText("Primary Option");
76
+ const invalidOption = getByText("Invalid Option");
77
+
78
+ expect(primaryOption.props.style).toContainEqual({ color: themeColorMock.Primary });
79
+ expect(invalidOption.props.style).toContainEqual({ color: themeColorMock.Disabled });
80
+ });
81
+ });
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { describe } from "vitest";
3
+ // @ts-ignore
4
+ import { redsBench } from "~root/utils/redsBench";
5
+ import { Modal } from "react-native-paper";
6
+ import { render, fireEvent } from "@testing-library/react-native";
7
+ import { Text } from "react-native";
8
+
9
+ describe("paper render", () => {
10
+ redsBench("base", async () => {
11
+ render(
12
+ <Modal visible={true}>
13
+ <Text>Example Modal. Click outside this area to dismiss.</Text>
14
+ </Modal>,
15
+ );
16
+ });
17
+ });
@@ -0,0 +1,170 @@
1
+ import React, { useState, useEffect, useCallback, useRef } from "react";
2
+ import {
3
+ View,
4
+ Text,
5
+ Modal,
6
+ Image,
7
+ ScrollView,
8
+ TouchableWithoutFeedback,
9
+ StyleSheet,
10
+ GestureResponderEvent,
11
+ Animated,
12
+ } from "react-native";
13
+ import { RedsAlert, AlertDefaultProps } from "./interface";
14
+ import { Button, Divider, Portal } from "../../index";
15
+ import { style } from "./styles";
16
+
17
+ // const scrollViewMask = {
18
+ // default: "https://picasso-static.xiaohongshu.com/fe-platform/d3fab8f89c0d2daa69ecaa87580c8ff42f330a80.png",
19
+ // dark: "https://picasso-static.xiaohongshu.com/fe-platform/953a4a587c93dadda6f4ded4f732c50cf703ac99.png",
20
+ // };
21
+ const Alert: React.FC<RedsAlert> = (props) => {
22
+ const finalProps = { ...AlertDefaultProps, ...props };
23
+ const {
24
+ show,
25
+ title,
26
+ message,
27
+ confirmText,
28
+ cancelText,
29
+ onConfirm,
30
+ onCancel,
31
+ onOpen,
32
+ onClose,
33
+ align,
34
+ // showScrollOverlay,
35
+ footerLayout,
36
+ showConfirmButton,
37
+ showCancelButton,
38
+ mask,
39
+ footerType,
40
+ header,
41
+ footer,
42
+ children,
43
+ } = finalProps;
44
+
45
+ const styles = style(props);
46
+ // const [hasScrollToBottom, setHasScrollToBottom] = useState(true);
47
+ const fadeAnim = useRef(new Animated.Value(0)).current;
48
+
49
+ useEffect(() => {
50
+ if (show && onOpen) onOpen();
51
+ if (!show && onClose) onClose();
52
+ }, [show]);
53
+
54
+ const handleConfirm = (e: GestureResponderEvent) => {
55
+ if (onConfirm) onConfirm(e);
56
+ };
57
+
58
+ const handleCancel = (e: GestureResponderEvent) => {
59
+ if (onCancel) onCancel(e);
60
+ };
61
+
62
+ // const handleScrollView = useCallback(
63
+ // (e: any) => {
64
+ // const offsetY = e.nativeEvent.contentOffset.y;
65
+ // const contentSizeHeight = e.nativeEvent.contentSize.height;
66
+ // var containerScrollHeight = e.nativeEvent.layoutMeasurement.height;
67
+ // if (offsetY + containerScrollHeight + 30 >= contentSizeHeight) {
68
+ // if (hasScrollToBottom) setHasScrollToBottom(false);
69
+ // } else {
70
+ // if (!hasScrollToBottom) setHasScrollToBottom(true);
71
+ // }
72
+ // },
73
+ // [hasScrollToBottom],
74
+ // );
75
+
76
+ // const [canScroll, setCanScroll] = useState(false);
77
+
78
+ // const handleContentSizeChange = (contentWidth: number, contentHeight: number) => {
79
+ // if (contentHeight > 135) {
80
+ // setCanScroll(true);
81
+ // } else {
82
+ // setCanScroll(false);
83
+ // }
84
+ // };
85
+
86
+ return show ? (
87
+ <Portal>
88
+ {mask && (
89
+ <TouchableWithoutFeedback>
90
+ <View style={styles.modalOverlay} />
91
+ </TouchableWithoutFeedback>
92
+ )}
93
+ <Animated.View
94
+ style={[
95
+ styles.centeredView,
96
+ {
97
+ transform: [
98
+ {
99
+ scale: fadeAnim.interpolate({
100
+ inputRange: [0, 1],
101
+ outputRange: [1, 1],
102
+ }),
103
+ },
104
+ ],
105
+ },
106
+ ]}
107
+ >
108
+ <View style={[styles.alertContainer]}>
109
+ {header}
110
+ <View style={styles.alertContent}>
111
+ <Text style={styles.title}>{title}</Text>
112
+ {message ? (
113
+ <ScrollView
114
+ // onContentSizeChange={handleContentSizeChange}
115
+ // onScroll={handleScrollView}
116
+ style={[styles.message]}
117
+ scrollEventThrottle={16}
118
+ >
119
+ <Text style={[styles.messageText, align === "left" && styles.messageLeft]}>{message}</Text>
120
+ </ScrollView>
121
+ ) : (
122
+ children
123
+ )}
124
+ {/* {showScrollOverlay && hasScrollToBottom && canScroll ? (
125
+ <Image source={{ uri: scrollViewMask.default }} style={styles.scrollOverlay} />
126
+ ) : null} */}
127
+ </View>
128
+ {footer ? (
129
+ footer
130
+ ) : (
131
+ <View
132
+ style={[
133
+ styles.footer,
134
+ footerLayout === "vertical" ? styles.footerVertical : styles.footerHorizontal,
135
+ footerType === "text" && styles.footerText,
136
+ ]}
137
+ >
138
+ {showCancelButton && (
139
+ <Button
140
+ variant={footerType === "text" ? "text" : "outline"}
141
+ onClick={handleCancel}
142
+ style={footerLayout === "vertical" ? styles.verButton : styles.button}
143
+ >
144
+ {cancelText}
145
+ </Button>
146
+ )}
147
+ {footerType === "text" && showCancelButton && footerLayout !== "vertical" && (
148
+ <View style={styles.dividerBox}>
149
+ <Divider direction={"vertical"} size={24} />
150
+ </View>
151
+ )}
152
+ {showConfirmButton && (
153
+ <Button
154
+ type="primary"
155
+ variant={footerType === "text" ? "text" : "fill"}
156
+ onClick={handleConfirm}
157
+ style={footerType === "text" || footerLayout === "vertical" ? styles.button : styles.confirmButton}
158
+ >
159
+ {confirmText}
160
+ </Button>
161
+ )}
162
+ </View>
163
+ )}
164
+ </View>
165
+ </Animated.View>
166
+ </Portal>
167
+ ) : null;
168
+ };
169
+
170
+ export default Alert;
@@ -0,0 +1,234 @@
1
+ import React, { useState } from "react";
2
+ import { View, Text, StyleSheet, GestureResponderEvent, ScrollView, Image } from "react-native";
3
+ import { Alert, PortalProvider } from "@xhs/reds-rn-next";
4
+ import { Button, Icon, useThemeColor } from "@xhs/reds-rn-next";
5
+
6
+ const styles = StyleSheet.create({
7
+ container: {
8
+ flex: 1,
9
+ justifyContent: "center",
10
+ alignItems: "center",
11
+ padding: 20,
12
+ marginBottom: 800,
13
+ },
14
+ buttonContainer: {
15
+ marginVertical: 10,
16
+ width: "100%",
17
+ alignItems: "center",
18
+ },
19
+ footer: {
20
+ flex: 1,
21
+ // padding: 20,
22
+ // paddingTop: 0,
23
+ // flexDirection: "column-reverse",
24
+ // height: 100,
25
+ },
26
+ });
27
+
28
+ export default function App() {
29
+ const [alertVisible, setAlertVisible] = useState(false);
30
+ const [footerType, setFooterType] = useState<"button" | "text">("button");
31
+ const [showCancelButton, setShowCancelButton] = useState(true);
32
+
33
+ const [alertTitle, setAlertTitle] = useState<string | undefined>("提示");
34
+ const [alertMessage, setAlertMessage] = useState<string | undefined>(
35
+ "这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容",
36
+ );
37
+ const [align, setAlign] = useState<"left" | "center">("center");
38
+ const [footerLayout, setFooterLayout] = useState<"horizontal" | "vertical">("horizontal");
39
+ const themeColor = useThemeColor("Icon");
40
+ const [mediaSrc, setMediaSrc] = useState<string>("");
41
+ const [footer, setFooter] = useState<React.ReactNode | undefined>(undefined);
42
+ const [header, setHeader] = useState<React.ReactNode | undefined>(undefined);
43
+ const [customMessage, setCustomMessage] = useState(false);
44
+
45
+ const showAlert = () => {
46
+ setAlertVisible(true);
47
+ };
48
+
49
+ const hideAlert = () => {
50
+ setAlertVisible(false);
51
+
52
+ // 重置状态
53
+ setFooterType("button");
54
+ setFooterLayout("horizontal");
55
+ setAlign("center");
56
+ setAlertTitle("提示");
57
+ setAlertMessage("这是一个消息内容");
58
+ setShowCancelButton(true);
59
+ setFooter(undefined);
60
+ setHeader(undefined);
61
+ setCustomMessage(false);
62
+ };
63
+
64
+ const handleConfirm = (e: GestureResponderEvent) => {
65
+ console.log("确认按钮点击", e);
66
+ hideAlert();
67
+ };
68
+
69
+ const handleCancel = (e: GestureResponderEvent) => {
70
+ console.log("取消按钮点击", e);
71
+ hideAlert();
72
+ };
73
+
74
+ const handleOpen = () => {
75
+ console.log("Alert 打开");
76
+ };
77
+
78
+ const handleClose = () => {
79
+ console.log("Alert 关闭");
80
+ };
81
+
82
+ const changeFoolterType = () => {
83
+ setFooterType("text");
84
+ };
85
+
86
+ const renderCusFooter = () => {
87
+ return (
88
+ <View style={{ padding: 20 }}>
89
+ <Button onClick={handleCancel} type="primary">
90
+ 自定义footer
91
+ </Button>
92
+ </View>
93
+ );
94
+ };
95
+ const renderCusHeader = () => {
96
+ return (
97
+ <View style={{}}>
98
+ <Image
99
+ source={{ uri: "https://fe-platform.xhscdn.com/platform/104101l0316gv8eebgm06cj00vk900000000000eiv941q" }}
100
+ style={{ width: 270, height: 100 }}
101
+ />
102
+ </View>
103
+ );
104
+ };
105
+
106
+ return (
107
+ <PortalProvider>
108
+ <ScrollView>
109
+ <View style={styles.container}>
110
+ <View style={styles.buttonContainer}>
111
+ <Button onClick={showAlert} type="primary" variant="fill">
112
+ 显示基础Alert
113
+ </Button>
114
+ </View>
115
+
116
+ <View style={styles.buttonContainer}>
117
+ <Button
118
+ onClick={() => {
119
+ setAlertTitle("提示");
120
+ setAlertMessage("不显示取消按钮的alert");
121
+ setFooterLayout("horizontal");
122
+ setShowCancelButton(false);
123
+ showAlert();
124
+ }}
125
+ type="primary"
126
+ variant="outline"
127
+ >
128
+ 不显示取消按钮的alert
129
+ </Button>
130
+ </View>
131
+
132
+ <View style={styles.buttonContainer}>
133
+ <Button
134
+ onClick={() => {
135
+ setAlertTitle("标题");
136
+ setAlertMessage("文本按钮样式");
137
+ setFooterLayout("horizontal");
138
+ changeFoolterType();
139
+ showAlert();
140
+ }}
141
+ type="primary"
142
+ variant="ghost"
143
+ >
144
+ 文本按钮样式
145
+ </Button>
146
+ </View>
147
+
148
+ <View style={styles.buttonContainer}>
149
+ <Button
150
+ onClick={() => {
151
+ setAlertTitle("提示");
152
+ setAlertMessage(
153
+ "欢迎来到小红书! 请您充分阅读和理解《用户协议》和《隐私政策》,以及本提示的全部内容。点击“同意”按钮即代表您已同意前述协议全部条款以及以下约定。 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权",
154
+ );
155
+ setFooterLayout("horizontal");
156
+ setAlign("left");
157
+ showAlert();
158
+ }}
159
+ type="primary"
160
+ variant="ghost"
161
+ >
162
+ 内容可滚动
163
+ </Button>
164
+ </View>
165
+
166
+ <View style={styles.buttonContainer}>
167
+ <Button
168
+ onClick={() => {
169
+ setAlertTitle("标题");
170
+ setAlertMessage("文本");
171
+ setFooterLayout("vertical");
172
+ changeFoolterType();
173
+ setFooter(renderCusFooter());
174
+ showAlert();
175
+ }}
176
+ type="primary"
177
+ variant="ghost"
178
+ >
179
+ 自定义footer
180
+ </Button>
181
+ </View>
182
+
183
+ <View style={styles.buttonContainer}>
184
+ <Button
185
+ onClick={() => {
186
+ setHeader(renderCusHeader());
187
+ showAlert();
188
+ }}
189
+ type="primary"
190
+ variant="ghost"
191
+ >
192
+ 自定义header
193
+ </Button>
194
+ </View>
195
+
196
+ <View style={styles.buttonContainer}>
197
+ <Button
198
+ onClick={() => {
199
+ setCustomMessage(true);
200
+ setAlertMessage("");
201
+ showAlert();
202
+ }}
203
+ type="primary"
204
+ variant="ghost"
205
+ >
206
+ 自定义message
207
+ </Button>
208
+ </View>
209
+
210
+ <Alert
211
+ show={alertVisible}
212
+ title={alertTitle}
213
+ message={alertMessage}
214
+ align={align}
215
+ confirmText="确认"
216
+ cancelText="取消"
217
+ onConfirm={handleConfirm}
218
+ onCancel={handleCancel}
219
+ onOpen={handleOpen}
220
+ onClose={handleClose}
221
+ footerLayout={footerLayout}
222
+ showConfirmButton
223
+ showCancelButton={showCancelButton}
224
+ footerType={footerType}
225
+ footer={footer}
226
+ header={header}
227
+ >
228
+ {customMessage && <Text>这是一个自定义message</Text>}
229
+ </Alert>
230
+ </View>
231
+ </ScrollView>
232
+ </PortalProvider>
233
+ );
234
+ }
@@ -0,0 +1,37 @@
1
+ import BaseDemo from "!!raw-loader!../demo/index.tsx";
2
+
3
+ ## 演示
4
+
5
+ ### 基础用法
6
+
7
+ ::BaseDemo::
8
+
9
+ ## API
10
+
11
+ ### Props
12
+
13
+ | 属性 | 描述 | 类型 | 默认值 |
14
+ | ----------------- | -------------------------------------- | ------------------------------ | ---------- |
15
+ | show | 是否显示弹出框 | boolean | false |
16
+ | title | 标题 string | string | |
17
+ | message | 文本内容 | string | |
18
+ | align | 内容对齐方式 | "left" &#124; "center" | center |
19
+ | footerLayout | 底部按钮区域布局方式,水平还是竖直方向 | "horizontal" &#124; "vertical" | horizontal |
20
+ | showConfirmButton | 是否展示确认按钮 | boolean | true |
21
+ | showCancelButton | 是否展示取消按钮 | boolean | true |
22
+ | confirmText | 确认按钮文案 | string | 确认 |
23
+ | cancelText | 取消按钮文案 | string | 取消 |
24
+ | mask | 是否展示遮罩层 | boolean | true |
25
+ | footerType | 底部按钮样式 | "text" &#124; "button" | button |
26
+ | children | children | React.ReactNode | |
27
+ | footer | 自定义底部按钮区域 | React.ReactNode | |
28
+ | header | 顶部插槽 | React.ReactNode | |
29
+
30
+ ### Events
31
+
32
+ | 事件 | 描述 | 类型 | 默认值 |
33
+ | --------- | ------------------ | -------------------------------------- | ------ |
34
+ | onConfirm | 点击确认按钮时触发 | (value: GestureResponderEvent) => void | |
35
+ | onCancel | 点击取消按钮时触发 | (value: GestureResponderEvent) => void | |
36
+ | onOpen | 打开弹窗时触发 | () => void | |
37
+ | onClose | 关闭弹窗时触发 | () => void | |
@@ -0,0 +1,5 @@
1
+ import Alert from "./Alert";
2
+ import * as AlertType from "./interface";
3
+
4
+ export default Alert;
5
+ export { Alert, AlertType };
@@ -0,0 +1,35 @@
1
+ import { GestureResponderEvent } from "react-native";
2
+ import { lightColor } from "@xhs/reds-token-next";
3
+ export interface RedsAlert {
4
+ show: boolean;
5
+ title?: string;
6
+ message?: string;
7
+ align?: "left" | "center";
8
+ footerLayout?: "horizontal" | "vertical";
9
+ showConfirmButton?: boolean;
10
+ showCancelButton?: boolean;
11
+ confirmText?: string;
12
+ cancelText?: string;
13
+ mask?: boolean;
14
+ footerType?: "text" | "button";
15
+ children?: React.ReactNode;
16
+ footer?: React.ReactNode;
17
+ header?: React.ReactNode;
18
+ onConfirm?: (value: GestureResponderEvent) => void;
19
+ onCancel?: (value: GestureResponderEvent) => void;
20
+ onOpen?: () => void;
21
+ onClose?: () => void;
22
+ }
23
+
24
+ export interface RedsAlertEvent {}
25
+ export const AlertDefaultProps = {
26
+ show: false,
27
+ align: "center",
28
+ footerLayout: "horizontal",
29
+ showConfirmButton: true,
30
+ showCancelButton: true,
31
+ confirmText: "确认",
32
+ cancelText: "取消",
33
+ mask: true,
34
+ footerType: "button",
35
+ };
@@ -0,0 +1,116 @@
1
+ import { StyleSheet } from "react-native";
2
+ import { typography, alwaysColor } from "@xhs/reds-token-next";
3
+ import { useThemeColor } from "../ConfigProvider";
4
+ import { RedsAlert } from "./interface";
5
+
6
+ export const style = (props: RedsAlert) => {
7
+ const themeColor = useThemeColor("Button");
8
+ const styles = StyleSheet.create({
9
+ modalOverlay: {
10
+ position: "absolute",
11
+ top: 0,
12
+ left: 0,
13
+ right: 0,
14
+ bottom: 0,
15
+ backgroundColor: alwaysColor.MaskBg,
16
+ },
17
+ centeredView: {
18
+ position: "absolute",
19
+ top: 0,
20
+ left: 0,
21
+ right: 0,
22
+ bottom: 0,
23
+ flex: 1,
24
+ justifyContent: "center",
25
+ alignItems: "center",
26
+ },
27
+ alertContainer: {
28
+ width: 270,
29
+ backgroundColor: themeColor.White,
30
+ borderRadius: 8,
31
+ overflow: "hidden",
32
+ boxShadow: "0 2px 16px rgba(0, 0, 0, 0.1)",
33
+ },
34
+ alertContent: {
35
+ padding: 20,
36
+ },
37
+ title: {
38
+ textAlign: "center",
39
+ marginBottom: 8,
40
+ fontSize: typography.T2FontSize,
41
+ fontWeight: typography.T2FontWeight,
42
+ lineHeight: typography.T2LineHeight,
43
+ },
44
+ message: {
45
+ maxHeight: 126,
46
+ overflow: "hidden",
47
+ position: "relative",
48
+ },
49
+ messageText: {
50
+ fontSize: typography.C2FontSize,
51
+ color: themeColor.Paragraph,
52
+ textAlign: "center",
53
+ lineHeight: typography.C2LineHeight,
54
+ fontWeight: typography.C2FontWeight,
55
+ },
56
+ messageLeft: {
57
+ textAlign: "left",
58
+ },
59
+ scrollOverlay: {
60
+ width: "100%",
61
+ position: "absolute",
62
+ left: 20,
63
+ right: 0,
64
+ bottom: 20,
65
+ height: 40,
66
+ },
67
+ footer: {
68
+ width: "100%",
69
+ height: 56,
70
+ flexDirection: "row",
71
+ justifyContent: "space-between",
72
+ padding: 20,
73
+ paddingTop: 0,
74
+ },
75
+ footerText: {
76
+ borderTopWidth: 0.5,
77
+ borderTopColor: themeColor.Separator,
78
+ padding: 20,
79
+ paddingBottom: 6,
80
+ paddingTop: 6,
81
+ },
82
+ footerHorizontal: {
83
+ flexDirection: "row",
84
+ },
85
+ footerVertical: {
86
+ flexDirection: "column-reverse",
87
+ justifyContent: "center",
88
+ alignItems: "center",
89
+ height: 100,
90
+ },
91
+ button: {
92
+ flex: 1,
93
+ width: "100%",
94
+ margin: 0,
95
+ height: 36,
96
+ },
97
+ dividerBox: {
98
+ marginTop: 5,
99
+ },
100
+ confirmButton: {
101
+ flex: 1,
102
+ margin: 0,
103
+ marginLeft: 10,
104
+ width: "100%",
105
+ height: 36,
106
+ },
107
+ verButton: {
108
+ flex: 1,
109
+ width: "100%",
110
+ margin: 0,
111
+ marginTop: 10,
112
+ height: 36,
113
+ },
114
+ });
115
+ return styles;
116
+ };