@aws-amplify/ui-react-native 1.2.22 → 1.2.24

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 (351) hide show
  1. package/dist/version.d.ts +1 -1
  2. package/dist/version.js +1 -1
  3. package/lib/Authenticator/Authenticator.js +72 -0
  4. package/lib/Authenticator/Defaults/ConfirmResetPassword/ConfirmResetPassword.js +43 -0
  5. package/lib/Authenticator/Defaults/ConfirmResetPassword/index.js +8 -0
  6. package/lib/Authenticator/Defaults/ConfirmSignIn/ConfirmSignIn.js +42 -0
  7. package/lib/Authenticator/Defaults/ConfirmSignIn/index.js +8 -0
  8. package/lib/Authenticator/Defaults/ConfirmSignUp/ConfirmSignUp.js +43 -0
  9. package/lib/Authenticator/Defaults/ConfirmSignUp/index.js +8 -0
  10. package/lib/Authenticator/Defaults/ConfirmVerifyUser/ConfirmVerifyUser.js +42 -0
  11. package/lib/Authenticator/Defaults/ConfirmVerifyUser/index.js +8 -0
  12. package/lib/Authenticator/Defaults/ForceNewPassword/ForceNewPassword.js +45 -0
  13. package/lib/Authenticator/Defaults/ForceNewPassword/index.js +8 -0
  14. package/lib/Authenticator/Defaults/ResetPassword/ResetPassword.js +42 -0
  15. package/lib/Authenticator/Defaults/ResetPassword/index.js +8 -0
  16. package/lib/Authenticator/Defaults/SetupTOTP/SetupTOTP.js +52 -0
  17. package/lib/Authenticator/Defaults/SetupTOTP/index.js +8 -0
  18. package/lib/Authenticator/Defaults/SetupTOTP/styles.js +8 -0
  19. package/lib/Authenticator/Defaults/SignIn/SignIn.js +50 -0
  20. package/lib/Authenticator/Defaults/SignIn/index.js +8 -0
  21. package/lib/Authenticator/Defaults/SignUp/SignUp.js +48 -0
  22. package/lib/Authenticator/Defaults/SignUp/index.js +8 -0
  23. package/lib/Authenticator/Defaults/VerifyUser/VerifyUser.js +33 -0
  24. package/lib/Authenticator/Defaults/VerifyUser/index.js +8 -0
  25. package/lib/Authenticator/Defaults/index.js +23 -0
  26. package/lib/Authenticator/Defaults/types.js +2 -0
  27. package/lib/Authenticator/common/DefaultContainer/DefaultContainer.js +37 -0
  28. package/lib/Authenticator/common/DefaultContainer/InnerContainer.js +15 -0
  29. package/lib/Authenticator/common/DefaultContainer/index.js +10 -0
  30. package/lib/Authenticator/common/DefaultContainer/styles.js +31 -0
  31. package/lib/Authenticator/common/DefaultContainer/types.js +2 -0
  32. package/lib/Authenticator/common/DefaultContent/DefaultContent.js +33 -0
  33. package/lib/Authenticator/common/DefaultContent/index.js +8 -0
  34. package/lib/Authenticator/common/DefaultContent/styles.js +54 -0
  35. package/lib/Authenticator/common/DefaultContent/types.js +2 -0
  36. package/lib/Authenticator/common/DefaultFooter/DefaultFooter.js +9 -0
  37. package/lib/Authenticator/common/DefaultFooter/index.js +8 -0
  38. package/lib/Authenticator/common/DefaultFooter/types.js +2 -0
  39. package/lib/Authenticator/common/DefaultFormFields/DefaultRadioFormFields.js +28 -0
  40. package/lib/Authenticator/common/DefaultFormFields/DefaultTextFormFields.js +21 -0
  41. package/lib/Authenticator/common/DefaultFormFields/Field.js +37 -0
  42. package/lib/Authenticator/common/DefaultFormFields/FieldErrors.js +17 -0
  43. package/lib/Authenticator/common/DefaultFormFields/index.js +10 -0
  44. package/lib/Authenticator/common/DefaultFormFields/types.js +2 -0
  45. package/lib/Authenticator/common/DefaultHeader/DefaultHeader.js +11 -0
  46. package/lib/Authenticator/common/DefaultHeader/index.js +8 -0
  47. package/lib/Authenticator/common/DefaultHeader/types.js +2 -0
  48. package/lib/Authenticator/common/FederatedProviderButton/FederatedProviderButton.js +18 -0
  49. package/lib/Authenticator/common/FederatedProviderButton/index.js +8 -0
  50. package/lib/Authenticator/common/FederatedProviderButton/styles.js +21 -0
  51. package/lib/Authenticator/common/FederatedProviderButton/types.js +2 -0
  52. package/lib/Authenticator/common/FederatedProviderButtons/FederatedProviderButtons.js +26 -0
  53. package/lib/Authenticator/common/FederatedProviderButtons/index.js +8 -0
  54. package/lib/Authenticator/common/FederatedProviderButtons/styles.js +8 -0
  55. package/lib/Authenticator/common/FederatedProviderButtons/types.js +2 -0
  56. package/lib/Authenticator/common/index.js +10 -0
  57. package/lib/Authenticator/hooks/index.js +5 -0
  58. package/lib/Authenticator/hooks/types.js +2 -0
  59. package/lib/Authenticator/hooks/useFieldValues/constants.js +11 -0
  60. package/lib/Authenticator/hooks/useFieldValues/index.js +10 -0
  61. package/lib/Authenticator/hooks/useFieldValues/types.js +2 -0
  62. package/lib/Authenticator/hooks/useFieldValues/useFieldValues.js +101 -0
  63. package/lib/Authenticator/hooks/useFieldValues/utils.js +139 -0
  64. package/lib/Authenticator/index.js +13 -0
  65. package/lib/Authenticator/types.js +2 -0
  66. package/lib/Authenticator/withAuthenticator.js +15 -0
  67. package/lib/InAppMessaging/components/BannerMessage/BannerMessage.js +20 -0
  68. package/lib/InAppMessaging/components/BannerMessage/index.js +8 -0
  69. package/lib/InAppMessaging/components/BannerMessage/styles.js +81 -0
  70. package/lib/InAppMessaging/components/BannerMessage/types.js +2 -0
  71. package/lib/InAppMessaging/components/CarouselMessage/CarouselMessage.js +25 -0
  72. package/lib/InAppMessaging/components/CarouselMessage/CarouselMessageItem.js +22 -0
  73. package/lib/InAppMessaging/components/CarouselMessage/index.js +8 -0
  74. package/lib/InAppMessaging/components/CarouselMessage/styles.js +103 -0
  75. package/lib/InAppMessaging/components/CarouselMessage/types.js +2 -0
  76. package/lib/InAppMessaging/components/FullScreenMessage/FullScreenMessage.js +22 -0
  77. package/lib/InAppMessaging/components/FullScreenMessage/index.js +8 -0
  78. package/lib/InAppMessaging/components/FullScreenMessage/styles.js +91 -0
  79. package/lib/InAppMessaging/components/FullScreenMessage/types.js +2 -0
  80. package/lib/InAppMessaging/components/InAppMessageDisplay/InAppMessageDisplay.js +32 -0
  81. package/lib/InAppMessaging/components/InAppMessageDisplay/handleMessageLinkAction.js +26 -0
  82. package/lib/InAppMessaging/components/InAppMessageDisplay/index.js +8 -0
  83. package/lib/InAppMessaging/components/InAppMessageDisplay/types.js +2 -0
  84. package/lib/InAppMessaging/components/MessageLayout/MessageLayout.js +38 -0
  85. package/lib/InAppMessaging/components/MessageLayout/index.js +8 -0
  86. package/lib/InAppMessaging/components/MessageLayout/types.js +2 -0
  87. package/lib/InAppMessaging/components/MessageWrapper/MessageWrapper.js +24 -0
  88. package/lib/InAppMessaging/components/MessageWrapper/index.js +8 -0
  89. package/lib/InAppMessaging/components/MessageWrapper/styles.js +8 -0
  90. package/lib/InAppMessaging/components/MessageWrapper/types.js +2 -0
  91. package/lib/InAppMessaging/components/ModalMessage/ModalMessage.js +22 -0
  92. package/lib/InAppMessaging/components/ModalMessage/index.js +8 -0
  93. package/lib/InAppMessaging/components/ModalMessage/styles.js +104 -0
  94. package/lib/InAppMessaging/components/ModalMessage/types.js +2 -0
  95. package/lib/InAppMessaging/components/index.js +7 -0
  96. package/lib/InAppMessaging/components/withInAppMessaging/index.js +8 -0
  97. package/lib/InAppMessaging/components/withInAppMessaging/withInAppMessaging.js +15 -0
  98. package/lib/InAppMessaging/constants.js +48 -0
  99. package/lib/InAppMessaging/hooks/index.js +7 -0
  100. package/lib/InAppMessaging/hooks/useMessageImage/constants.js +21 -0
  101. package/lib/InAppMessaging/hooks/useMessageImage/index.js +8 -0
  102. package/lib/InAppMessaging/hooks/useMessageImage/types.js +9 -0
  103. package/lib/InAppMessaging/hooks/useMessageImage/useMessageImage.js +53 -0
  104. package/lib/InAppMessaging/hooks/useMessageImage/utils.js +61 -0
  105. package/lib/InAppMessaging/hooks/useMessageProps/index.js +8 -0
  106. package/lib/InAppMessaging/hooks/useMessageProps/types.js +2 -0
  107. package/lib/InAppMessaging/hooks/useMessageProps/useMessageProps.js +52 -0
  108. package/lib/InAppMessaging/hooks/useMessageProps/utils.js +201 -0
  109. package/lib/InAppMessaging/index.js +9 -0
  110. package/lib/assets/icons/amazonLogo.png +0 -0
  111. package/lib/assets/icons/amazonLogo@2x.png +0 -0
  112. package/lib/assets/icons/amazonLogo@3x.png +0 -0
  113. package/lib/assets/icons/appleLogo.png +0 -0
  114. package/lib/assets/icons/appleLogo@2x.png +0 -0
  115. package/lib/assets/icons/appleLogo@3x.png +0 -0
  116. package/lib/assets/icons/checkboxFilled.png +0 -0
  117. package/lib/assets/icons/checkboxFilled@2x.png +0 -0
  118. package/lib/assets/icons/checkboxFilled@3x.png +0 -0
  119. package/lib/assets/icons/checkboxOutline.png +0 -0
  120. package/lib/assets/icons/checkboxOutline@2x.png +0 -0
  121. package/lib/assets/icons/checkboxOutline@3x.png +0 -0
  122. package/lib/assets/icons/close.png +0 -0
  123. package/lib/assets/icons/close@2x.png +0 -0
  124. package/lib/assets/icons/close@3x.png +0 -0
  125. package/lib/assets/icons/copy.png +0 -0
  126. package/lib/assets/icons/copy@2x.png +0 -0
  127. package/lib/assets/icons/copy@3x.png +0 -0
  128. package/lib/assets/icons/error.png +0 -0
  129. package/lib/assets/icons/error@2x.png +0 -0
  130. package/lib/assets/icons/error@3x.png +0 -0
  131. package/lib/assets/icons/facebookLogo.png +0 -0
  132. package/lib/assets/icons/facebookLogo@2x.png +0 -0
  133. package/lib/assets/icons/facebookLogo@3x.png +0 -0
  134. package/lib/assets/icons/googleLogo.png +0 -0
  135. package/lib/assets/icons/googleLogo@2x.png +0 -0
  136. package/lib/assets/icons/googleLogo@3x.png +0 -0
  137. package/lib/assets/icons/index.js +16 -0
  138. package/lib/assets/icons/index.ts +17 -0
  139. package/lib/assets/icons/visibilityOff.png +0 -0
  140. package/lib/assets/icons/visibilityOff@2x.png +0 -0
  141. package/lib/assets/icons/visibilityOff@3x.png +0 -0
  142. package/lib/assets/icons/visibilityOn.png +0 -0
  143. package/lib/assets/icons/visibilityOn@2x.png +0 -0
  144. package/lib/assets/icons/visibilityOn@3x.png +0 -0
  145. package/lib/assets/index.js +8 -0
  146. package/lib/hooks/index.js +9 -0
  147. package/lib/hooks/useDeprecationWarning/index.js +8 -0
  148. package/lib/hooks/useDeprecationWarning/useDeprecationWarning.js +13 -0
  149. package/lib/hooks/useDeviceOrientation/index.js +8 -0
  150. package/lib/hooks/useDeviceOrientation/useDeviceOrientation.js +37 -0
  151. package/lib/hooks/usePressableContainerStyles/index.js +5 -0
  152. package/lib/hooks/usePressableContainerStyles/usePressableContainerStyles.js +19 -0
  153. package/lib/index.js +14 -0
  154. package/lib/primitives/Button/Button.js +31 -0
  155. package/lib/primitives/Button/index.js +8 -0
  156. package/lib/primitives/Button/styles.js +55 -0
  157. package/lib/primitives/Button/types.js +2 -0
  158. package/lib/primitives/Carousel/Carousel.js +63 -0
  159. package/lib/primitives/Carousel/CarouselPageIndicator.js +14 -0
  160. package/lib/primitives/Carousel/constants.js +21 -0
  161. package/lib/primitives/Carousel/index.js +10 -0
  162. package/lib/primitives/Carousel/styles.js +14 -0
  163. package/lib/primitives/Carousel/types.js +2 -0
  164. package/lib/primitives/Checkbox/Checkbox.js +28 -0
  165. package/lib/primitives/Checkbox/index.js +8 -0
  166. package/lib/primitives/Checkbox/styles.js +28 -0
  167. package/lib/primitives/Checkbox/types.js +2 -0
  168. package/lib/primitives/Divider/Divider.js +22 -0
  169. package/lib/primitives/Divider/index.js +8 -0
  170. package/lib/primitives/Divider/styles.js +28 -0
  171. package/lib/primitives/Divider/types.js +2 -0
  172. package/lib/primitives/ErrorMessage/ErrorMessage.js +22 -0
  173. package/lib/primitives/ErrorMessage/index.js +8 -0
  174. package/lib/primitives/ErrorMessage/styles.js +30 -0
  175. package/lib/primitives/ErrorMessage/types.js +2 -0
  176. package/lib/primitives/Heading/Heading.js +15 -0
  177. package/lib/primitives/Heading/index.js +8 -0
  178. package/lib/primitives/Heading/styles.js +51 -0
  179. package/lib/primitives/Heading/types.js +2 -0
  180. package/lib/primitives/Icon/Icon.js +21 -0
  181. package/lib/primitives/Icon/constants.js +10 -0
  182. package/lib/primitives/Icon/index.js +10 -0
  183. package/lib/primitives/Icon/styles.js +34 -0
  184. package/lib/primitives/Icon/types.js +2 -0
  185. package/lib/primitives/IconButton/IconButton.js +26 -0
  186. package/lib/primitives/IconButton/index.js +8 -0
  187. package/lib/primitives/IconButton/styles.js +21 -0
  188. package/lib/primitives/IconButton/types.js +2 -0
  189. package/lib/primitives/Label/Label.js +16 -0
  190. package/lib/primitives/Label/index.js +8 -0
  191. package/lib/primitives/Label/styles.js +45 -0
  192. package/lib/primitives/Label/types.js +2 -0
  193. package/lib/primitives/Label/utils.js +25 -0
  194. package/lib/primitives/PasswordField/PasswordField.js +24 -0
  195. package/lib/primitives/PasswordField/index.js +8 -0
  196. package/lib/primitives/PasswordField/styles.js +17 -0
  197. package/lib/primitives/PasswordField/types.js +2 -0
  198. package/lib/primitives/PhoneNumberField/PhoneNumberField.js +13 -0
  199. package/lib/primitives/PhoneNumberField/index.js +8 -0
  200. package/lib/primitives/PhoneNumberField/styles.js +22 -0
  201. package/lib/primitives/PhoneNumberField/types.js +2 -0
  202. package/lib/primitives/Radio/Radio.js +46 -0
  203. package/lib/primitives/Radio/getRadioDimensions.js +43 -0
  204. package/lib/primitives/Radio/index.js +8 -0
  205. package/lib/primitives/Radio/styles.js +68 -0
  206. package/lib/primitives/Radio/types.js +2 -0
  207. package/lib/primitives/RadioGroup/RadioGroup.js +55 -0
  208. package/lib/primitives/RadioGroup/index.js +8 -0
  209. package/lib/primitives/RadioGroup/styles.js +20 -0
  210. package/lib/primitives/RadioGroup/types.js +2 -0
  211. package/lib/primitives/Tabs/Tab.js +27 -0
  212. package/lib/primitives/Tabs/Tabs.js +29 -0
  213. package/lib/primitives/Tabs/index.js +10 -0
  214. package/lib/primitives/Tabs/styles.js +58 -0
  215. package/lib/primitives/Tabs/types.js +2 -0
  216. package/lib/primitives/TextField/TextField.js +31 -0
  217. package/lib/primitives/TextField/index.js +8 -0
  218. package/lib/primitives/TextField/styles.js +46 -0
  219. package/lib/primitives/TextField/types.js +2 -0
  220. package/lib/primitives/index.js +18 -0
  221. package/lib/theme/ThemeContext.js +9 -0
  222. package/lib/theme/ThemeProvider.js +12 -0
  223. package/lib/theme/createTheme.js +113 -0
  224. package/lib/theme/defaultTheme.js +11 -0
  225. package/lib/theme/index.js +12 -0
  226. package/lib/theme/types.js +2 -0
  227. package/lib/theme/useTheme.js +11 -0
  228. package/lib/utils/font.js +8 -0
  229. package/lib/utils/index.js +10 -0
  230. package/lib/utils/platform.js +21 -0
  231. package/lib/version.js +4 -0
  232. package/package.json +20 -11
  233. package/src/version.ts +1 -1
  234. package/.eslintrc.js +0 -12
  235. package/.lintstagedrc.js +0 -6
  236. package/.turbo/turbo-build.log +0 -3
  237. package/CHANGELOG.md +0 -332
  238. package/babel.config.js +0 -3
  239. package/dist/assets/index.ts +0 -1
  240. package/jest.config.js +0 -22
  241. package/jest.setup.js +0 -3
  242. package/src/Authenticator/Defaults/ConfirmResetPassword/__tests__/ConfirmResetPassword.spec.tsx +0 -89
  243. package/src/Authenticator/Defaults/ConfirmResetPassword/__tests__/__snapshots__/ConfirmResetPassword.spec.tsx.snap +0 -1090
  244. package/src/Authenticator/Defaults/ConfirmSignIn/__tests__/ConfirmSignIn.spec.tsx +0 -78
  245. package/src/Authenticator/Defaults/ConfirmSignIn/__tests__/__snapshots__/ConfirmSignIn.spec.tsx.snap +0 -512
  246. package/src/Authenticator/Defaults/ConfirmSignUp/__tests__/ConfirmSignUp.spec.tsx +0 -64
  247. package/src/Authenticator/Defaults/ConfirmSignUp/__tests__/__snapshots__/ConfirmSignUp.spec.tsx.snap +0 -528
  248. package/src/Authenticator/Defaults/ConfirmVerifyUser/__tests__/ConfirmVerifyUser.spec.tsx +0 -71
  249. package/src/Authenticator/Defaults/ConfirmVerifyUser/__tests__/__snapshots__/ConfirmVerifyUser.spec.tsx.snap +0 -492
  250. package/src/Authenticator/Defaults/ForceNewPassword/__tests__/ForceNewPassword.spec.tsx +0 -79
  251. package/src/Authenticator/Defaults/ForceNewPassword/__tests__/__snapshots__/ForceNewPassword.spec.tsx.snap +0 -896
  252. package/src/Authenticator/Defaults/ResetPassword/__tests__/ResetPassword.spec.tsx +0 -78
  253. package/src/Authenticator/Defaults/ResetPassword/__tests__/__snapshots__/ResetPassword.spec.tsx.snap +0 -512
  254. package/src/Authenticator/Defaults/SetupTOTP/__tests__/SetupTOTP.spec.tsx +0 -85
  255. package/src/Authenticator/Defaults/SetupTOTP/__tests__/__snapshots__/SetupTOTP.spec.tsx.snap +0 -602
  256. package/src/Authenticator/Defaults/SignIn/__tests__/SignIn.spec.tsx +0 -67
  257. package/src/Authenticator/Defaults/SignIn/__tests__/__snapshots__/SignIn.spec.tsx.snap +0 -1281
  258. package/src/Authenticator/Defaults/SignUp/__tests__/SignUp.spec.tsx +0 -102
  259. package/src/Authenticator/Defaults/SignUp/__tests__/__snapshots__/SignUp.spec.tsx.snap +0 -3122
  260. package/src/Authenticator/Defaults/VerifyUser/__tests__/VerifyUser.spec.tsx +0 -107
  261. package/src/Authenticator/Defaults/VerifyUser/__tests__/__snapshots__/VerifyUser.spec.tsx.snap +0 -692
  262. package/src/Authenticator/__tests__/Authenticator.spec.tsx +0 -131
  263. package/src/Authenticator/__tests__/__snapshots__/Authenticator.spec.tsx.snap +0 -90
  264. package/src/Authenticator/__tests__/__snapshots__/withAuthenticator.spec.tsx.snap +0 -68
  265. package/src/Authenticator/__tests__/withAuthenticator.spec.tsx +0 -73
  266. package/src/Authenticator/common/DefaultContainer/__tests__/DefaultContainer.spec.tsx +0 -19
  267. package/src/Authenticator/common/DefaultContainer/__tests__/__snapshots__/DefaultContainer.spec.tsx.snap +0 -83
  268. package/src/Authenticator/common/DefaultFooter/__tests__/DefaultFooter.spec.tsx +0 -26
  269. package/src/Authenticator/common/DefaultFooter/__tests__/__snapshots__/DefaultFooter.spec.tsx.snap +0 -40
  270. package/src/Authenticator/common/DefaultFormFields/__tests__/DefaultFormFields.spec.tsx +0 -15
  271. package/src/Authenticator/common/DefaultFormFields/__tests__/FieldErrors.spec.tsx +0 -29
  272. package/src/Authenticator/common/DefaultFormFields/__tests__/__snapshots__/DefaultFormFields.spec.tsx.snap +0 -3
  273. package/src/Authenticator/common/DefaultFormFields/__tests__/__snapshots__/FieldErrors.spec.tsx.snap +0 -32
  274. package/src/Authenticator/common/DefaultHeader/__tests__/DefaultHeader.spec.tsx +0 -23
  275. package/src/Authenticator/common/DefaultHeader/__tests__/__snapshots__/DefaultHeader.spec.tsx.snap +0 -24
  276. package/src/Authenticator/common/FederatedProviderButton/__tests__/FederatedProviderButton.spec.tsx +0 -67
  277. package/src/Authenticator/common/FederatedProviderButton/__tests__/__snapshots__/FederatedProviderButton.spec.tsx.snap +0 -185
  278. package/src/Authenticator/common/FederatedProviderButtons/__tests__/FederatedProviderButtons.spec.tsx +0 -55
  279. package/src/Authenticator/common/FederatedProviderButtons/__tests__/__snapshots__/FederatedProviderButtons.spec.tsx.snap +0 -167
  280. package/src/Authenticator/hooks/useFieldValues/__tests__/useFieldValues.spec.ts +0 -399
  281. package/src/Authenticator/hooks/useFieldValues/__tests__/utils.spec.ts +0 -282
  282. package/src/InAppMessaging/components/BannerMessage/__tests__/BannerMessage.spec.tsx +0 -151
  283. package/src/InAppMessaging/components/BannerMessage/__tests__/__snapshots__/BannerMessage.spec.tsx.snap +0 -618
  284. package/src/InAppMessaging/components/CarouselMessage/__tests__/CarouselMessage.spec.tsx +0 -92
  285. package/src/InAppMessaging/components/CarouselMessage/__tests__/CarouselMessageItem.spec.tsx +0 -50
  286. package/src/InAppMessaging/components/CarouselMessage/__tests__/__snapshots__/CarouselMessage.spec.tsx.snap +0 -124
  287. package/src/InAppMessaging/components/CarouselMessage/__tests__/__snapshots__/CarouselMessageItem.spec.tsx.snap +0 -248
  288. package/src/InAppMessaging/components/FullScreenMessage/__tests__/FullScreenMessage.spec.tsx +0 -53
  289. package/src/InAppMessaging/components/FullScreenMessage/__tests__/__snapshots__/FullScreenMessage.spec.tsx.snap +0 -238
  290. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/InAppMessageDisplay.spec.tsx +0 -34
  291. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/__snapshots__/InAppMessageDisplay.spec.tsx.snap +0 -9
  292. package/src/InAppMessaging/components/InAppMessageDisplay/__tests__/handleMessageLinkAction.spec.ts +0 -51
  293. package/src/InAppMessaging/components/MessageWrapper/__tests__/MessageWrapper.spec.tsx +0 -19
  294. package/src/InAppMessaging/components/MessageWrapper/__tests__/__snapshots__/MessageWrapper.spec.tsx.snap +0 -35
  295. package/src/InAppMessaging/components/ModalMessage/__tests__/ModalMessage.spec.tsx +0 -169
  296. package/src/InAppMessaging/components/ModalMessage/__tests__/__snapshots__/ModalMessage.spec.tsx.snap +0 -727
  297. package/src/InAppMessaging/components/withInAppMessaging/__tests__/__snapshots__/withInAppMessaging.spec.tsx.snap +0 -3
  298. package/src/InAppMessaging/components/withInAppMessaging/__tests__/withInAppMessaging.spec.tsx +0 -15
  299. package/src/InAppMessaging/hooks/useMessageImage/__tests__/useMessageImage.spec.ts +0 -141
  300. package/src/InAppMessaging/hooks/useMessageImage/__tests__/utils.spec.ts +0 -107
  301. package/src/InAppMessaging/hooks/useMessageProps/__tests__/__snapshots__/utils.spec.ts.snap +0 -223
  302. package/src/InAppMessaging/hooks/useMessageProps/__tests__/useMessageProps.spec.ts +0 -162
  303. package/src/InAppMessaging/hooks/useMessageProps/__tests__/utils.spec.ts +0 -355
  304. package/src/__mocks__/@react-native-async-storage/async-storage.ts +0 -2
  305. package/src/__mocks__/@react-native-community/netinfo.ts +0 -3
  306. package/src/__mocks__/react-native-safe-area-context.ts +0 -9
  307. package/src/__tests__/__snapshots__/index.spec.ts.snap +0 -26
  308. package/src/__tests__/index.spec.ts +0 -8
  309. package/src/hooks/useDeprecationWarning/__tests__/useDeprecationWarning.spec.ts +0 -42
  310. package/src/hooks/useDeviceOrientation/__tests__/useDeviceOrientation.spec.ts +0 -89
  311. package/src/hooks/usePressableContainerStyles/__tests__/usePressableContainerStyles.spec.ts +0 -68
  312. package/src/primitives/Button/__tests__/Button.spec.tsx +0 -92
  313. package/src/primitives/Button/__tests__/__snapshots__/Button.spec.tsx.snap +0 -143
  314. package/src/primitives/Carousel/__tests__/Carousel.spec.tsx +0 -174
  315. package/src/primitives/Carousel/__tests__/CarouselPageIndicator.spec.tsx +0 -73
  316. package/src/primitives/Carousel/__tests__/__snapshots__/Carousel.spec.tsx.snap +0 -310
  317. package/src/primitives/Carousel/__tests__/__snapshots__/CarouselPageIndicator.spec.tsx.snap +0 -191
  318. package/src/primitives/Checkbox/__tests__/Checkbox.spec.tsx +0 -150
  319. package/src/primitives/Checkbox/__tests__/__snapshots__/Checkbox.spec.tsx.snap +0 -527
  320. package/src/primitives/Divider/__tests__/Divider.spec.tsx +0 -50
  321. package/src/primitives/Divider/__tests__/__snapshots__/Divider.spec.tsx.snap +0 -165
  322. package/src/primitives/ErrorMessage/__tests__/ErrorMessage.spec.tsx +0 -60
  323. package/src/primitives/ErrorMessage/__tests__/__snapshots__/ErrorMessage.spec.tsx.snap +0 -123
  324. package/src/primitives/Heading/__tests__/Heading.spec.tsx +0 -73
  325. package/src/primitives/Heading/__tests__/__snapshots__/Heading.spec.tsx.snap +0 -171
  326. package/src/primitives/Icon/__tests__/Icon.spec.tsx +0 -100
  327. package/src/primitives/Icon/__tests__/__snapshots__/Icon.spec.tsx.snap +0 -139
  328. package/src/primitives/IconButton/__tests__/IconButton.spec.tsx +0 -71
  329. package/src/primitives/IconButton/__tests__/__snapshots__/IconButton.spec.tsx.snap +0 -192
  330. package/src/primitives/Label/__tests__/Label.spec.tsx +0 -75
  331. package/src/primitives/Label/__tests__/__snapshots__/Label.spec.tsx.snap +0 -91
  332. package/src/primitives/PasswordField/__tests__/PasswordField.spec.tsx +0 -110
  333. package/src/primitives/PasswordField/__tests__/__snapshots__/PasswordField.spec.tsx.snap +0 -625
  334. package/src/primitives/PhoneNumberField/__tests__/PhoneNumberField.spec.tsx +0 -53
  335. package/src/primitives/PhoneNumberField/__tests__/__snapshots__/PhoneNumberField.spec.tsx.snap +0 -188
  336. package/src/primitives/Radio/__tests__/Radio.spec.tsx +0 -166
  337. package/src/primitives/Radio/__tests__/__snapshots__/Radio.spec.tsx.snap +0 -678
  338. package/src/primitives/RadioGroup/__tests__/RadioGroup.spec.tsx +0 -183
  339. package/src/primitives/RadioGroup/__tests__/__snapshots__/RadioGroup.spec.tsx.snap +0 -1789
  340. package/src/primitives/Tabs/__tests__/Tab.spec.tsx +0 -75
  341. package/src/primitives/Tabs/__tests__/Tabs.spec.tsx +0 -81
  342. package/src/primitives/Tabs/__tests__/__snapshots__/Tab.spec.tsx.snap +0 -278
  343. package/src/primitives/Tabs/__tests__/__snapshots__/Tabs.spec.tsx.snap +0 -163
  344. package/src/primitives/TextField/__tests__/TextField.spec.tsx +0 -202
  345. package/src/primitives/TextField/__tests__/__snapshots__/TextField.spec.tsx.snap +0 -507
  346. package/src/theme/__tests__/ThemeProvider.spec.tsx +0 -23
  347. package/src/theme/__tests__/__snapshots__/useTheme.spec.tsx.snap +0 -226
  348. package/src/theme/__tests__/createTheme.spec.ts +0 -244
  349. package/src/theme/__tests__/useTheme.spec.tsx +0 -51
  350. package/tsconfig.dist.json +0 -4
  351. package/tsconfig.json +0 -9
