@kiosinc/commons-rn 0.1.7

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 (338) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +31 -0
  3. package/lib/commonjs/auth/api/authentication.js +20 -0
  4. package/lib/commonjs/auth/api/authentication.js.map +1 -0
  5. package/lib/commonjs/auth/appLogo.svg +9 -0
  6. package/lib/commonjs/auth/hooks/useAuthenticateRequests.js +52 -0
  7. package/lib/commonjs/auth/hooks/useAuthenticateRequests.js.map +1 -0
  8. package/lib/commonjs/auth/hooks/useAuthentication.js +89 -0
  9. package/lib/commonjs/auth/hooks/useAuthentication.js.map +1 -0
  10. package/lib/commonjs/auth/index.js +33 -0
  11. package/lib/commonjs/auth/index.js.map +1 -0
  12. package/lib/commonjs/auth/providers/authentication/AuthenticationProvider.js +57 -0
  13. package/lib/commonjs/auth/providers/authentication/AuthenticationProvider.js.map +1 -0
  14. package/lib/commonjs/auth/providers/authentication/actions/authentication.actions.js +13 -0
  15. package/lib/commonjs/auth/providers/authentication/actions/authentication.actions.js.map +1 -0
  16. package/lib/commonjs/auth/providers/authentication/index.js +50 -0
  17. package/lib/commonjs/auth/providers/authentication/index.js.map +1 -0
  18. package/lib/commonjs/auth/providers/authentication/reducer/authentication.reducer.js +21 -0
  19. package/lib/commonjs/auth/providers/authentication/reducer/authentication.reducer.js.map +1 -0
  20. package/lib/commonjs/auth/providers/authentication/types/authentication.types.js +11 -0
  21. package/lib/commonjs/auth/providers/authentication/types/authentication.types.js.map +1 -0
  22. package/lib/commonjs/auth/screens/LoginScreen.js +131 -0
  23. package/lib/commonjs/auth/screens/LoginScreen.js.map +1 -0
  24. package/lib/commonjs/auth/screens/ResetPassword.js +90 -0
  25. package/lib/commonjs/auth/screens/ResetPassword.js.map +1 -0
  26. package/lib/commonjs/auth/screens/ResetPasswordInstructionsSent.js +34 -0
  27. package/lib/commonjs/auth/screens/ResetPasswordInstructionsSent.js.map +1 -0
  28. package/lib/commonjs/auth/screens/SignUp.js +176 -0
  29. package/lib/commonjs/auth/screens/SignUp.js.map +1 -0
  30. package/lib/commonjs/auth/screens/SignUpPassword.js +103 -0
  31. package/lib/commonjs/auth/screens/SignUpPassword.js.map +1 -0
  32. package/lib/commonjs/auth/screens/VerifyPhoneNumber.js +95 -0
  33. package/lib/commonjs/auth/screens/VerifyPhoneNumber.js.map +1 -0
  34. package/lib/commonjs/auth/screens/index.js +37 -0
  35. package/lib/commonjs/auth/screens/index.js.map +1 -0
  36. package/lib/commonjs/auth/screens/validators.js +39 -0
  37. package/lib/commonjs/auth/screens/validators.js.map +1 -0
  38. package/lib/commonjs/components/Alert.js +109 -0
  39. package/lib/commonjs/components/Alert.js.map +1 -0
  40. package/lib/commonjs/components/Badge.js +20 -0
  41. package/lib/commonjs/components/Badge.js.map +1 -0
  42. package/lib/commonjs/components/BottomSheet.js +60 -0
  43. package/lib/commonjs/components/BottomSheet.js.map +1 -0
  44. package/lib/commonjs/components/Button.js +20 -0
  45. package/lib/commonjs/components/Button.js.map +1 -0
  46. package/lib/commonjs/components/Card.js +19 -0
  47. package/lib/commonjs/components/Card.js.map +1 -0
  48. package/lib/commonjs/components/Divider.js +19 -0
  49. package/lib/commonjs/components/Divider.js.map +1 -0
  50. package/lib/commonjs/components/FAB.js +19 -0
  51. package/lib/commonjs/components/FAB.js.map +1 -0
  52. package/lib/commonjs/components/Header.js +73 -0
  53. package/lib/commonjs/components/Header.js.map +1 -0
  54. package/lib/commonjs/components/IconButton.js +19 -0
  55. package/lib/commonjs/components/IconButton.js.map +1 -0
  56. package/lib/commonjs/components/Image.js +45 -0
  57. package/lib/commonjs/components/Image.js.map +1 -0
  58. package/lib/commonjs/components/KeyboardAvoidingView.js +23 -0
  59. package/lib/commonjs/components/KeyboardAvoidingView.js.map +1 -0
  60. package/lib/commonjs/components/LineLoader.js +61 -0
  61. package/lib/commonjs/components/LineLoader.js.map +1 -0
  62. package/lib/commonjs/components/LinkButton.js +32 -0
  63. package/lib/commonjs/components/LinkButton.js.map +1 -0
  64. package/lib/commonjs/components/OtpInputs.js +97 -0
  65. package/lib/commonjs/components/OtpInputs.js.map +1 -0
  66. package/lib/commonjs/components/ParentView.js +81 -0
  67. package/lib/commonjs/components/ParentView.js.map +1 -0
  68. package/lib/commonjs/components/Searchbar.js +22 -0
  69. package/lib/commonjs/components/Searchbar.js.map +1 -0
  70. package/lib/commonjs/components/SelectionDialog.js +130 -0
  71. package/lib/commonjs/components/SelectionDialog.js.map +1 -0
  72. package/lib/commonjs/components/Snackbar.js +69 -0
  73. package/lib/commonjs/components/Snackbar.js.map +1 -0
  74. package/lib/commonjs/components/Surface.js +19 -0
  75. package/lib/commonjs/components/Surface.js.map +1 -0
  76. package/lib/commonjs/components/Text.js +20 -0
  77. package/lib/commonjs/components/Text.js.map +1 -0
  78. package/lib/commonjs/components/TextInput.js +65 -0
  79. package/lib/commonjs/components/TextInput.js.map +1 -0
  80. package/lib/commonjs/components/ToggleButton.js +19 -0
  81. package/lib/commonjs/components/ToggleButton.js.map +1 -0
  82. package/lib/commonjs/components/Video.js +42 -0
  83. package/lib/commonjs/components/Video.js.map +1 -0
  84. package/lib/commonjs/components/View.js +20 -0
  85. package/lib/commonjs/components/View.js.map +1 -0
  86. package/lib/commonjs/components/index.js +174 -0
  87. package/lib/commonjs/components/index.js.map +1 -0
  88. package/lib/commonjs/index.js +37 -0
  89. package/lib/commonjs/index.js.map +1 -0
  90. package/lib/commonjs/theme/index.js +43 -0
  91. package/lib/commonjs/theme/index.js.map +1 -0
  92. package/lib/commonjs/theme/theme.js +126 -0
  93. package/lib/commonjs/theme/theme.js.map +1 -0
  94. package/lib/commonjs/theme/tokens.js +204 -0
  95. package/lib/commonjs/theme/tokens.js.map +1 -0
  96. package/lib/commonjs/types/index.d.js +2 -0
  97. package/lib/commonjs/types/index.d.js.map +1 -0
  98. package/lib/commonjs/types/svg.d.js +2 -0
  99. package/lib/commonjs/types/svg.d.js.map +1 -0
  100. package/lib/module/auth/api/authentication.js +11 -0
  101. package/lib/module/auth/api/authentication.js.map +1 -0
  102. package/lib/module/auth/appLogo.svg +9 -0
  103. package/lib/module/auth/hooks/useAuthenticateRequests.js +44 -0
  104. package/lib/module/auth/hooks/useAuthenticateRequests.js.map +1 -0
  105. package/lib/module/auth/hooks/useAuthentication.js +81 -0
  106. package/lib/module/auth/hooks/useAuthentication.js.map +1 -0
  107. package/lib/module/auth/index.js +5 -0
  108. package/lib/module/auth/index.js.map +1 -0
  109. package/lib/module/auth/providers/authentication/AuthenticationProvider.js +45 -0
  110. package/lib/module/auth/providers/authentication/AuthenticationProvider.js.map +1 -0
  111. package/lib/module/auth/providers/authentication/actions/authentication.actions.js +6 -0
  112. package/lib/module/auth/providers/authentication/actions/authentication.actions.js.map +1 -0
  113. package/lib/module/auth/providers/authentication/index.js +5 -0
  114. package/lib/module/auth/providers/authentication/index.js.map +1 -0
  115. package/lib/module/auth/providers/authentication/reducer/authentication.reducer.js +14 -0
  116. package/lib/module/auth/providers/authentication/reducer/authentication.reducer.js.map +1 -0
  117. package/lib/module/auth/providers/authentication/types/authentication.types.js +5 -0
  118. package/lib/module/auth/providers/authentication/types/authentication.types.js.map +1 -0
  119. package/lib/module/auth/screens/LoginScreen.js +121 -0
  120. package/lib/module/auth/screens/LoginScreen.js.map +1 -0
  121. package/lib/module/auth/screens/ResetPassword.js +82 -0
  122. package/lib/module/auth/screens/ResetPassword.js.map +1 -0
  123. package/lib/module/auth/screens/ResetPasswordInstructionsSent.js +26 -0
  124. package/lib/module/auth/screens/ResetPasswordInstructionsSent.js.map +1 -0
  125. package/lib/module/auth/screens/SignUp.js +168 -0
  126. package/lib/module/auth/screens/SignUp.js.map +1 -0
  127. package/lib/module/auth/screens/SignUpPassword.js +95 -0
  128. package/lib/module/auth/screens/SignUpPassword.js.map +1 -0
  129. package/lib/module/auth/screens/VerifyPhoneNumber.js +87 -0
  130. package/lib/module/auth/screens/VerifyPhoneNumber.js.map +1 -0
  131. package/lib/module/auth/screens/index.js +29 -0
  132. package/lib/module/auth/screens/index.js.map +1 -0
  133. package/lib/module/auth/screens/validators.js +31 -0
  134. package/lib/module/auth/screens/validators.js.map +1 -0
  135. package/lib/module/components/Alert.js +100 -0
  136. package/lib/module/components/Alert.js.map +1 -0
  137. package/lib/module/components/Badge.js +12 -0
  138. package/lib/module/components/Badge.js.map +1 -0
  139. package/lib/module/components/BottomSheet.js +52 -0
  140. package/lib/module/components/BottomSheet.js.map +1 -0
  141. package/lib/module/components/Button.js +12 -0
  142. package/lib/module/components/Button.js.map +1 -0
  143. package/lib/module/components/Card.js +11 -0
  144. package/lib/module/components/Card.js.map +1 -0
  145. package/lib/module/components/Divider.js +11 -0
  146. package/lib/module/components/Divider.js.map +1 -0
  147. package/lib/module/components/FAB.js +11 -0
  148. package/lib/module/components/FAB.js.map +1 -0
  149. package/lib/module/components/Header.js +66 -0
  150. package/lib/module/components/Header.js.map +1 -0
  151. package/lib/module/components/IconButton.js +11 -0
  152. package/lib/module/components/IconButton.js.map +1 -0
  153. package/lib/module/components/Image.js +35 -0
  154. package/lib/module/components/Image.js.map +1 -0
  155. package/lib/module/components/KeyboardAvoidingView.js +15 -0
  156. package/lib/module/components/KeyboardAvoidingView.js.map +1 -0
  157. package/lib/module/components/LineLoader.js +52 -0
  158. package/lib/module/components/LineLoader.js.map +1 -0
  159. package/lib/module/components/LinkButton.js +24 -0
  160. package/lib/module/components/LinkButton.js.map +1 -0
  161. package/lib/module/components/OtpInputs.js +87 -0
  162. package/lib/module/components/OtpInputs.js.map +1 -0
  163. package/lib/module/components/ParentView.js +72 -0
  164. package/lib/module/components/ParentView.js.map +1 -0
  165. package/lib/module/components/Searchbar.js +14 -0
  166. package/lib/module/components/Searchbar.js.map +1 -0
  167. package/lib/module/components/SelectionDialog.js +121 -0
  168. package/lib/module/components/SelectionDialog.js.map +1 -0
  169. package/lib/module/components/Snackbar.js +60 -0
  170. package/lib/module/components/Snackbar.js.map +1 -0
  171. package/lib/module/components/Surface.js +11 -0
  172. package/lib/module/components/Surface.js.map +1 -0
  173. package/lib/module/components/Text.js +12 -0
  174. package/lib/module/components/Text.js.map +1 -0
  175. package/lib/module/components/TextInput.js +56 -0
  176. package/lib/module/components/TextInput.js.map +1 -0
  177. package/lib/module/components/ToggleButton.js +11 -0
  178. package/lib/module/components/ToggleButton.js.map +1 -0
  179. package/lib/module/components/Video.js +32 -0
  180. package/lib/module/components/Video.js.map +1 -0
  181. package/lib/module/components/View.js +12 -0
  182. package/lib/module/components/View.js.map +1 -0
  183. package/lib/module/components/index.js +25 -0
  184. package/lib/module/components/index.js.map +1 -0
  185. package/lib/module/index.js +6 -0
  186. package/lib/module/index.js.map +1 -0
  187. package/lib/module/theme/index.js +36 -0
  188. package/lib/module/theme/index.js.map +1 -0
  189. package/lib/module/theme/theme.js +119 -0
  190. package/lib/module/theme/theme.js.map +1 -0
  191. package/lib/module/theme/tokens.js +198 -0
  192. package/lib/module/theme/tokens.js.map +1 -0
  193. package/lib/module/types/index.d.js +2 -0
  194. package/lib/module/types/index.d.js.map +1 -0
  195. package/lib/module/types/svg.d.js +2 -0
  196. package/lib/module/types/svg.d.js.map +1 -0
  197. package/lib/typescript/src/auth/api/authentication.d.ts +4 -0
  198. package/lib/typescript/src/auth/api/authentication.d.ts.map +1 -0
  199. package/lib/typescript/src/auth/hooks/useAuthenticateRequests.d.ts +2 -0
  200. package/lib/typescript/src/auth/hooks/useAuthenticateRequests.d.ts.map +1 -0
  201. package/lib/typescript/src/auth/hooks/useAuthentication.d.ts +19 -0
  202. package/lib/typescript/src/auth/hooks/useAuthentication.d.ts.map +1 -0
  203. package/lib/typescript/src/auth/index.d.ts +5 -0
  204. package/lib/typescript/src/auth/index.d.ts.map +1 -0
  205. package/lib/typescript/src/auth/providers/authentication/AuthenticationProvider.d.ts +8 -0
  206. package/lib/typescript/src/auth/providers/authentication/AuthenticationProvider.d.ts.map +1 -0
  207. package/lib/typescript/src/auth/providers/authentication/actions/authentication.actions.d.ts +3 -0
  208. package/lib/typescript/src/auth/providers/authentication/actions/authentication.actions.d.ts.map +1 -0
  209. package/lib/typescript/src/auth/providers/authentication/index.d.ts +5 -0
  210. package/lib/typescript/src/auth/providers/authentication/index.d.ts.map +1 -0
  211. package/lib/typescript/src/auth/providers/authentication/reducer/authentication.reducer.d.ts +3 -0
  212. package/lib/typescript/src/auth/providers/authentication/reducer/authentication.reducer.d.ts.map +1 -0
  213. package/lib/typescript/src/auth/providers/authentication/types/authentication.types.d.ts +15 -0
  214. package/lib/typescript/src/auth/providers/authentication/types/authentication.types.d.ts.map +1 -0
  215. package/lib/typescript/src/auth/screens/LoginScreen.d.ts +3 -0
  216. package/lib/typescript/src/auth/screens/LoginScreen.d.ts.map +1 -0
  217. package/lib/typescript/src/auth/screens/ResetPassword.d.ts +3 -0
  218. package/lib/typescript/src/auth/screens/ResetPassword.d.ts.map +1 -0
  219. package/lib/typescript/src/auth/screens/ResetPasswordInstructionsSent.d.ts +8 -0
  220. package/lib/typescript/src/auth/screens/ResetPasswordInstructionsSent.d.ts.map +1 -0
  221. package/lib/typescript/src/auth/screens/SignUp.d.ts +9 -0
  222. package/lib/typescript/src/auth/screens/SignUp.d.ts.map +1 -0
  223. package/lib/typescript/src/auth/screens/SignUpPassword.d.ts +8 -0
  224. package/lib/typescript/src/auth/screens/SignUpPassword.d.ts.map +1 -0
  225. package/lib/typescript/src/auth/screens/VerifyPhoneNumber.d.ts +8 -0
  226. package/lib/typescript/src/auth/screens/VerifyPhoneNumber.d.ts.map +1 -0
  227. package/lib/typescript/src/auth/screens/index.d.ts +3 -0
  228. package/lib/typescript/src/auth/screens/index.d.ts.map +1 -0
  229. package/lib/typescript/src/auth/screens/validators.d.ts +36 -0
  230. package/lib/typescript/src/auth/screens/validators.d.ts.map +1 -0
  231. package/lib/typescript/src/components/Alert.d.ts +19 -0
  232. package/lib/typescript/src/components/Alert.d.ts.map +1 -0
  233. package/lib/typescript/src/components/Badge.d.ts +9 -0
  234. package/lib/typescript/src/components/Badge.d.ts.map +1 -0
  235. package/lib/typescript/src/components/BottomSheet.d.ts +7 -0
  236. package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -0
  237. package/lib/typescript/src/components/Button.d.ts +9 -0
  238. package/lib/typescript/src/components/Button.d.ts.map +1 -0
  239. package/lib/typescript/src/components/Card.d.ts +9 -0
  240. package/lib/typescript/src/components/Card.d.ts.map +1 -0
  241. package/lib/typescript/src/components/Divider.d.ts +9 -0
  242. package/lib/typescript/src/components/Divider.d.ts.map +1 -0
  243. package/lib/typescript/src/components/FAB.d.ts +9 -0
  244. package/lib/typescript/src/components/FAB.d.ts.map +1 -0
  245. package/lib/typescript/src/components/Header.d.ts +18 -0
  246. package/lib/typescript/src/components/Header.d.ts.map +1 -0
  247. package/lib/typescript/src/components/IconButton.d.ts +9 -0
  248. package/lib/typescript/src/components/IconButton.d.ts.map +1 -0
  249. package/lib/typescript/src/components/Image.d.ts +9 -0
  250. package/lib/typescript/src/components/Image.d.ts.map +1 -0
  251. package/lib/typescript/src/components/KeyboardAvoidingView.d.ts +9 -0
  252. package/lib/typescript/src/components/KeyboardAvoidingView.d.ts.map +1 -0
  253. package/lib/typescript/src/components/LineLoader.d.ts +10 -0
  254. package/lib/typescript/src/components/LineLoader.d.ts.map +1 -0
  255. package/lib/typescript/src/components/LinkButton.d.ts +9 -0
  256. package/lib/typescript/src/components/LinkButton.d.ts.map +1 -0
  257. package/lib/typescript/src/components/OtpInputs.d.ts +18 -0
  258. package/lib/typescript/src/components/OtpInputs.d.ts.map +1 -0
  259. package/lib/typescript/src/components/ParentView.d.ts +19 -0
  260. package/lib/typescript/src/components/ParentView.d.ts.map +1 -0
  261. package/lib/typescript/src/components/Searchbar.d.ts +9 -0
  262. package/lib/typescript/src/components/Searchbar.d.ts.map +1 -0
  263. package/lib/typescript/src/components/SelectionDialog.d.ts +20 -0
  264. package/lib/typescript/src/components/SelectionDialog.d.ts.map +1 -0
  265. package/lib/typescript/src/components/Snackbar.d.ts +15 -0
  266. package/lib/typescript/src/components/Snackbar.d.ts.map +1 -0
  267. package/lib/typescript/src/components/Surface.d.ts +9 -0
  268. package/lib/typescript/src/components/Surface.d.ts.map +1 -0
  269. package/lib/typescript/src/components/Text.d.ts +13 -0
  270. package/lib/typescript/src/components/Text.d.ts.map +1 -0
  271. package/lib/typescript/src/components/TextInput.d.ts +12 -0
  272. package/lib/typescript/src/components/TextInput.d.ts.map +1 -0
  273. package/lib/typescript/src/components/ToggleButton.d.ts +9 -0
  274. package/lib/typescript/src/components/ToggleButton.d.ts.map +1 -0
  275. package/lib/typescript/src/components/Video.d.ts +4 -0
  276. package/lib/typescript/src/components/Video.d.ts.map +1 -0
  277. package/lib/typescript/src/components/View.d.ts +9 -0
  278. package/lib/typescript/src/components/View.d.ts.map +1 -0
  279. package/lib/typescript/src/components/index.d.ts +25 -0
  280. package/lib/typescript/src/components/index.d.ts.map +1 -0
  281. package/lib/typescript/src/index.d.ts +4 -0
  282. package/lib/typescript/src/index.d.ts.map +1 -0
  283. package/lib/typescript/src/theme/index.d.ts +284 -0
  284. package/lib/typescript/src/theme/index.d.ts.map +1 -0
  285. package/lib/typescript/src/theme/theme.d.ts +4 -0
  286. package/lib/typescript/src/theme/theme.d.ts.map +1 -0
  287. package/lib/typescript/src/theme/tokens.d.ts +371 -0
  288. package/lib/typescript/src/theme/tokens.d.ts.map +1 -0
  289. package/package.json +191 -0
  290. package/src/auth/api/authentication.ts +13 -0
  291. package/src/auth/appLogo.svg +9 -0
  292. package/src/auth/hooks/useAuthenticateRequests.ts +56 -0
  293. package/src/auth/hooks/useAuthentication.ts +106 -0
  294. package/src/auth/index.ts +4 -0
  295. package/src/auth/providers/authentication/AuthenticationProvider.tsx +68 -0
  296. package/src/auth/providers/authentication/actions/authentication.actions.ts +10 -0
  297. package/src/auth/providers/authentication/index.ts +4 -0
  298. package/src/auth/providers/authentication/reducer/authentication.reducer.ts +21 -0
  299. package/src/auth/providers/authentication/types/authentication.types.ts +17 -0
  300. package/src/auth/screens/LoginScreen.tsx +140 -0
  301. package/src/auth/screens/ResetPassword.tsx +85 -0
  302. package/src/auth/screens/ResetPasswordInstructionsSent.tsx +32 -0
  303. package/src/auth/screens/SignUp.tsx +176 -0
  304. package/src/auth/screens/SignUpPassword.tsx +124 -0
  305. package/src/auth/screens/VerifyPhoneNumber.tsx +100 -0
  306. package/src/auth/screens/index.tsx +26 -0
  307. package/src/auth/screens/validators.ts +73 -0
  308. package/src/components/Alert.tsx +157 -0
  309. package/src/components/Badge.tsx +50 -0
  310. package/src/components/BottomSheet.tsx +72 -0
  311. package/src/components/Button.tsx +47 -0
  312. package/src/components/Card.tsx +47 -0
  313. package/src/components/Divider.tsx +47 -0
  314. package/src/components/FAB.tsx +47 -0
  315. package/src/components/Header.tsx +123 -0
  316. package/src/components/IconButton.tsx +47 -0
  317. package/src/components/Image.tsx +78 -0
  318. package/src/components/KeyboardAvoidingView.tsx +55 -0
  319. package/src/components/LineLoader.tsx +70 -0
  320. package/src/components/LinkButton.tsx +64 -0
  321. package/src/components/OtpInputs.tsx +149 -0
  322. package/src/components/ParentView.tsx +164 -0
  323. package/src/components/Searchbar.tsx +47 -0
  324. package/src/components/SelectionDialog.tsx +191 -0
  325. package/src/components/Snackbar.tsx +83 -0
  326. package/src/components/Surface.tsx +47 -0
  327. package/src/components/Text.tsx +70 -0
  328. package/src/components/TextInput.tsx +116 -0
  329. package/src/components/ToggleButton.tsx +47 -0
  330. package/src/components/Video.tsx +37 -0
  331. package/src/components/View.tsx +55 -0
  332. package/src/components/index.ts +24 -0
  333. package/src/index.tsx +5 -0
  334. package/src/theme/index.ts +37 -0
  335. package/src/theme/theme.ts +125 -0
  336. package/src/theme/tokens.ts +209 -0
  337. package/src/types/index.d.ts +1 -0
  338. package/src/types/svg.d.ts +4 -0
