@databiosphere/findable-ui 19.0.0 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +2 -0
  4. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js +29 -0
  5. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +6 -0
  6. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.js +1 -0
  7. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +2 -0
  8. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
  9. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
  10. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
  11. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
  12. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
  13. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
  14. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
  15. package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
  16. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
  17. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
  18. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
  19. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
  20. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
  21. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
  22. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
  23. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  24. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
  25. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
  26. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
  27. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
  28. package/lib/components/Layout/components/Header/header.js +1 -1
  29. package/lib/components/Login/components/Button/button.d.ts +2 -0
  30. package/lib/components/Login/components/Button/button.js +6 -0
  31. package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
  32. package/lib/components/Login/components/Button/button.styles.js +11 -0
  33. package/lib/components/Login/components/Button/constants.d.ts +2 -0
  34. package/lib/components/Login/components/Button/constants.js +6 -0
  35. package/lib/components/Login/components/Button/types.d.ts +3 -0
  36. package/lib/components/Login/components/Button/types.js +1 -0
  37. package/lib/components/Login/login.d.ts +2 -9
  38. package/lib/components/Login/login.js +9 -10
  39. package/lib/components/Login/types.d.ts +10 -0
  40. package/lib/components/Login/types.js +1 -0
  41. package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
  42. package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
  43. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
  44. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
  45. package/lib/config/entities.d.ts +22 -23
  46. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
  47. package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
  48. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
  49. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
  50. package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
  51. package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
  52. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
  53. package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
  54. package/lib/hooks/authentication/profile/types.d.ts +5 -0
  55. package/lib/hooks/authentication/profile/types.js +1 -0
  56. package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
  57. package/lib/hooks/authentication/profile/useProfile.js +15 -0
  58. package/lib/hooks/authentication/providers/types.d.ts +6 -0
  59. package/lib/hooks/authentication/providers/types.js +1 -0
  60. package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
  61. package/lib/hooks/authentication/providers/useProviders.js +14 -0
  62. package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
  63. package/lib/hooks/authentication/session/useSessionActive.js +36 -0
  64. package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
  65. package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
  66. package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
  67. package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
  68. package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
  69. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
  70. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
  71. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
  72. package/lib/hooks/authentication/token/types.d.ts +4 -0
  73. package/lib/hooks/authentication/token/types.js +1 -0
  74. package/lib/hooks/authentication/token/useToken.d.ts +2 -0
  75. package/lib/hooks/authentication/token/useToken.js +5 -0
  76. package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
  77. package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
  78. package/lib/hooks/useEntityList.js +2 -2
  79. package/lib/hooks/useFetchEntity.js +4 -3
  80. package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
  81. package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
  82. package/lib/hooks/useRequestFileLocation.js +2 -3
  83. package/lib/hooks/useRouteHistory.d.ts +14 -0
  84. package/lib/hooks/useRouteHistory.js +40 -0
  85. package/lib/hooks/useRouteRoot.d.ts +1 -0
  86. package/lib/hooks/useRouteRoot.js +8 -0
  87. package/lib/hooks/useSummary.js +3 -3
  88. package/lib/providers/authentication/auth/actions.d.ts +8 -0
  89. package/lib/providers/authentication/auth/actions.js +12 -0
  90. package/lib/providers/authentication/auth/constants.d.ts +2 -0
  91. package/lib/providers/authentication/auth/constants.js +5 -0
  92. package/lib/providers/authentication/auth/context.d.ts +2 -0
  93. package/lib/providers/authentication/auth/context.js +7 -0
  94. package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
  95. package/lib/providers/authentication/auth/dispatch.js +43 -0
  96. package/lib/providers/authentication/auth/hook.d.ts +6 -0
  97. package/lib/providers/authentication/auth/hook.js +9 -0
  98. package/lib/providers/authentication/auth/reducer.d.ts +8 -0
  99. package/lib/providers/authentication/auth/reducer.js +24 -0
  100. package/lib/providers/authentication/auth/types.d.ts +48 -0
  101. package/lib/providers/authentication/auth/types.js +11 -0
  102. package/lib/providers/authentication/authentication/actions.d.ts +8 -0
  103. package/lib/providers/authentication/authentication/actions.js +12 -0
  104. package/lib/providers/authentication/authentication/constants.d.ts +2 -0
  105. package/lib/providers/authentication/authentication/constants.js +5 -0
  106. package/lib/providers/authentication/authentication/context.d.ts +2 -0
  107. package/lib/providers/authentication/authentication/context.js +6 -0
  108. package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
  109. package/lib/providers/authentication/authentication/dispatch.js +42 -0
  110. package/lib/providers/authentication/authentication/hook.d.ts +6 -0
  111. package/lib/providers/authentication/authentication/hook.js +9 -0
  112. package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
  113. package/lib/providers/authentication/authentication/reducer.js +25 -0
  114. package/lib/providers/authentication/authentication/types.d.ts +47 -0
  115. package/lib/providers/authentication/authentication/types.js +11 -0
  116. package/lib/providers/authentication/authentication/utils.d.ts +12 -0
  117. package/lib/providers/authentication/authentication/utils.js +18 -0
  118. package/lib/providers/authentication/common/types.d.ts +1 -0
  119. package/lib/providers/authentication/common/types.js +1 -0
  120. package/lib/providers/authentication/common/utils.d.ts +6 -0
  121. package/lib/providers/authentication/common/utils.js +11 -0
  122. package/lib/providers/authentication/credentials/actions.d.ts +8 -0
  123. package/lib/providers/authentication/credentials/actions.js +12 -0
  124. package/lib/providers/authentication/credentials/constants.d.ts +2 -0
  125. package/lib/providers/authentication/credentials/constants.js +3 -0
  126. package/lib/providers/authentication/credentials/context.d.ts +2 -0
  127. package/lib/providers/authentication/credentials/context.js +6 -0
  128. package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
  129. package/lib/providers/authentication/credentials/dispatch.js +22 -0
  130. package/lib/providers/authentication/credentials/hook.d.ts +6 -0
  131. package/lib/providers/authentication/credentials/hook.js +9 -0
  132. package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
  133. package/lib/providers/authentication/credentials/reducer.js +22 -0
  134. package/lib/providers/authentication/credentials/types.d.ts +24 -0
  135. package/lib/providers/authentication/credentials/types.js +5 -0
  136. package/lib/providers/authentication/terra/context.d.ts +2 -0
  137. package/lib/providers/authentication/terra/context.js +7 -0
  138. package/lib/providers/authentication/terra/hook.d.ts +6 -0
  139. package/lib/providers/authentication/terra/hook.js +9 -0
  140. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
  141. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
  142. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
  143. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
  144. package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
  145. package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
  146. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
  147. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
  148. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
  149. package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
  150. package/lib/providers/authentication/terra/hooks/utils.js +19 -0
  151. package/lib/providers/authentication/terra/provider.d.ts +2 -0
  152. package/lib/providers/authentication/terra/provider.js +42 -0
  153. package/lib/providers/authentication/terra/types.d.ts +20 -0
  154. package/lib/providers/authentication/terra/types.js +6 -0
  155. package/lib/providers/authentication/terra/utils.d.ts +19 -0
  156. package/lib/providers/authentication/terra/utils.js +36 -0
  157. package/lib/providers/authentication/token/constants.d.ts +2 -0
  158. package/lib/providers/authentication/token/constants.js +4 -0
  159. package/lib/providers/authentication/token/dispatch.d.ts +12 -0
  160. package/lib/providers/authentication/token/dispatch.js +22 -0
  161. package/lib/providers/authentication/token/reducer.d.ts +8 -0
  162. package/lib/providers/authentication/token/reducer.js +22 -0
  163. package/lib/providers/authentication/token/types.d.ts +28 -0
  164. package/lib/providers/authentication/token/types.js +5 -0
  165. package/lib/providers/exploreState.js +3 -5
  166. package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
  167. package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
  168. package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
  169. package/lib/providers/googleSignInAuthentication/constants.js +12 -0
  170. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
  171. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
  172. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
  173. package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
  174. package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
  175. package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
  176. package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
  177. package/lib/providers/googleSignInAuthentication/provider.js +40 -0
  178. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
  179. package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
  180. package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
  181. package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
  182. package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
  183. package/lib/providers/googleSignInAuthentication/types.js +1 -0
  184. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
  185. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
  186. package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
  187. package/lib/providers/nextAuthAuthentication/provider.js +30 -0
  188. package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
  189. package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
  190. package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
  191. package/lib/providers/nextAuthAuthentication/types.js +1 -0
  192. package/lib/routes/constants.d.ts +3 -0
  193. package/lib/routes/constants.js +3 -0
  194. package/lib/styles/common/mui/button.d.ts +3 -0
  195. package/lib/styles/common/mui/button.js +17 -0
  196. package/lib/styles/common/mui/paper.d.ts +2 -0
  197. package/lib/styles/common/mui/paper.js +9 -0
  198. package/lib/styles/common/mui/popover.d.ts +3 -0
  199. package/lib/styles/common/mui/popover.js +10 -0
  200. package/lib/theme/common/entities.d.ts +6 -0
  201. package/lib/theme/common/entities.js +1 -0
  202. package/lib/views/LoginView/loginView.d.ts +5 -1
  203. package/lib/views/LoginView/loginView.js +6 -4
  204. package/package.json +3 -2
  205. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
  206. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
  207. package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
  208. package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
  209. package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
  210. package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
  211. package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
  212. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
  213. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  214. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
  215. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
  216. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
  217. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
  218. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
  219. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
  220. package/src/components/Layout/components/Header/header.tsx +1 -1
  221. package/src/components/Login/components/Button/button.styles.ts +12 -0
  222. package/src/components/Login/components/Button/button.tsx +8 -0
  223. package/src/components/Login/components/Button/constants.ts +8 -0
  224. package/src/components/Login/components/Button/types.ts +4 -0
  225. package/src/components/Login/login.tsx +28 -28
  226. package/src/components/Login/types.ts +11 -0
  227. package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
  228. package/src/components/common/CustomIcon/common/entities.ts +1 -4
  229. package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
  230. package/src/config/entities.ts +20 -25
  231. package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
  232. package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
  233. package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
  234. package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
  235. package/src/hooks/authentication/profile/types.ts +9 -0
  236. package/src/hooks/authentication/profile/useProfile.ts +21 -0
  237. package/src/hooks/authentication/providers/types.ts +7 -0
  238. package/src/hooks/authentication/providers/useProviders.ts +23 -0
  239. package/src/hooks/authentication/session/useSessionActive.ts +51 -0
  240. package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
  241. package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
  242. package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
  243. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
  244. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
  245. package/src/hooks/authentication/token/types.ts +5 -0
  246. package/src/hooks/authentication/token/useToken.ts +9 -0
  247. package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
  248. package/src/hooks/useEntityList.ts +2 -2
  249. package/src/hooks/useFetchEntity.tsx +3 -3
  250. package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
  251. package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
  252. package/src/hooks/useRequestFileLocation.ts +2 -3
  253. package/src/hooks/useRouteHistory.ts +65 -0
  254. package/src/hooks/useRouteRoot.ts +11 -0
  255. package/src/hooks/useSummary.ts +3 -3
  256. package/src/providers/authentication/auth/actions.ts +17 -0
  257. package/src/providers/authentication/auth/constants.ts +6 -0
  258. package/src/providers/authentication/auth/context.ts +9 -0
  259. package/src/providers/authentication/auth/dispatch.ts +58 -0
  260. package/src/providers/authentication/auth/hook.ts +11 -0
  261. package/src/providers/authentication/auth/reducer.ts +25 -0
  262. package/src/providers/authentication/auth/types.ts +63 -0
  263. package/src/providers/authentication/authentication/actions.ts +17 -0
  264. package/src/providers/authentication/authentication/constants.ts +6 -0
  265. package/src/providers/authentication/authentication/context.ts +8 -0
  266. package/src/providers/authentication/authentication/dispatch.ts +55 -0
  267. package/src/providers/authentication/authentication/hook.ts +11 -0
  268. package/src/providers/authentication/authentication/reducer.ts +34 -0
  269. package/src/providers/authentication/authentication/types.ts +64 -0
  270. package/src/providers/authentication/authentication/utils.ts +25 -0
  271. package/src/providers/authentication/common/types.ts +1 -0
  272. package/src/providers/authentication/common/utils.ts +11 -0
  273. package/src/providers/authentication/credentials/actions.ts +17 -0
  274. package/src/providers/authentication/credentials/constants.ts +5 -0
  275. package/src/providers/authentication/credentials/context.ts +8 -0
  276. package/src/providers/authentication/credentials/dispatch.ts +31 -0
  277. package/src/providers/authentication/credentials/hook.ts +11 -0
  278. package/src/providers/authentication/credentials/reducer.ts +30 -0
  279. package/src/providers/authentication/credentials/types.ts +33 -0
  280. package/src/providers/authentication/terra/context.ts +16 -0
  281. package/src/providers/authentication/terra/hook.ts +11 -0
  282. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
  283. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
  284. package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
  285. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
  286. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
  287. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
  288. package/src/providers/authentication/terra/hooks/utils.ts +29 -0
  289. package/src/providers/authentication/terra/provider.tsx +60 -0
  290. package/src/providers/authentication/terra/types.ts +23 -0
  291. package/src/providers/authentication/terra/utils.ts +49 -0
  292. package/src/providers/authentication/token/constants.ts +6 -0
  293. package/src/providers/authentication/token/dispatch.ts +29 -0
  294. package/src/providers/authentication/token/reducer.ts +26 -0
  295. package/src/providers/authentication/token/types.ts +36 -0
  296. package/src/providers/exploreState.tsx +3 -4
  297. package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
  298. package/src/providers/googleSignInAuthentication/constants.ts +17 -0
  299. package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
  300. package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
  301. package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
  302. package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
  303. package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
  304. package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
  305. package/src/providers/googleSignInAuthentication/types.ts +7 -0
  306. package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
  307. package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
  308. package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
  309. package/src/providers/nextAuthAuthentication/types.ts +9 -0
  310. package/src/routes/constants.ts +3 -0
  311. package/src/styles/common/mui/button.ts +20 -0
  312. package/src/styles/common/mui/paper.ts +11 -0
  313. package/src/styles/common/mui/popover.ts +19 -0
  314. package/src/theme/common/entities.ts +7 -0
  315. package/src/views/LoginView/loginView.tsx +15 -9
  316. package/tests/getProfileStatus.test.ts +290 -0
  317. package/tests/terraProfileProvider.test.tsx +121 -0
  318. package/tests/transformRoute.test.ts +21 -0
  319. package/tests/useRouteHistory.test.ts +97 -0
  320. package/tests/useSessionActive.test.ts +107 -0
  321. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
  322. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
  323. package/lib/components/Login/login.stories.d.ts +0 -6
  324. package/lib/components/Login/login.stories.js +0 -31
  325. package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
  326. package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
  327. package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
  328. package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
  329. package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
  330. package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
  331. package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
  332. package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
  333. package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
  334. package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
  335. package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
  336. package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
  337. package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
  338. package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
  339. package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
  340. package/lib/hooks/useAuthenticationConfig.js +0 -14
  341. package/lib/providers/authentication.d.ts +0 -51
  342. package/lib/providers/authentication.js +0 -110
  343. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
  344. package/src/components/Login/login.stories.tsx +0 -43
  345. package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
  346. package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
  347. package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
  348. package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
  349. package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
  350. package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
  351. package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
  352. package/src/hooks/useAuthenticationConfig.ts +0 -18
  353. package/src/providers/authentication.tsx +0 -181
  354. package/tests/authentication.test.ts +0 -142
  355. package/tests/useAuthenticationStatus.test.ts +0 -155
  356. /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
  357. /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
  358. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
  359. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
  360. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
  361. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
  362. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
  363. /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