@@ -1,355 +0,0 @@
1
- import { PressableStateCallbackType, StyleProp, ViewStyle } from 'react-native';
2
-
3
- import {
4
- MessageComponentBaseProps,
5
- MessageLayout,
6
- MessageTextAlign,
7
- } from '@aws-amplify/ui-react-core-notifications';
8
- import { BUTTON_PRESSED_OPACITY } from '../../../constants';
9
- import { MessageDefaultStyle } from '../types';
10
- import { StyleParams } from '../types';
11
-
12
- import {
13
- getComponentButtonStyle,
14
- getContainerAndWrapperStyle,
15
- getPayloadStyle,
16
- getMessageStyles,
17
- shouldFillDeviceScreen,
18
- } from '../utils';
19
-
20
- type ResolveContainerStyle = {
21
- container: (state?: PressableStateCallbackType) => StyleProp<ViewStyle>;
22
- };
23
-
24
- const EMPTY_STYLE = Object.freeze({});
25
-
26
- const baseDefaultStyle: MessageDefaultStyle = {
27
- body: {},
28
- buttonContainer: {},
29
- buttonsContainer: {},
30
- buttonText: {},
31
- wrapper: {},
32
- container: {},
33
- contentContainer: {},
34
- header: {},
35
- iconButton: {},
36
- image: {},
37
- imageContainer: {},
38
- textContainer: {},
39
- };
40
-
41
- describe('getComponentButtonStyle', () => {
42
- const pressedOpacity = { opacity: BUTTON_PRESSED_OPACITY };
43
-
44
- it.each(['primaryButton' as const, 'secondaryButton' as const])(
45
- 'returns the expected output in the happy path for a %s',
46
- (buttonType) => {
47
- const defaultStyle = {
48
- ...baseDefaultStyle,
49
- buttonContainer: { backgroundColor: 'white' },
50
- buttonText: { color: 'red' },
51
- };
52
- const payloadStyle = {
53
- [buttonType]: {
54
- backgroundColor: 'maroon',
55
- borderRadius: 4,
56
- color: 'teal',
57
- },
58
- };
59
- const overrideStyle = {
60
- [buttonType]: {
61
- container: { backgroundColor: 'pink' },
62
- text: { color: 'black' },
63
- },
64
- };
65
- const styleParams = { defaultStyle, payloadStyle, overrideStyle };
66
-
67
- const expectedContainerPressedStyle = [
68
- pressedOpacity,
69
- { backgroundColor: 'white' },
70
- { backgroundColor: 'maroon', borderRadius: 4 },
71
- { backgroundColor: 'pink' },
72
- ];
73
- const expectedContainerUnpressedStyle = [
74
- EMPTY_STYLE,
75
- { backgroundColor: 'white' },
76
- { backgroundColor: 'maroon', borderRadius: 4 },
77
- { backgroundColor: 'pink' },
78
- ];
79
-
80
- const expectedTextStyle = [
81
- { color: 'red' },
82
- { color: 'teal' },
83
- { color: 'black' },
84
- ];
85
-
86
- const output = getComponentButtonStyle({ styleParams, buttonType });
87
-
88
- const containerPressedStyle = (output as ResolveContainerStyle).container(
89
- { pressed: true }
90
- );
91
- const containerUnpressedStyle = (
92
- output as ResolveContainerStyle
93
- ).container({ pressed: false });
94
-
95
- expect(containerPressedStyle).toStrictEqual(
96
- expectedContainerPressedStyle
97
- );
98
- expect(containerUnpressedStyle).toStrictEqual(
99
- expectedContainerUnpressedStyle
100
- );
101
-
102
- expect(output.text).toStrictEqual(expectedTextStyle);
103
- }
104
- );
105
-
106
- describe('button container style', () => {
107
- it('returns unpressed button container style when press event is not provided', () => {
108
- const defaultStyle = {
109
- buttonContainer: { backgroundColor: 'white' },
110
- buttonText: {},
111
- } as MessageDefaultStyle;
112
- const styleParams = {
113
- defaultStyle,
114
- payloadStyle: {},
115
- overrideStyle: {},
116
- };
117
-
118
- const output = getComponentButtonStyle({
119
- styleParams,
120
- buttonType: 'primaryButton',
121
- });
122
-
123
- const buttonContainerStyle = (
124
- output as ResolveContainerStyle
125
- ).container();
126
-
127
- const expectedButtonContainerStyle = [
128
- EMPTY_STYLE,
129
- { backgroundColor: 'white' },
130
- EMPTY_STYLE,
131
- EMPTY_STYLE,
132
- ];
133
-
134
- expect(buttonContainerStyle).toStrictEqual(expectedButtonContainerStyle);
135
- });
136
-
137
- it('correctly evaluates button container override style when it is a function', () => {
138
- const pressedStyle = { backgroundColor: 'seafoam' };
139
- const unpressedStyle = { backgroundColor: 'fuschia' };
140
- const overrideStyle = {
141
- primaryButton: {
142
- container: ({ pressed }: { pressed: boolean }) =>
143
- pressed ? pressedStyle : unpressedStyle,
144
- },
145
- };
146
- const styleParams = {
147
- defaultStyle: baseDefaultStyle,
148
- payloadStyle: {},
149
- overrideStyle,
150
- };
151
-
152
- const output = getComponentButtonStyle({
153
- styleParams,
154
- buttonType: 'primaryButton',
155
- });
156
-
157
- const containerPressedStyle = (output as ResolveContainerStyle).container(
158
- { pressed: true }
159
- );
160
- const containerUnpressedStyle = (
161
- output as ResolveContainerStyle
162
- ).container({ pressed: false });
163
-
164
- const expectedContainerPressedStyle = [
165
- pressedOpacity,
166
- EMPTY_STYLE,
167
- EMPTY_STYLE,
168
- pressedStyle,
169
- ];
170
- const expectedContainerUnressedStyle = [
171
- EMPTY_STYLE,
172
- EMPTY_STYLE,
173
- EMPTY_STYLE,
174
- unpressedStyle,
175
- ];
176
-
177
- expect(containerPressedStyle).toStrictEqual(
178
- expectedContainerPressedStyle
179
- );
180
- expect(containerUnpressedStyle).toStrictEqual(
181
- expectedContainerUnressedStyle
182
- );
183
- });
184
- });
185
- });
186
-
187
- describe('getContainerAndWrapperStyle', () => {
188
- it('returns the expected output for a banner component in the happy path', () => {
189
- const defaultStyle = {
190
- ...baseDefaultStyle,
191
- container: { backgroundColor: 'red' },
192
- wrapper: { opacity: 0.4 },
193
- };
194
- const payloadStyle = { container: { backgroundColor: 'teal' } };
195
- const overrideStyle = { container: { backgroundColor: 'pink' } };
196
-
197
- const output = getContainerAndWrapperStyle({
198
- layout: 'TOP_BANNER',
199
- styleParams: { defaultStyle, payloadStyle, overrideStyle },
200
- });
201
-
202
- const expectedContainerStyle = [
203
- { backgroundColor: 'red' },
204
- { backgroundColor: 'teal' },
205
- { backgroundColor: 'pink' },
206
- ];
207
-
208
- const expectedWrapperStyle = { opacity: 0.4 };
209
-
210
- expect(output.container).toStrictEqual(expectedContainerStyle);
211
- expect(output.wrapper).toStrictEqual(expectedWrapperStyle);
212
- });
213
-
214
- it('returns the expected output for a non-banner component in the happy path', () => {
215
- const defaultStyle = {
216
- ...baseDefaultStyle,
217
- container: { backgroundColor: 'red' },
218
- wrapper: { opacity: 0.4 },
219
- };
220
- const payloadStyle = { container: { backgroundColor: 'teal' } };
221
- const overrideStyle = { container: { backgroundColor: 'pink' } };
222
-
223
- const output = getContainerAndWrapperStyle({
224
- layout: 'CAROUSEL',
225
- styleParams: { defaultStyle, payloadStyle, overrideStyle },
226
- });
227
-
228
- const expectedContainerStyle = [{}, {}, {}];
229
-
230
- const expectedWrapperStyle = [
231
- { opacity: 0.4 },
232
- { backgroundColor: 'red' },
233
- { backgroundColor: 'teal' },
234
- { backgroundColor: 'pink' },
235
- ];
236
-
237
- expect(output.container).toStrictEqual(expectedContainerStyle);
238
- expect(output.wrapper).toStrictEqual(expectedWrapperStyle);
239
- });
240
-
241
- it('correctly handles a style array passed as the argument of overrideStyle.container', () => {
242
- const defaultStyle = {
243
- ...baseDefaultStyle,
244
- container: { backgroundColor: 'red' },
245
- wrapper: { opacity: 0.4 },
246
- };
247
- const payloadStyle = { container: { backgroundColor: 'teal' } };
248
- const overrideStyle = {
249
- container: [{ backgroundColor: 'pink' }, { flex: 5 }],
250
- };
251
-
252
- const output = getContainerAndWrapperStyle({
253
- layout: 'CAROUSEL',
254
- styleParams: { defaultStyle, payloadStyle, overrideStyle },
255
- });
256
-
257
- const expectedContainerStyle = [EMPTY_STYLE, EMPTY_STYLE, { flex: 5 }];
258
-
259
- const expectedWrapperStyle = [
260
- { opacity: 0.4 },
261
- { backgroundColor: 'red' },
262
- { backgroundColor: 'teal' },
263
- { backgroundColor: 'pink' },
264
- ];
265
-
266
- expect(output.container).toStrictEqual(expectedContainerStyle);
267
- expect(output.wrapper).toStrictEqual(expectedWrapperStyle);
268
- });
269
- });
270
-
271
- describe('getPayloadStyle', () => {
272
- it('returns the expected output in the happy path', () => {
273
- const output = getPayloadStyle({
274
- body: { style: { textAlign: 'left' as MessageTextAlign } },
275
- container: { style: { backgroundColor: 'lightgray', borderRadius: 2 } },
276
- header: { style: { textAlign: 'center' as MessageTextAlign } },
277
- primaryButton: { style: { backgroundColor: 'salmon', color: 'olive' } },
278
- secondaryButton: { style: { backgroundColor: 'sand', color: 'peru' } },
279
- } as MessageComponentBaseProps);
280
-
281
- expect(output).toMatchSnapshot();
282
- });
283
- });
284
-
285
- describe('getMessageStyles', () => {
286
- const defaultStyle = {
287
- body: { color: 'fuschia' },
288
- buttonContainer: { backgroundColor: 'chartreuse' },
289
- buttonText: { color: 'pink' },
290
- buttonsContainer: { backgroundColor: 'teal' },
291
- contentContainer: { backgroundColor: 'lightblue' },
292
- container: { backgroundColor: 'red', borderRadius: 1 },
293
- header: { backgroundColor: 'purple' },
294
- iconButton: { backgroundColor: 'blue' },
295
- image: { backgroundColor: 'yellow' },
296
- imageContainer: { backgroundColor: 'green' },
297
- textContainer: { backgroundColor: 'antiquewhite' },
298
- wrapper: { backgroundColor: 'gray' },
299
- };
300
-
301
- const payloadStyle: StyleParams['payloadStyle'] = {
302
- body: { textAlign: 'left' as MessageTextAlign },
303
- container: { backgroundColor: 'lightgray', borderRadius: 2 },
304
- header: { textAlign: 'center' as MessageTextAlign },
305
- primaryButton: { backgroundColor: 'salmon', color: 'olive' },
306
- secondaryButton: { backgroundColor: 'sand', color: 'peru' },
307
- };
308
-
309
- const overrideStyle = {
310
- body: { color: 'white' },
311
- closeIconButton: { backgroundColor: 'turquoise' },
312
- closeIconColor: 'darkcyan',
313
- container: { backgroundColor: 'lawngreen', borderRadius: 3 },
314
- header: { backgroundColor: 'lightpink' },
315
- image: { backgroundColor: 'royalblue' },
316
- primaryButton: {
317
- container: { backgroundColor: 'seagreen' },
318
- text: { color: 'black' },
319
- },
320
- secondaryButton: {
321
- container: { backgroundColor: 'sienna' },
322
- text: { color: 'orchid' },
323
- },
324
- };
325
- it('returns the expected output in the happy path', () => {
326
- const output = getMessageStyles({
327
- layout: 'FULL_SCREEN',
328
- styleParams: { defaultStyle, payloadStyle, overrideStyle },
329
- });
330
-
331
- expect(output).toMatchSnapshot();
332
- });
333
-
334
- it('adds a bottom padding for carousel page indicators', () => {
335
- const output = getMessageStyles({
336
- layout: 'CAROUSEL',
337
- styleParams: { defaultStyle, payloadStyle: {}, overrideStyle: {} },
338
- });
339
-
340
- expect(output).toMatchSnapshot();
341
- });
342
- });
343
-
344
- describe('shouldFillDeviceScreen', () => {
345
- it.each([
346
- ['BOTTOM_BANNER', false],
347
- ['MIDDLE_BANNER', false],
348
- ['TOP_BANNER', false],
349
- ['MODAL', false],
350
- ['CAROUSEL', true],
351
- ['FULL_SCREEN', true],
352
- ])('returns the expected output for a %s layout', (layout, expected) => {
353
- expect(shouldFillDeviceScreen(layout as MessageLayout)).toBe(expected);
354
- });
355
- });
@@ -1,2 +0,0 @@
1
- // mock RN AsyncStorage module to prevent errors from Amplify JS usage of the module
2
- export { default } from '@react-native-async-storage/async-storage/jest/async-storage-mock';
@@ -1,3 +0,0 @@
1
- // mock RN NetInfo module to prevent errors from Amplify JS usage of the module
2
- // @ts-ignore - ignoring as this is a JS mock
3
- export { default } from '@react-native-community/netinfo/jest/netinfo-mock.js';
@@ -1,9 +0,0 @@
1
- jest.mock('react-native-safe-area-context');
2
-
3
- const SafeAreaProvider = 'SafeAreaProvider';
4
- const SafeAreaView = 'SafeAreaView';
5
-
6
- // return somewhat arbitrary values, safe area insets of iPhone 13
7
- const useSafeAreaInsets = jest.fn(() => ({ bottom: 44, top: 47 }));
8
-
9
- export { SafeAreaProvider, SafeAreaView, useSafeAreaInsets };
@@ -1,26 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`@aws-amplify/ui-react-native exports should match snapshot 1`] = `
4
- Array [
5
- "Authenticator",
6
- "AuthenticatorProps",
7
- "Theme",
8
- "ThemeProvider",
9
- "UseAuthenticator",
10
- "WithAuthenticatorOptions",
11
- "defaultDarkModeOverride",
12
- "defaultTheme",
13
- "useAuthenticator",
14
- "useTheme",
15
- "withAuthenticator",
16
- "BannerMessageProps",
17
- "CarouselMessageProps",
18
- "FullScreenMessageProps",
19
- "InAppMessageDisplay",
20
- "InAppMessagingProvider",
21
- "MessageComponents",
22
- "ModalMessageProps",
23
- "useInAppMessaging",
24
- "withInAppMessaging",
25
- ]
26
- `;
@@ -1,8 +0,0 @@
1
- import * as exported from '..';
2
-
3
- describe('@aws-amplify/ui-react-native', () => {
4
- it('exports should match snapshot', () => {
5
- const exportedKeys = Object.keys(exported);
6
- expect(exportedKeys).toMatchSnapshot();
7
- });
8
- });
@@ -1,42 +0,0 @@
1
- import { renderHook } from '@testing-library/react-hooks';
2
-
3
- import { platform } from '../../../utils';
4
- import useDeprecationWarning from '../useDeprecationWarning';
5
-
6
- const mockIsDev = jest.fn();
7
- jest.mock('../../../utils', () => ({
8
- ...jest.requireActual('../../../utils'),
9
- IS_DEV: mockIsDev,
10
- }));
11
-
12
- // add empty mockImplementation to prevent logging output to the console
13
- const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation();
14
-
15
- const message = 'This component is deprecated, use X instead';
16
- const shouldWarn = true;
17
-
18
- describe('useDeprecationWarning', () => {
19
- beforeAll(() => {
20
- platform.IS_DEV = true;
21
- });
22
-
23
- beforeEach(() => {
24
- consoleWarnSpy.mockClear();
25
- });
26
-
27
- it('should log an error if `shouldWarn` is set to `true` and `__DEV__` is `true`', () => {
28
- renderHook(() => useDeprecationWarning({ shouldWarn, message }));
29
- expect(consoleWarnSpy).toHaveBeenCalledTimes(1);
30
- expect(consoleWarnSpy).toHaveBeenCalledWith(message);
31
- });
32
-
33
- it('should not log an error if `shouldWarn` is set to `true` and `__DEV__` is `false`', () => {
34
- const message = 'This component is deprecated, use X instead';
35
-
36
- platform.IS_DEV = false;
37
-
38
- renderHook(() => useDeprecationWarning({ shouldWarn, message }));
39
- expect(consoleWarnSpy).toHaveBeenCalledTimes(0);
40
- expect(consoleWarnSpy).not.toHaveBeenCalledWith(message);
41
- });
42
- });
@@ -1,89 +0,0 @@
1
- import { Dimensions, EventSubscription } from 'react-native';
2
- import { renderHook } from '@testing-library/react-hooks';
3
- import useDeviceOrientation, {
4
- DeviceOrientation,
5
- } from '../useDeviceOrientation';
6
-
7
- const dimensions = {
8
- landscape: { height: 100, width: 300 },
9
- portrait: { height: 300, width: 100 },
10
- };
11
-
12
- describe('useDeviceOrientation', () => {
13
- const subscription: Pick<EventSubscription, 'remove'> = { remove: jest.fn() };
14
-
15
- let getSpy: jest.SpyInstance;
16
- let addEventListenerSpy: jest.SpyInstance;
17
- let removeEventListener: jest.SpyInstance;
18
-
19
- beforeEach(() => {
20
- jest.resetAllMocks();
21
-
22
- getSpy = jest.spyOn(Dimensions, 'get');
23
-
24
- addEventListenerSpy = jest.spyOn(Dimensions, 'addEventListener');
25
-
26
- removeEventListener = jest.spyOn(Dimensions, 'removeEventListener');
27
- });
28
-
29
- /* eslint-disable no-console */
30
- // turn off console errors during tests, can be safely removed once React Native v0.64 is no longer supported
31
- const consoleWarn = console.warn;
32
- console.warn = jest.fn();
33
- afterAll(() => {
34
- console.warn = consoleWarn;
35
- /* eslint-enable no-console */
36
- });
37
-
38
- it('should handle unsubscribing for React Native versions < 0.65', () => {
39
- getSpy.mockImplementation((_: string) => dimensions['portrait']);
40
-
41
- // mock an `undefined` return to simulate React Native versions < 0.65
42
- addEventListenerSpy.mockReturnValueOnce(undefined);
43
-
44
- const { unmount } = renderHook(() => useDeviceOrientation());
45
-
46
- expect(getSpy).toHaveBeenCalledTimes(1);
47
- expect(getSpy).toHaveBeenCalledWith('screen');
48
- expect(addEventListenerSpy).toHaveBeenCalledTimes(1);
49
-
50
- unmount();
51
-
52
- expect(removeEventListener).toHaveBeenCalledTimes(1);
53
- expect(subscription.remove).not.toHaveBeenCalled();
54
- });
55
-
56
- it('should handle unsubscribing for React Native versions >= 0.65', () => {
57
- getSpy.mockImplementation((_: string) => dimensions['landscape']);
58
- addEventListenerSpy.mockReturnValue(subscription);
59
-
60
- const { unmount } = renderHook(() => useDeviceOrientation());
61
-
62
- expect(getSpy).toHaveBeenCalledTimes(1);
63
- expect(getSpy).toHaveBeenCalledWith('screen');
64
- expect(addEventListenerSpy).toHaveBeenCalledTimes(1);
65
-
66
- unmount();
67
-
68
- expect(subscription.remove).toHaveBeenCalledTimes(1);
69
- expect(removeEventListener).not.toHaveBeenCalled();
70
- });
71
-
72
- it.each([
73
- ['landscape', true, false],
74
- ['portrait', false, true],
75
- ])(
76
- 'returns the expected values when the device is in %s mode',
77
- (deviceOrientation, isLandscapeMode, isPortraitMode) => {
78
- getSpy.mockImplementation(
79
- (_: string) => dimensions[deviceOrientation as DeviceOrientation]
80
- );
81
-
82
- const { result } = renderHook(() => useDeviceOrientation());
83
-
84
- expect(result.current.deviceOrientation).toBe(deviceOrientation);
85
- expect(result.current.isLandscapeMode).toBe(isLandscapeMode);
86
- expect(result.current.isPortraitMode).toBe(isPortraitMode);
87
- }
88
- );
89
- });
@@ -1,68 +0,0 @@
1
- import { renderHook } from '@testing-library/react-native';
2
- import { ViewStyle } from 'react-native';
3
-
4
- import {
5
- UsePressableContainerStyleProps,
6
- usePressableContainerStyles,
7
- } from '../usePressableContainerStyles';
8
-
9
- const style: ViewStyle = {
10
- backgroundColor: 'red',
11
- };
12
- const themedStyle: ViewStyle = {
13
- padding: 10,
14
- };
15
- const pressedStyle: ViewStyle = {
16
- opacity: 70,
17
- };
18
-
19
- describe('usePressableContainerStyles', () => {
20
- it('should apply styles correctly and return a style object', () => {
21
- const props: UsePressableContainerStyleProps = {
22
- overrideStyle: style,
23
- containerStyle: themedStyle,
24
- pressedStyle,
25
- };
26
-
27
- const { result } = renderHook(() => usePressableContainerStyles(props));
28
-
29
- expect(result.current({ pressed: false })).toStrictEqual([
30
- { ...themedStyle },
31
- undefined, // no pressed styles
32
- { ...style },
33
- ]);
34
- });
35
-
36
- it('should apply pressed styles correctly and return a style object', () => {
37
- const props: UsePressableContainerStyleProps = {
38
- overrideStyle: style,
39
- containerStyle: themedStyle,
40
- pressedStyle,
41
- };
42
-
43
- const { result } = renderHook(() => usePressableContainerStyles(props));
44
-
45
- expect(result.current({ pressed: true })).toStrictEqual([
46
- { ...themedStyle },
47
- { ...pressedStyle },
48
- { ...style },
49
- ]);
50
- });
51
-
52
- it('should apply style function correctly and return a style object', () => {
53
- const props: UsePressableContainerStyleProps = {
54
- overrideStyle: () => {
55
- return style;
56
- },
57
- containerStyle: themedStyle,
58
- };
59
-
60
- const { result } = renderHook(() => usePressableContainerStyles(props));
61
-
62
- expect(result.current({ pressed: false })).toStrictEqual([
63
- { ...themedStyle },
64
- undefined,
65
- { ...style },
66
- ]);
67
- });
68
- });