package/package.json ADDED
@@ -0,0 +1,191 @@
1
+ {
2
+ "name": "@kiosinc/commons-rn",
3
+ "version": "0.1.7",
4
+ "description": "Common Code",
5
+ "main": "lib/commonjs/index",
6
+ "module": "lib/module/index",
7
+ "types": "lib/typescript/src/index.d.ts",
8
+ "react-native": "src/index",
9
+ "source": "src/index",
10
+ "files": [
11
+ "src",
12
+ "src/components",
13
+ "lib",
14
+ "android",
15
+ "ios",
16
+ "cpp",
17
+ "*.podspec",
18
+ "!ios/build",
19
+ "!android/build",
20
+ "!android/gradle",
21
+ "!android/gradlew",
22
+ "!android/gradlew.bat",
23
+ "!android/local.properties",
24
+ "!**/__tests__",
25
+ "!**/__fixtures__",
26
+ "!**/__mocks__",
27
+ "!**/.*"
28
+ ],
29
+ "scripts": {
30
+ "example": "yarn workspace @kiosinc/commons-rn-example",
31
+ "test": "jest",
32
+ "typecheck": "tsc --noEmit",
33
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
34
+ "clean": "del-cli lib",
35
+ "prepare": "bob build",
36
+ "release": "release-it",
37
+ "yalc:publish": "yarn prepare && rm -rf ~/.yalc/packages && yalc publish --private"
38
+ },
39
+ "keywords": [
40
+ "react-native",
41
+ "ios",
42
+ "android"
43
+ ],
44
+ "repository": "https://github.com/kiosinc/@kiosinc/commons-rn",
45
+ "author": "jjc",
46
+ "license": "MIT",
47
+ "bugs": {
48
+ "url": "https://github.com/kiosinc/@kiosinc/commons-rn/issues"
49
+ },
50
+ "homepage": "https://github.com/kiosinc/@kiosinc/commons-rn#readme",
51
+ "publishConfig": {
52
+ "registry": "https://registry.npmjs.org/"
53
+ },
54
+ "devDependencies": {
55
+ "@commitlint/config-conventional": "^17.0.2",
56
+ "@evilmartians/lefthook": "^1.5.0",
57
+ "@react-native-firebase/auth": "^18.6.2",
58
+ "@react-native/eslint-config": "^0.72.2",
59
+ "@react-navigation/native": "^6.1.9",
60
+ "@release-it/conventional-changelog": "^5.0.0",
61
+ "@types/color": "^3.0.6",
62
+ "@types/jest": "^28.1.2",
63
+ "@types/react": "~17.0.21",
64
+ "@types/react-native": "0.70.0",
65
+ "@types/react-native-video": "^5.0.18",
66
+ "commitlint": "^17.0.2",
67
+ "del-cli": "^5.0.0",
68
+ "eslint": "^8.4.1",
69
+ "eslint-config-prettier": "^8.5.0",
70
+ "eslint-plugin-prettier": "^4.0.0",
71
+ "jest": "^28.1.1",
72
+ "prettier": "^2.0.5",
73
+ "react": "18.2.0",
74
+ "react-native": "0.72.6",
75
+ "react-native-builder-bob": "^0.23.1",
76
+ "react-native-fast-image": "^8.6.3",
77
+ "react-native-gesture-handler": "^2.13.4",
78
+ "react-native-reanimated": "^3.5.4",
79
+ "react-native-safe-area-context": "^4.7.4",
80
+ "release-it": "^15.0.0",
81
+ "typescript": "^5.0.2"
82
+ },
83
+ "resolutions": {
84
+ "@types/react": "17.0.21",
85
+ "react-native-reanimated": "3.3.0"
86
+ },
87
+ "peerDependencies": {
88
+ "@react-navigation/native": "^6.1.9",
89
+ "react": "*",
90
+ "react-native": "*",
91
+ "react-native-fast-image": "^8.6.3",
92
+ "react-native-gesture-handler": "^2.13.4",
93
+ "react-native-reanimated": "^3.5.4",
94
+ "react-native-safe-area-context": "^4.7.4"
95
+ },
96
+ "workspaces": [
97
+ "example"
98
+ ],
99
+ "packageManager": "yarn@3.6.1",
100
+ "engines": {
101
+ "node": ">= 18.0.0"
102
+ },
103
+ "jest": {
104
+ "preset": "react-native",
105
+ "modulePathIgnorePatterns": [
106
+ "<rootDir>/example/node_modules",
107
+ "<rootDir>/lib/"
108
+ ]
109
+ },
110
+ "commitlint": {
111
+ "extends": [
112
+ "@commitlint/config-conventional"
113
+ ]
114
+ },
115
+ "release-it": {
116
+ "git": {
117
+ "commitMessage": "chore: release ${version}",
118
+ "tagName": "v${version}"
119
+ },
120
+ "npm": {
121
+ "publish": true
122
+ },
123
+ "github": {
124
+ "release": true
125
+ },
126
+ "plugins": {
127
+ "@release-it/conventional-changelog": {
128
+ "preset": "angular"
129
+ }
130
+ }
131
+ },
132
+ "eslintConfig": {
133
+ "root": true,
134
+ "extends": [
135
+ "@react-native",
136
+ "prettier"
137
+ ],
138
+ "rules": {
139
+ "prettier/prettier": [
140
+ "error",
141
+ {
142
+ "quoteProps": "consistent",
143
+ "singleQuote": true,
144
+ "tabWidth": 2,
145
+ "trailingComma": "es5",
146
+ "useTabs": false
147
+ }
148
+ ]
149
+ }
150
+ },
151
+ "eslintIgnore": [
152
+ "node_modules/",
153
+ "lib/"
154
+ ],
155
+ "prettier": {
156
+ "quoteProps": "consistent",
157
+ "singleQuote": true,
158
+ "tabWidth": 2,
159
+ "trailingComma": "es5",
160
+ "useTabs": false
161
+ },
162
+ "react-native-builder-bob": {
163
+ "source": "src",
164
+ "output": "lib",
165
+ "targets": [
166
+ "commonjs",
167
+ "module",
168
+ [
169
+ "typescript",
170
+ {
171
+ "project": "tsconfig.build.json"
172
+ }
173
+ ]
174
+ ]
175
+ },
176
+ "dependencies": {
177
+ "@gorhom/bottom-sheet": "^4.5.1",
178
+ "@hookform/resolvers": "^3.3.2",
179
+ "@shopify/restyle": "^2.4.2",
180
+ "@tanstack/react-query": "^4.32.6",
181
+ "axios": "^1.6.2",
182
+ "color": "^4.2.3",
183
+ "i18next": "^23.7.6",
184
+ "react-hook-form": "^7.48.2",
185
+ "react-i18next": "^13.5.0",
186
+ "react-native-config": "^1.5.1",
187
+ "react-native-paper": "^5.11.1",
188
+ "react-native-video": "^5.2.1",
189
+ "yup": "^1.3.2"
190
+ }
191
+ }
@@ -0,0 +1,13 @@
1
+ import axios from 'axios';
2
+ import type { TUserForm } from '../screens/SignUp';
3
+
4
+ export const signUpAPI = (payload: TUserForm) => {
5
+ return axios.post('/business', payload);
6
+ };
7
+
8
+ export const checkIsRegisteredAPI = (payload: TUserForm) => {
9
+ return axios.post('/business/is-registered', {
10
+ email: payload.email,
11
+ phoneNumber: payload.phoneNumber,
12
+ });
13
+ };
@@ -0,0 +1,9 @@
1
+ <svg width="120" height="64" viewBox="0 0 120 64" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <rect y="0.399994" width="120" height="63.2" fill="url(#pattern0)"/>
3
+ <defs>
4
+ <pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
5
+ <use xlink:href="#image0_214_42168" transform="matrix(0.00210667 0 0 0.004 -0.0266667 0)"/>
6
+ </pattern>
7
+ <image id="image0_214_42168" width="500" height="250" xlink:href="data:image/png;base64,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CRZJN4MlQNKrY/tncrfSaU/eNilyoCGvp6mpoOC9M6N5JZ6e3df+N2bCmlu7TsCCQreIdUqii7bYKMprfaWmGM+mnjenq8vo7q29dlOvficTLfOE2/ab/pnUK+mXk5x+Jyxs9nBmy70U2IsvkcrsYlliiKNutZHnp53jL2h/+q8zpahemHPq9PO95aVnonveiERLVOXOYUzC3An0aBkYxkaVuK9dpV1KfVWvy7Jg1AekxR3pCcRl7wKfIxbzi2LvlklZDTKBaU+wsq0i2txVMXPZgoOSL7HzYF8YRRYW7zCcE3a2emqyGXmKMgEO65nxlifeMzfeVNj2UuVC59RJH8o9edo5htd1RiwcLjZijiJpBk5y5ed4UFEz1FYXYut45ANyBCObgqnJbAGZzByNdUuV74jT42mWZbYVSi7isRfzzi+u6lcOiTVVxr8oPnHio8KY6mvcKHQVOSgFmMFabPIO1iknCbCyNlG+khV7qngfzzup7I3oGVoNa8SFwdJP/lZhY7frkFArZiukq3oQtnmnlM7Ov+i0MmdeztzCi94z01HgnSbaeLIRjBVLiykvFozkOeIxTzQakz5ym4nFg06ZO2k440FHbk5AZt37HY54p+z7X997oLlVNjtpjrxZe1i6z6vFljkr3WZd3ep8yXRNJjM6vyXvqSVvg8hIwVnTZ+R+4D3zUslHtMdfIMo+JxYKuyXd+x3e5HI5Q3GXo0fJRoGnXcbtO+O+UIv/9ZqqYMOR2s6db1erDaFSxJR5PQUUPiIBEiCBowigAoVKsK4IH/VCygdYhZBryNCNuuJe2mmqJyfl60kP4Zf2N+kv/hyDBIaeXqjs2eUDv3XbfOAIan8gGzTDJjC+WujDxkCLJEACdqWsuustJDioaNMgLbd+5KRgRne5fqbsstWtcWT31aZsj5IP2cjqWJFDa7tl2p6EzknIBiyyG/1Y+I7r/wTc43qbL5EACUxsArZCvR8IFsj9cEzYH5SPCZv0jDgJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkMAYI/D/5eMksDgmD8AAAAAASUVORK5CYII="/>
8
+ </defs>
9
+ </svg>
@@ -0,0 +1,56 @@
1
+ import { Alert } from '../../components';
2
+ import axios from 'axios';
3
+ import { useEffect } from 'react';
4
+ import { Platform } from 'react-native';
5
+ import Config from 'react-native-config';
6
+
7
+ export const useAuthenticateRequests = (
8
+ getToken: () => Promise<string | null>
9
+ ) => {
10
+ useEffect(() => {
11
+ const requestInterceptor = axios.interceptors.request.use(
12
+ async (config) => {
13
+ const token = await getToken();
14
+ if (token) {
15
+ if (!config.headers) {
16
+ // @ts-ignore
17
+ config.headers = {};
18
+ }
19
+ config.headers.Authorization = `Bearer ${token}`;
20
+ }
21
+ return config;
22
+ }
23
+ );
24
+ axios.defaults.baseURL = Config.BASE_URL;
25
+
26
+ // @ts-ignore
27
+ if (Platform.OS === 'android' && Config.DEBUG === true) {
28
+ axios.defaults.baseURL = axios.defaults.baseURL?.replace(
29
+ 'localhost',
30
+ '10.0.2.2'
31
+ );
32
+ }
33
+ axios.defaults.headers.common = {
34
+ accept: 'application/json',
35
+ };
36
+
37
+ const responseInterceptor = axios.interceptors.response.use(
38
+ (response) => {
39
+ return response;
40
+ },
41
+ (error) => {
42
+ if (error.response.data.message) {
43
+ Alert.show({
44
+ title: error.response.data.message,
45
+ });
46
+ }
47
+ return Promise.reject(error);
48
+ }
49
+ );
50
+
51
+ return () => {
52
+ axios.interceptors.request.eject(requestInterceptor);
53
+ axios.interceptors.response.eject(responseInterceptor);
54
+ };
55
+ }, [getToken]);
56
+ };
@@ -0,0 +1,106 @@
1
+ import { useMutation } from '@tanstack/react-query';
2
+
3
+ import auth, { FirebaseAuthTypes } from '@react-native-firebase/auth';
4
+ import {
5
+ changeUser,
6
+ useAuthenticationDispatch,
7
+ } from '../providers/authentication';
8
+ import {
9
+ type NavigationProp,
10
+ StackActions,
11
+ useNavigation,
12
+ } from '@react-navigation/native';
13
+ import { useTranslation } from 'react-i18next';
14
+ import { Alert } from '../../components';
15
+ import { checkIsRegisteredAPI, signUpAPI } from '../api/authentication';
16
+
17
+ let confirmationResult: FirebaseAuthTypes.ConfirmationResult;
18
+
19
+ export type TUserData = {
20
+ displayName: string;
21
+ email: string;
22
+ phoneNumber: string;
23
+ name: string;
24
+ password: string;
25
+ };
26
+
27
+ export const useAuthentication = () => {
28
+ const dispatch = useAuthenticationDispatch();
29
+ const navigation = useNavigation<NavigationProp<RootStackType>>();
30
+ const { t } = useTranslation();
31
+
32
+ return {
33
+ useSignUp: () =>
34
+ useMutation(
35
+ async ({ params, code }: { params: TUserData; code: string }) => {
36
+ try {
37
+ await confirmationResult.confirm(code);
38
+ await signUpAPI(params);
39
+ } catch (error) {
40
+ console.log('error', error);
41
+ }
42
+ },
43
+ {
44
+ onSuccess: async (_, payload) => {
45
+ try {
46
+ const credential = auth.EmailAuthProvider.credential(
47
+ payload.params.email,
48
+ payload.params.password
49
+ );
50
+ // Reauthenticate user
51
+ await auth().currentUser?.reauthenticateWithCredential(
52
+ credential
53
+ );
54
+ await auth().currentUser?.reload();
55
+ // Update user after re-authentication.
56
+ dispatch(changeUser(auth().currentUser));
57
+ } catch (error: any) {
58
+ console.log('error', error);
59
+ // Sign out user if something goes wrong
60
+ auth()
61
+ .signOut()
62
+ .catch(() => {});
63
+ // Navigate back to login screen
64
+ navigation.dispatch(StackActions.popToTop);
65
+ }
66
+ },
67
+ }
68
+ ),
69
+ useIsCheckRegistered: () =>
70
+ useMutation(checkIsRegisteredAPI, {
71
+ onSuccess: (response, payload) => {
72
+ if (response.data.isRegistered === false) {
73
+ navigation.navigate('SignUpPassword', payload);
74
+ } else {
75
+ Alert.show({ title: 'You already have an account' });
76
+ }
77
+ },
78
+ }),
79
+ useVerifyPhoneNumber: () =>
80
+ useMutation(async (payload: TUserData): Promise<any> => {
81
+ try {
82
+ confirmationResult = await auth().signInWithPhoneNumber(
83
+ payload.phoneNumber
84
+ );
85
+ navigation.navigate('VerifyPhoneNumber', payload);
86
+ } catch (error) {
87
+ console.log('error sending verification code', error);
88
+ }
89
+ }),
90
+ useResetPassword: () =>
91
+ useMutation(async ({ email }: { email: string }): Promise<any> => {
92
+ try {
93
+ await auth().sendPasswordResetEmail(email);
94
+ navigation.navigate('ResetPasswordInstructionSent', {
95
+ email: email,
96
+ });
97
+ } catch {
98
+ Alert.show({
99
+ description: t('authentication.userDoesNotExist', {
100
+ email,
101
+ }),
102
+ });
103
+ }
104
+ }),
105
+ };
106
+ };
@@ -0,0 +1,4 @@
1
+ export { signUpAPI } from './api/authentication';
2
+ export { renderAuthNavigator } from './screens';
3
+ export { useAuthentication } from './providers/authentication';
4
+ export { AuthenticationProvider } from './providers/authentication';
@@ -0,0 +1,68 @@
1
+ import React, {
2
+ createContext,
3
+ type Dispatch,
4
+ type FC,
5
+ useCallback,
6
+ useContext,
7
+ useEffect,
8
+ useReducer,
9
+ } from 'react';
10
+ import auth, { FirebaseAuthTypes } from '@react-native-firebase/auth';
11
+
12
+ import {
13
+ type AuthenticationAction,
14
+ type AuthenticationState,
15
+ } from './types/authentication.types';
16
+ import { authenticationReducer } from './reducer/authentication.reducer';
17
+ import { useAuthenticateRequests } from '../../hooks/useAuthenticateRequests';
18
+ import { changeUser } from './actions/authentication.actions';
19
+
20
+ const AuthenticationContext = createContext<AuthenticationState | null>(null);
21
+ const AuthenticationDispatchContext =
22
+ createContext<Dispatch<AuthenticationAction> | null>(null);
23
+ export const useAuthentication = () =>
24
+ useContext(AuthenticationContext) as AuthenticationState;
25
+ export const useAuthenticationDispatch = () =>
26
+ useContext(AuthenticationDispatchContext) as Dispatch<AuthenticationAction>;
27
+
28
+ export const AuthenticationProvider: FC<{ children: React.ReactNode }> = ({
29
+ children,
30
+ }) => {
31
+ const [authentication, dispatch] = useReducer(authenticationReducer, {
32
+ initializing: true,
33
+ user: null,
34
+ });
35
+
36
+ const getToken = useCallback(async () => {
37
+ if (authentication.user) {
38
+ return await authentication.user.getIdToken();
39
+ }
40
+ return null;
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ }, [authentication.user, authentication.user?.isAnonymous]);
43
+ useAuthenticateRequests(getToken);
44
+
45
+ useEffect(() => {
46
+ if (authentication.initializing === false && !authentication.user) {
47
+ auth().signInAnonymously();
48
+ }
49
+ }, [authentication.user, authentication.initializing]);
50
+
51
+ // Handle user state changes
52
+ function onAuthStateChanged(user: FirebaseAuthTypes.User | null) {
53
+ dispatch(changeUser(user));
54
+ }
55
+
56
+ useEffect(() => {
57
+ const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
58
+ return subscriber; // unsubscribe on unmount
59
+ }, []);
60
+
61
+ return (
62
+ <AuthenticationContext.Provider value={authentication}>
63
+ <AuthenticationDispatchContext.Provider value={dispatch}>
64
+ {children}
65
+ </AuthenticationDispatchContext.Provider>
66
+ </AuthenticationContext.Provider>
67
+ );
68
+ };
@@ -0,0 +1,10 @@
1
+ import {
2
+ type AuthenticationAction,
3
+ AuthenticationActionType,
4
+ type User,
5
+ } from '../types/authentication.types';
6
+
7
+ export const changeUser = (user: User | null): AuthenticationAction => ({
8
+ type: AuthenticationActionType.ChangeUser,
9
+ user,
10
+ });
@@ -0,0 +1,4 @@
1
+ export * from './types/authentication.types';
2
+ export * from './actions/authentication.actions';
3
+ export * from './reducer/authentication.reducer';
4
+ export * from './AuthenticationProvider';
@@ -0,0 +1,21 @@
1
+ import {
2
+ type AuthenticationAction,
3
+ AuthenticationActionType,
4
+ type AuthenticationState,
5
+ } from '../types/authentication.types';
6
+
7
+ export const authenticationReducer = (
8
+ state: AuthenticationState,
9
+ action: AuthenticationAction
10
+ ): AuthenticationState => {
11
+ switch (action.type) {
12
+ case AuthenticationActionType.ChangeUser:
13
+ return {
14
+ ...state,
15
+ initializing: false,
16
+ user: action.user,
17
+ };
18
+ default:
19
+ return state;
20
+ }
21
+ };
@@ -0,0 +1,17 @@
1
+ import { FirebaseAuthTypes } from '@react-native-firebase/auth';
2
+ export type ConfirmationResult = FirebaseAuthTypes.ConfirmationResult;
3
+ export type User = FirebaseAuthTypes.User;
4
+
5
+ export enum AuthenticationActionType {
6
+ ChangeUser = 'ChangeUser',
7
+ }
8
+
9
+ export type AuthenticationAction = {
10
+ type: AuthenticationActionType.ChangeUser;
11
+ user: User | null;
12
+ };
13
+
14
+ export interface AuthenticationState {
15
+ user: User | null;
16
+ initializing: boolean;
17
+ }