@@ -0,0 +1,17 @@
1
+ import { AuthState, UpdateAuthStatePayload } from "./types";
2
+
3
+ /**
4
+ * Update auth state.
5
+ * @param state - State.
6
+ * @param payload - Payload.
7
+ * @returns state.
8
+ */
9
+ export function updateAuthState(
10
+ state: AuthState,
11
+ payload: UpdateAuthStatePayload
12
+ ): AuthState {
13
+ return {
14
+ ...state,
15
+ ...payload,
16
+ };
17
+ }
@@ -0,0 +1,6 @@
1
+ import { AUTH_STATUS, AuthState } from "./types";
2
+
3
+ export const DEFAULT_AUTH_STATE: AuthState = {
4
+ isAuthenticated: false,
5
+ status: AUTH_STATUS.PENDING,
6
+ };
@@ -0,0 +1,9 @@
1
+ import { createContext } from "react";
2
+ import { DEFAULT_AUTH_STATE } from "./constants";
3
+ import { AuthContextProps } from "./types";
4
+
5
+ export const AuthContext = createContext<AuthContextProps>({
6
+ authDispatch: null,
7
+ authState: DEFAULT_AUTH_STATE,
8
+ service: undefined,
9
+ });
@@ -0,0 +1,58 @@
1
+ import {
2
+ AUTH_STATUS,
3
+ AuthActionKind,
4
+ RequestAuthAction,
5
+ ResetStateAction,
6
+ UpdateAuthStateAction,
7
+ UpdateAuthStatePayload,
8
+ } from "./types";
9
+
10
+ /**
11
+ * Auth is complete.
12
+ * @param payload - Payload.
13
+ * @returns Action.
14
+ */
15
+ export function authComplete(
16
+ payload: UpdateAuthStatePayload
17
+ ): UpdateAuthStateAction {
18
+ return {
19
+ payload: { ...payload, status: AUTH_STATUS.SETTLED },
20
+ type: AuthActionKind.UpdateAuthState,
21
+ };
22
+ }
23
+
24
+ /**
25
+ * Request auth action.
26
+ * @returns Action.
27
+ */
28
+ export function requestAuth(): RequestAuthAction {
29
+ return {
30
+ payload: undefined,
31
+ type: AuthActionKind.RequestAuth,
32
+ };
33
+ }
34
+
35
+ /**
36
+ * Reset state action.
37
+ * @returns state.
38
+ */
39
+ export function resetState(): ResetStateAction {
40
+ return {
41
+ payload: undefined,
42
+ type: AuthActionKind.ResetState,
43
+ };
44
+ }
45
+
46
+ /**
47
+ * Update auth state action.
48
+ * @param payload - Payload.
49
+ * @returns Action.
50
+ */
51
+ export function updateAuthState(
52
+ payload: UpdateAuthStatePayload
53
+ ): UpdateAuthStateAction {
54
+ return {
55
+ payload,
56
+ type: AuthActionKind.UpdateAuthState,
57
+ };
58
+ }
@@ -0,0 +1,11 @@
1
+ import { useContext } from "react";
2
+ import { AuthContext } from "./context";
3
+ import { AuthContextProps } from "./types";
4
+
5
+ /**
6
+ * Auth hook.
7
+ * @returns auth context.
8
+ */
9
+ export const useAuth = (): AuthContextProps => {
10
+ return useContext<AuthContextProps>(AuthContext);
11
+ };
@@ -0,0 +1,25 @@
1
+ import { updateAuthState } from "./actions";
2
+ import { AUTH_STATUS, AuthAction, AuthActionKind, AuthState } from "./types";
3
+
4
+ /**
5
+ * Auth reducer.
6
+ * @param state - State.
7
+ * @param action - Action.
8
+ * @returns state.
9
+ */
10
+ export function authReducer(state: AuthState, action: AuthAction): AuthState {
11
+ const { payload, type } = action;
12
+ switch (type) {
13
+ case AuthActionKind.RequestAuth: {
14
+ return { ...state, status: AUTH_STATUS.PENDING };
15
+ }
16
+ case AuthActionKind.ResetState: {
17
+ return { ...state, ...state.initialState };
18
+ }
19
+ case AuthActionKind.UpdateAuthState: {
20
+ return updateAuthState(state, payload);
21
+ }
22
+ default:
23
+ return state;
24
+ }
25
+ }
@@ -0,0 +1,63 @@
1
+ import { Dispatch } from "react";
2
+ import { ProviderId } from "../common/types";
3
+
4
+ export type AuthAction =
5
+ | RequestAuthAction
6
+ | ResetStateAction
7
+ | UpdateAuthStateAction;
8
+
9
+ export enum AuthActionKind {
10
+ RequestAuth = "REQUEST_AUTH",
11
+ ResetState = "RESET_STATE",
12
+ UpdateAuthState = "UPDATE_AUTH_STATE",
13
+ }
14
+
15
+ export interface AuthContextProps {
16
+ authDispatch: Dispatch<AuthAction> | null;
17
+ authState: AuthState;
18
+ service: Service | undefined;
19
+ }
20
+
21
+ export interface AuthState {
22
+ initialState?: AuthState;
23
+ isAuthenticated: boolean;
24
+ status: AUTH_STATUS;
25
+ }
26
+
27
+ export type RequestAuthAction = {
28
+ payload: RequestAuthPayload;
29
+ type: AuthActionKind.RequestAuth;
30
+ };
31
+
32
+ export type RequestAuthPayload = undefined;
33
+
34
+ export type ResetStateAction = {
35
+ payload: ResetStatePayload;
36
+ type: AuthActionKind.ResetState;
37
+ };
38
+
39
+ export type ResetStatePayload = undefined;
40
+
41
+ export interface Service {
42
+ [key: string]: unknown;
43
+ requestLogin: (providerId: ProviderId) => void;
44
+ requestLogout: (options?: {
45
+ callbackUrl?: string;
46
+ redirect?: boolean;
47
+ }) => void;
48
+ }
49
+
50
+ export enum AUTH_STATUS {
51
+ PENDING = "PENDING",
52
+ SETTLED = "SETTLED",
53
+ }
54
+
55
+ export interface UpdateAuthStateAction {
56
+ payload: UpdateAuthStatePayload;
57
+ type: AuthActionKind.UpdateAuthState;
58
+ }
59
+
60
+ export interface UpdateAuthStatePayload {
61
+ isAuthenticated?: boolean;
62
+ status?: AUTH_STATUS;
63
+ }
@@ -0,0 +1,17 @@
1
+ import { AuthenticationState, UpdateAuthenticationPayload } from "./types";
2
+
3
+ /**
4
+ * Update authentication action.
5
+ * @param state - State.
6
+ * @param payload - Payload.
7
+ * @returns state.
8
+ */
9
+ export function updateAuthenticationAction(
10
+ state: AuthenticationState,
11
+ payload: UpdateAuthenticationPayload
12
+ ): AuthenticationState {
13
+ return {
14
+ ...state,
15
+ ...payload,
16
+ };
17
+ }
@@ -0,0 +1,6 @@
1
+ import { AUTHENTICATION_STATUS, AuthenticationState } from "./types";
2
+
3
+ export const DEFAULT_AUTHENTICATION_STATE: AuthenticationState = {
4
+ profile: undefined,
5
+ status: AUTHENTICATION_STATUS.PENDING,
6
+ };
@@ -0,0 +1,8 @@
1
+ import { createContext } from "react";
2
+ import { DEFAULT_AUTHENTICATION_STATE } from "./constants";
3
+ import { AuthenticationContextProps } from "./types";
4
+
5
+ export const AuthenticationContext = createContext<AuthenticationContextProps>({
6
+ authenticationDispatch: null,
7
+ authenticationState: DEFAULT_AUTHENTICATION_STATE,
8
+ });
@@ -0,0 +1,55 @@
1
+ import {
2
+ AUTHENTICATION_STATUS,
3
+ AuthenticationActionKind,
4
+ RequestAuthenticationAction,
5
+ ResetStateAction,
6
+ UpdateAuthenticationAction,
7
+ UpdateAuthenticationPayload,
8
+ } from "./types";
9
+
10
+ /**
11
+ * Authentication is complete.
12
+ * @returns Action.
13
+ */
14
+ export function authenticationComplete(): UpdateAuthenticationAction {
15
+ return {
16
+ payload: { status: AUTHENTICATION_STATUS.SETTLED },
17
+ type: AuthenticationActionKind.UpdateAuthentication,
18
+ };
19
+ }
20
+
21
+ /**
22
+ * Request authentication action.
23
+ * @returns Action.
24
+ */
25
+ export function requestAuthentication(): RequestAuthenticationAction {
26
+ return {
27
+ payload: undefined,
28
+ type: AuthenticationActionKind.RequestAuthentication,
29
+ };
30
+ }
31
+
32
+ /**
33
+ * Reset authentication action.
34
+ * @returns Action.
35
+ */
36
+ export function resetState(): ResetStateAction {
37
+ return {
38
+ payload: undefined,
39
+ type: AuthenticationActionKind.ResetState,
40
+ };
41
+ }
42
+
43
+ /**
44
+ * Update authentication action.
45
+ * @param payload - Payload.
46
+ * @returns Action.
47
+ */
48
+ export function updateAuthentication(
49
+ payload: UpdateAuthenticationPayload
50
+ ): UpdateAuthenticationAction {
51
+ return {
52
+ payload,
53
+ type: AuthenticationActionKind.UpdateAuthentication,
54
+ };
55
+ }
@@ -0,0 +1,11 @@
1
+ import { useContext } from "react";
2
+ import { AuthenticationContext } from "./context";
3
+ import { AuthenticationContextProps } from "./types";
4
+
5
+ /**
6
+ * Authentication hook.
7
+ * @returns authentication context.
8
+ */
9
+ export const useAuthentication = (): AuthenticationContextProps => {
10
+ return useContext(AuthenticationContext);
11
+ };
@@ -0,0 +1,34 @@
1
+ import { updateAuthenticationAction } from "./actions";
2
+ import {
3
+ AUTHENTICATION_STATUS,
4
+ AuthenticationAction,
5
+ AuthenticationActionKind,
6
+ AuthenticationState,
7
+ } from "./types";
8
+
9
+ /**
10
+ * Authentication reducer.
11
+ * Reducer for user profile and status.
12
+ * @param state - State.
13
+ * @param action - Action.
14
+ * @returns state.
15
+ */
16
+ export function authenticationReducer(
17
+ state: AuthenticationState,
18
+ action: AuthenticationAction
19
+ ): AuthenticationState {
20
+ const { payload, type } = action;
21
+ switch (type) {
22
+ case AuthenticationActionKind.RequestAuthentication: {
23
+ return { ...state, status: AUTHENTICATION_STATUS.PENDING };
24
+ }
25
+ case AuthenticationActionKind.ResetState: {
26
+ return { ...state, ...state.initialState };
27
+ }
28
+ case AuthenticationActionKind.UpdateAuthentication: {
29
+ return updateAuthenticationAction(state, payload);
30
+ }
31
+ default:
32
+ return state;
33
+ }
34
+ }
@@ -0,0 +1,64 @@
1
+ import { Dispatch } from "react";
2
+
3
+ export enum AUTHENTICATION_STATUS {
4
+ PENDING = "PENDING",
5
+ SETTLED = "SETTLED",
6
+ }
7
+
8
+ export type AuthenticationAction =
9
+ | RequestAuthenticationAction
10
+ | ResetStateAction
11
+ | UpdateAuthenticationAction;
12
+
13
+ export enum AuthenticationActionKind {
14
+ RequestAuthentication = "REQUEST_AUTHENTICATION",
15
+ ResetState = "RESET_STATE",
16
+ UpdateAuthentication = "UPDATE_AUTHENTICATION",
17
+ }
18
+
19
+ export interface AuthenticationContextProps {
20
+ authenticationDispatch: Dispatch<AuthenticationAction> | null;
21
+ authenticationState: AuthenticationState;
22
+ }
23
+
24
+ export interface AuthenticationState {
25
+ initialState?: AuthenticationState;
26
+ profile: Profile<UserProfile>;
27
+ status: AUTHENTICATION_STATUS;
28
+ }
29
+
30
+ export interface BaseProfile {
31
+ id?: string;
32
+ name: string;
33
+ }
34
+
35
+ export type Profile<P extends BaseProfile> = P | undefined;
36
+
37
+ export type RequestAuthenticationAction = {
38
+ payload: RequestAuthenticationPayload;
39
+ type: AuthenticationActionKind.RequestAuthentication;
40
+ };
41
+
42
+ export type RequestAuthenticationPayload = undefined;
43
+
44
+ export type ResetStateAction = {
45
+ payload: ResetStatePayload;
46
+ type: AuthenticationActionKind.ResetState;
47
+ };
48
+
49
+ export type ResetStatePayload = undefined;
50
+
51
+ export type UpdateAuthenticationAction = {
52
+ payload: UpdateAuthenticationPayload;
53
+ type: AuthenticationActionKind.UpdateAuthentication;
54
+ };
55
+
56
+ export interface UpdateAuthenticationPayload {
57
+ profile?: Profile<UserProfile>;
58
+ status?: AUTHENTICATION_STATUS;
59
+ }
60
+
61
+ export interface UserProfile extends BaseProfile {
62
+ email: string;
63
+ image?: string;
64
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Fetches data from given endpoint and options.
3
+ * @param endpoint - Endpoint.
4
+ * @param options - Request options.
5
+ * @param callback - Callback.
6
+ * @param callback.onError - Error callback.
7
+ * @param callback.onSuccess - Success callback.
8
+ */
9
+ export function fetchProfile<R, E>(
10
+ endpoint: string,
11
+ options?: RequestInit,
12
+ callback?: {
13
+ onError: (error: E) => void;
14
+ onSuccess: (response: R) => void;
15
+ }
16
+ ): void {
17
+ fetch(endpoint, options)
18
+ .then((response) => response.json())
19
+ .then((r: R) => {
20
+ callback?.onSuccess(r);
21
+ })
22
+ .catch((e: E) => {
23
+ callback?.onError(e);
24
+ });
25
+ }
@@ -0,0 +1 @@
1
+ export type ProviderId = string;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Reducer state initializer.
3
+ * @param initialState - Initial state.
4
+ * @returns initial reducer state.
5
+ */
6
+ export function initializer<S>(initialState: S): S {
7
+ return {
8
+ ...initialState,
9
+ initialState,
10
+ };
11
+ }
@@ -0,0 +1,17 @@
1
+ import { CredentialsState, UpdateCredentialsPayload } from "./types";
2
+
3
+ /**
4
+ * Update credentials action.
5
+ * @param state - State.
6
+ * @param payload - Payload.
7
+ * @returns state.
8
+ */
9
+ export function updateCredentialsAction(
10
+ state: CredentialsState,
11
+ payload: UpdateCredentialsPayload
12
+ ): CredentialsState {
13
+ return {
14
+ ...state,
15
+ credentials: payload,
16
+ };
17
+ }
@@ -0,0 +1,5 @@
1
+ import { CredentialsState } from "./types";
2
+
3
+ export const DEFAULT_CREDENTIALS_STATE: CredentialsState = {
4
+ credentials: undefined,
5
+ };
@@ -0,0 +1,8 @@
1
+ import { createContext } from "react";
2
+ import { DEFAULT_CREDENTIALS_STATE } from "./constants";
3
+ import { CredentialsContextProps } from "./types";
4
+
5
+ export const CredentialsContext = createContext<CredentialsContextProps>({
6
+ credentialsDispatch: null,
7
+ credentialsState: DEFAULT_CREDENTIALS_STATE,
8
+ });
@@ -0,0 +1,31 @@
1
+ import {
2
+ CredentialsActionKind,
3
+ ResetStateAction,
4
+ UpdateCredentialsAction,
5
+ UpdateCredentialsPayload,
6
+ } from "./types";
7
+
8
+ /**
9
+ * Update credentials action.
10
+ * @returns Action.
11
+ */
12
+ export function resetState(): ResetStateAction {
13
+ return {
14
+ payload: undefined,
15
+ type: CredentialsActionKind.ResetState,
16
+ };
17
+ }
18
+
19
+ /**
20
+ * Update credentials action.
21
+ * @param payload - Payload.
22
+ * @returns Action.
23
+ */
24
+ export function updateCredentials(
25
+ payload: UpdateCredentialsPayload
26
+ ): UpdateCredentialsAction {
27
+ return {
28
+ payload,
29
+ type: CredentialsActionKind.UpdateCredentials,
30
+ };
31
+ }
@@ -0,0 +1,11 @@
1
+ import { useContext } from "react";
2
+ import { CredentialsContext } from "./context";
3
+ import { CredentialsContextProps } from "./types";
4
+
5
+ /**
6
+ * Credentials hook.
7
+ * @returns credentials context.
8
+ */
9
+ export const useCredentials = (): CredentialsContextProps => {
10
+ return useContext<CredentialsContextProps>(CredentialsContext);
11
+ };
@@ -0,0 +1,30 @@
1
+ import { updateCredentialsAction } from "./actions";
2
+ import { DEFAULT_CREDENTIALS_STATE } from "./constants";
3
+ import {
4
+ CredentialsAction,
5
+ CredentialsActionKind,
6
+ CredentialsState,
7
+ } from "./types";
8
+
9
+ /**
10
+ * Credentials reducer.
11
+ * @param state - State.
12
+ * @param action - Action.
13
+ * @returns state.
14
+ */
15
+ export function credentialsReducer(
16
+ state: CredentialsState,
17
+ action: CredentialsAction
18
+ ): CredentialsState {
19
+ const { payload, type } = action;
20
+ switch (type) {
21
+ case CredentialsActionKind.ResetState: {
22
+ return DEFAULT_CREDENTIALS_STATE;
23
+ }
24
+ case CredentialsActionKind.UpdateCredentials: {
25
+ return updateCredentialsAction(state, payload);
26
+ }
27
+ default:
28
+ return state;
29
+ }
30
+ }
@@ -0,0 +1,33 @@
1
+ import { Dispatch } from "react";
2
+
3
+ export type Credentials<C = string | undefined> = C;
4
+
5
+ export type CredentialsAction = ResetStateAction | UpdateCredentialsAction;
6
+
7
+ export enum CredentialsActionKind {
8
+ ResetState = "RESET_STATE",
9
+ UpdateCredentials = "STORE_CREDENTIALS",
10
+ }
11
+
12
+ export interface CredentialsContextProps {
13
+ credentialsDispatch: Dispatch<CredentialsAction> | null;
14
+ credentialsState: CredentialsState;
15
+ }
16
+
17
+ export interface CredentialsState {
18
+ credentials: Credentials;
19
+ }
20
+
21
+ export type ResetStateAction = {
22
+ payload: ResetStatePayload;
23
+ type: CredentialsActionKind.ResetState;
24
+ };
25
+
26
+ export type ResetStatePayload = undefined;
27
+
28
+ export type UpdateCredentialsAction = {
29
+ payload: UpdateCredentialsPayload;
30
+ type: CredentialsActionKind.UpdateCredentials;
31
+ };
32
+
33
+ export type UpdateCredentialsPayload = Credentials;
@@ -0,0 +1,16 @@
1
+ import { createContext } from "react";
2
+ import { LOGIN_STATUS_NOT_STARTED } from "./hooks/common/constants";
3
+ import { LoginStatus } from "./hooks/common/entities";
4
+ import { TerraNIHResponse } from "./hooks/useFetchTerraNIHProfile";
5
+ import { TerraResponse } from "./hooks/useFetchTerraProfile";
6
+ import { TerraTermsOfServiceResponse } from "./hooks/useFetchTerraTermsOfService";
7
+ import { TerraProfileContextProps } from "./types";
8
+
9
+ export const TerraProfileContext = createContext<TerraProfileContextProps>({
10
+ terraNIHProfileLoginStatus:
11
+ LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraNIHResponse>,
12
+ terraProfileLoginStatus:
13
+ LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraResponse>,
14
+ terraTOSLoginStatus:
15
+ LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraTermsOfServiceResponse>,
16
+ });
@@ -0,0 +1,11 @@
1
+ import { useContext } from "react";
2
+ import { TerraProfileContext } from "./context";
3
+ import { TerraProfileContextProps } from "./types";
4
+
5
+ /**
6
+ * Terra profile hook.
7
+ * @returns terra profile context.
8
+ */
9
+ export const useTerraProfile = (): TerraProfileContextProps => {
10
+ return useContext<TerraProfileContextProps>(TerraProfileContext);
11
+ };
@@ -20,3 +20,12 @@ export const LOGIN_STATUS_NOT_SUPPORTED: LoginStatus<LoginResponse> = {
20
20
  requestStatus: REQUEST_STATUS.NOT_STARTED,
21
21
  response: undefined,
22
22
  };
23
+
24
+ export const LOGIN_STATUS_PENDING: LoginStatus<LoginResponse> = {
25
+ isSuccess: false,
26
+ isSupported: true,
27
+ requestStatus: REQUEST_STATUS.PENDING,
28
+ response: undefined,
29
+ };
30
+
31
+ export const TERRA_SERVICE_ID = "terra";
@@ -1,15 +1,8 @@
1
- import { GoogleResponse } from "../useFetchGoogleProfile";
2
1
  import { TerraNIHResponse } from "../useFetchTerraNIHProfile";
3
2
  import { TerraResponse } from "../useFetchTerraProfile";
4
3
  import { TerraTermsOfServiceResponse } from "../useFetchTerraTermsOfService";
5
4
 
6
- export enum AUTHENTICATION_STATUS {
7
- COMPLETED = "COMPLETED",
8
- INCOMPLETE = "INCOMPLETE",
9
- }
10
-
11
5
  export type LoginResponse =
12
- | GoogleResponse
13
6
  | TerraResponse
14
7
  | TerraNIHResponse
15
8
  | TerraTermsOfServiceResponse;
@@ -31,4 +24,5 @@ export enum REQUEST_STATUS {
31
24
  COMPLETED = "COMPLETED",
32
25
  FAILED = "FAILED",
33
26
  NOT_STARTED = "NOT_STARTED",
27
+ PENDING = "PENDING",
34
28
  }