@databiosphere/findable-ui 21.3.0 → 22.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 (289) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/.storybook/main.ts +7 -1
  3. package/CHANGELOG.md +25 -0
  4. package/lib/components/DataDictionary/components/Entities/constants.d.ts +2 -0
  5. package/lib/components/DataDictionary/components/Entities/constants.js +6 -0
  6. package/lib/components/DataDictionary/components/Entities/entities.d.ts +2 -0
  7. package/lib/components/DataDictionary/components/Entities/entities.js +7 -0
  8. package/lib/components/DataDictionary/components/Entities/types.d.ts +4 -0
  9. package/lib/components/DataDictionary/components/Entities/types.js +1 -0
  10. package/lib/components/DataDictionary/components/Entity/constants.d.ts +2 -0
  11. package/lib/components/DataDictionary/components/Entity/constants.js +5 -0
  12. package/lib/components/DataDictionary/components/Entity/entity.d.ts +2 -0
  13. package/lib/components/DataDictionary/components/Entity/entity.js +14 -0
  14. package/lib/components/DataDictionary/components/Entity/types.d.ts +4 -0
  15. package/lib/components/DataDictionary/components/Entity/types.js +1 -0
  16. package/lib/components/DataDictionary/components/Table/columns/columnDef.d.ts +6 -0
  17. package/lib/components/DataDictionary/components/Table/columns/columnDef.js +33 -0
  18. package/lib/components/DataDictionary/components/Table/columns/columnIdentifier.d.ts +5 -0
  19. package/lib/components/DataDictionary/components/Table/columns/columnIdentifier.js +5 -0
  20. package/lib/components/DataDictionary/components/Table/columns/types.d.ts +2 -0
  21. package/lib/components/DataDictionary/components/Table/columns/types.js +1 -0
  22. package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.d.ts +2 -0
  23. package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.js +6 -0
  24. package/lib/components/DataDictionary/components/Table/components/BasicCell/types.d.ts +4 -0
  25. package/lib/components/DataDictionary/components/Table/components/BasicCell/types.js +1 -0
  26. package/lib/components/DataDictionary/components/Table/hook.d.ts +3 -0
  27. package/lib/components/DataDictionary/components/Table/hook.js +11 -0
  28. package/lib/components/DataDictionary/components/Table/options/core/constants.d.ts +3 -0
  29. package/lib/components/DataDictionary/components/Table/options/core/constants.js +7 -0
  30. package/lib/components/DataDictionary/components/Table/options/hook.d.ts +3 -0
  31. package/lib/components/DataDictionary/components/Table/options/hook.js +8 -0
  32. package/lib/components/DataDictionary/components/Table/options/sorting/constants.d.ts +3 -0
  33. package/lib/components/DataDictionary/components/Table/options/sorting/constants.js +3 -0
  34. package/lib/components/DataDictionary/components/Table/table.d.ts +2 -0
  35. package/lib/components/DataDictionary/components/Table/table.js +17 -0
  36. package/lib/components/DataDictionary/components/Table/table.styles.d.ts +3 -0
  37. package/lib/components/DataDictionary/components/Table/table.styles.js +5 -0
  38. package/lib/components/DataDictionary/components/Table/types.d.ts +5 -0
  39. package/lib/components/DataDictionary/components/Table/types.js +1 -0
  40. package/lib/components/DataDictionary/dataDictionary.d.ts +2 -0
  41. package/lib/components/DataDictionary/dataDictionary.js +9 -0
  42. package/lib/components/DataDictionary/dataDictionary.styles.d.ts +1 -0
  43. package/lib/components/DataDictionary/dataDictionary.styles.js +7 -0
  44. package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.d.ts +2 -0
  45. package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +5 -0
  46. package/lib/components/DataDictionary/hooks/UseDataDictionary/types.d.ts +4 -0
  47. package/lib/components/DataDictionary/hooks/UseDataDictionary/types.js +1 -0
  48. package/lib/components/Detail/detail.stories.d.ts +36 -5
  49. package/lib/components/Detail/detail.stories.js +27 -18
  50. package/lib/components/Export/components/ExportForm/components/ExportButton/exportButton.js +6 -1
  51. package/lib/components/Export/components/ExportMethod/exportMethod.stories.d.ts +22 -5
  52. package/lib/components/Export/components/ExportMethod/exportMethod.stories.js +9 -9
  53. package/lib/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestDownload/fileManifestDownload.js +5 -2
  54. package/lib/components/Filter/components/Filter/filter.stories.d.ts +25 -5
  55. package/lib/components/Filter/components/Filter/filter.stories.js +25 -24
  56. package/lib/components/Filter/components/FilterLabel/filterLabel.stories.d.ts +31 -5
  57. package/lib/components/Filter/components/FilterLabel/filterLabel.stories.js +10 -8
  58. package/lib/components/Filter/components/FilterMenu/filterMenu.stories.d.ts +38 -5
  59. package/lib/components/Filter/components/FilterMenu/filterMenu.stories.js +107 -104
  60. package/lib/components/Filter/components/FilterTag/filterTag.stories.d.ts +16 -5
  61. package/lib/components/Filter/components/FilterTag/filterTag.stories.js +8 -7
  62. package/lib/components/Filter/components/FilterTags/filterTags.stories.d.ts +18 -5
  63. package/lib/components/Filter/components/FilterTags/filterTags.stories.js +40 -39
  64. package/lib/components/Index/components/AzulFileDownload/azulFileDownload.js +10 -5
  65. package/lib/components/Index/components/AzulFileDownload/azulFileDownload.stories.d.ts +8 -5
  66. package/lib/components/Index/components/AzulFileDownload/azulFileDownload.stories.js +9 -6
  67. package/lib/components/Index/components/Hero/components/Summaries/summaries.stories.d.ts +13 -5
  68. package/lib/components/Index/components/Hero/components/Summaries/summaries.stories.js +11 -11
  69. package/lib/components/Index/components/Hero/hero.stories.d.ts +23 -5
  70. package/lib/components/Index/components/Hero/hero.stories.js +8 -6
  71. package/lib/components/Index/components/NTagCell/nTagCell.stories.d.ts +16 -5
  72. package/lib/components/Index/components/NTagCell/nTagCell.stories.js +8 -8
  73. package/lib/components/Index/index.stories.js +2 -1
  74. package/lib/components/Layout/components/BackPage/backPageView.stories.d.ts +31 -5
  75. package/lib/components/Layout/components/BackPage/backPageView.stories.js +27 -18
  76. package/lib/components/Layout/components/Footer/footer.stories.d.ts +24 -3
  77. package/lib/components/Layout/components/Footer/footer.stories.js +4 -3
  78. package/lib/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenu/navigationMenu.js +1 -1
  79. package/lib/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenuItems/navigationMenuItems.js +20 -21
  80. package/lib/components/Layout/components/Header/components/Content/components/Navigation/constants.d.ts +1 -0
  81. package/lib/components/Layout/components/Header/components/Content/components/Navigation/constants.js +1 -0
  82. package/lib/components/Layout/components/Header/components/Content/components/Navigation/navigation.d.ts +2 -1
  83. package/lib/components/Layout/components/Header/components/Content/components/Navigation/navigation.js +16 -17
  84. package/lib/components/Layout/components/Header/header.js +2 -1
  85. package/lib/components/Layout/components/Header/header.stories.js +1 -1
  86. package/lib/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.d.ts +13 -5
  87. package/lib/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.js +6 -6
  88. package/lib/components/Layout/components/Sidebar/sidebar.stories.js +2 -0
  89. package/lib/components/Links/links.stories.d.ts +13 -5
  90. package/lib/components/Links/links.stories.js +14 -14
  91. package/lib/components/Loading/loading.stories.d.ts +34 -5
  92. package/lib/components/Loading/loading.stories.js +8 -6
  93. package/lib/components/Login/components/Button/types.d.ts +1 -1
  94. package/lib/components/Login/components/Buttons/buttons.d.ts +2 -0
  95. package/lib/components/Login/components/Buttons/buttons.js +5 -0
  96. package/lib/components/Login/components/Buttons/types.d.ts +8 -0
  97. package/lib/components/Login/components/Buttons/types.js +1 -0
  98. package/lib/components/Login/components/Section/components/Consent/consent.d.ts +3 -0
  99. package/lib/components/Login/components/Section/components/Consent/consent.js +14 -0
  100. package/lib/components/Login/components/Section/components/Consent/consent.styles.d.ts +7 -0
  101. package/lib/components/Login/components/Section/components/Consent/consent.styles.js +14 -0
  102. package/lib/components/Login/components/Section/components/Consent/types.d.ts +6 -0
  103. package/lib/components/Login/components/Section/components/Consent/types.js +1 -0
  104. package/lib/components/Login/components/Section/components/Warning/warning.d.ts +3 -0
  105. package/lib/components/Login/components/Section/components/Warning/warning.js +9 -0
  106. package/lib/components/Login/hooks/useUserConsent/types.d.ts +10 -0
  107. package/lib/components/Login/hooks/useUserConsent/types.js +1 -0
  108. package/lib/components/Login/hooks/useUserConsent/useUserConsent.d.ts +2 -0
  109. package/lib/components/Login/hooks/useUserConsent/useUserConsent.js +24 -0
  110. package/lib/components/Login/hooks/useUserLogin/types.d.ts +6 -0
  111. package/lib/components/Login/hooks/useUserLogin/types.js +1 -0
  112. package/lib/components/Login/hooks/useUserLogin/useUserLogin.d.ts +2 -0
  113. package/lib/components/Login/hooks/useUserLogin/useUserLogin.js +21 -0
  114. package/lib/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.d.ts +13 -5
  115. package/lib/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.js +20 -20
  116. package/lib/components/Project/components/Contacts/contacts.stories.d.ts +13 -5
  117. package/lib/components/Project/components/Contacts/contacts.stories.js +18 -18
  118. package/lib/components/Project/components/Contributors/contributors.stories.d.ts +8 -5
  119. package/lib/components/Project/components/Contributors/contributors.stories.js +27 -27
  120. package/lib/components/Project/components/DataCurators/dataCurators.stories.d.ts +13 -5
  121. package/lib/components/Project/components/DataCurators/dataCurators.stories.js +7 -7
  122. package/lib/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.d.ts +8 -5
  123. package/lib/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.js +3 -4
  124. package/lib/components/Project/components/Description/description.stories.d.ts +8 -5
  125. package/lib/components/Project/components/Description/description.stories.js +6 -6
  126. package/lib/components/Project/components/Details/details.stories.d.ts +16 -5
  127. package/lib/components/Project/components/Details/details.stories.js +7 -7
  128. package/lib/components/Project/components/Publications/publications.stories.d.ts +8 -5
  129. package/lib/components/Project/components/Publications/publications.stories.js +17 -17
  130. package/lib/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.d.ts +8 -5
  131. package/lib/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.js +18 -18
  132. package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.d.ts +16 -33
  133. package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.js +10 -9
  134. package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/supportRequestForm.js +26 -14
  135. package/lib/components/Support/components/ViewSupport/types.d.ts +6 -0
  136. package/lib/components/Support/components/ViewSupport/types.js +1 -0
  137. package/lib/components/Support/components/ViewSupport/viewSupport.d.ts +2 -9
  138. package/lib/components/Support/components/ViewSupport/viewSupport.js +7 -3
  139. package/lib/components/Table/components/Pagination/pagination.stories.d.ts +28 -5
  140. package/lib/components/Table/components/Pagination/pagination.stories.js +11 -7
  141. package/lib/components/common/Accordion/accordion.stories.d.ts +6 -3
  142. package/lib/components/common/Accordion/accordion.stories.js +2 -1
  143. package/lib/components/common/Breadcrumbs/breadcrumbs.stories.d.ts +10 -7
  144. package/lib/components/common/Breadcrumbs/breadcrumbs.stories.js +42 -43
  145. package/lib/components/common/Button/components/CallToActionButton/callToActionButton.stories.d.ts +9 -6
  146. package/lib/components/common/Button/components/CallToActionButton/callToActionButton.stories.js +13 -15
  147. package/lib/components/common/Button/components/HelpIconButton/helpIconButton.stories.d.ts +19 -2
  148. package/lib/components/common/Button/components/HelpIconButton/helpIconButton.stories.js +2 -2
  149. package/lib/components/common/Card/card.stories.d.ts +6 -3
  150. package/lib/components/common/Card/card.stories.js +2 -1
  151. package/lib/components/common/Code/code.stories.d.ts +5 -3
  152. package/lib/components/common/CopyToClipboard/copyToClipboard.stories.d.ts +11 -3
  153. package/lib/components/common/CopyToClipboard/copyToClipboard.stories.js +2 -1
  154. package/lib/components/common/CustomIcon/components/CloseIcon/closeIcon.d.ts +2 -0
  155. package/lib/components/common/CustomIcon/components/CloseIcon/closeIcon.js +6 -0
  156. package/lib/components/common/LoginDialog/constants.d.ts +6 -0
  157. package/lib/components/common/LoginDialog/constants.js +21 -0
  158. package/lib/components/common/LoginDialog/loginDialog.d.ts +2 -0
  159. package/lib/components/common/LoginDialog/loginDialog.js +27 -0
  160. package/lib/components/common/LoginDialog/loginDialog.styles.d.ts +3 -0
  161. package/lib/components/common/LoginDialog/loginDialog.styles.js +50 -0
  162. package/lib/components/common/LoginDialog/types.d.ts +4 -0
  163. package/lib/components/common/LoginDialog/types.js +1 -0
  164. package/lib/components/common/Section/components/SectionTitle/sectionTitle.stories.d.ts +13 -5
  165. package/lib/components/common/Section/components/SectionTitle/sectionTitle.stories.js +6 -6
  166. package/lib/components/common/Socials/socials.stories.d.ts +11 -3
  167. package/lib/components/common/Socials/socials.stories.js +2 -1
  168. package/lib/components/common/StaticImage/staticImage.stories.d.ts +22 -5
  169. package/lib/components/common/StaticImage/staticImage.stories.js +8 -8
  170. package/lib/components/common/StatusIcon/statusIcon.stories.d.ts +19 -5
  171. package/lib/components/common/StatusIcon/statusIcon.stories.js +7 -7
  172. package/lib/components/common/Tag/tag.stories.d.ts +15 -5
  173. package/lib/components/common/Tag/tag.stories.js +7 -5
  174. package/lib/components/common/ToggleButtonGroup/toggleButtonGroup.stories.d.ts +18 -5
  175. package/lib/components/common/ToggleButtonGroup/toggleButtonGroup.stories.js +19 -19
  176. package/lib/config/entities.d.ts +1 -0
  177. package/lib/providers/loginGuard/common/types.d.ts +18 -0
  178. package/lib/providers/loginGuard/common/types.js +1 -0
  179. package/lib/providers/loginGuard/context.d.ts +6 -0
  180. package/lib/providers/loginGuard/context.js +10 -0
  181. package/lib/providers/loginGuard/hook.d.ts +9 -0
  182. package/lib/providers/loginGuard/hook.js +12 -0
  183. package/lib/providers/loginGuard/provider.d.ts +11 -0
  184. package/lib/providers/loginGuard/provider.js +55 -0
  185. package/lib/styles/common/mui/typography.d.ts +1 -0
  186. package/lib/styles/common/mui/typography.js +8 -0
  187. package/lib/views/DataDictionaryView/dataDictionaryView.d.ts +2 -0
  188. package/lib/views/DataDictionaryView/dataDictionaryView.js +5 -0
  189. package/package.json +13 -13
  190. package/src/components/DataDictionary/components/Entities/constants.ts +8 -0
  191. package/src/components/DataDictionary/components/Entities/entities.tsx +15 -0
  192. package/src/components/DataDictionary/components/Entities/types.ts +5 -0
  193. package/src/components/DataDictionary/components/Entity/constants.ts +7 -0
  194. package/src/components/DataDictionary/components/Entity/entity.tsx +28 -0
  195. package/src/components/DataDictionary/components/Entity/types.ts +5 -0
  196. package/src/components/DataDictionary/components/Table/columns/columnDef.ts +47 -0
  197. package/src/components/DataDictionary/components/Table/columns/columnIdentifier.ts +5 -0
  198. package/src/components/DataDictionary/components/Table/columns/types.ts +3 -0
  199. package/src/components/DataDictionary/components/Table/components/BasicCell/basicCell.tsx +8 -0
  200. package/src/components/DataDictionary/components/Table/components/BasicCell/types.ts +5 -0
  201. package/src/components/DataDictionary/components/Table/hook.ts +13 -0
  202. package/src/components/DataDictionary/components/Table/options/core/constants.ts +12 -0
  203. package/src/components/DataDictionary/components/Table/options/hook.ts +14 -0
  204. package/src/components/DataDictionary/components/Table/options/sorting/constants.ts +9 -0
  205. package/src/components/DataDictionary/components/Table/table.styles.ts +6 -0
  206. package/src/components/DataDictionary/components/Table/table.tsx +35 -0
  207. package/src/components/DataDictionary/components/Table/types.ts +6 -0
  208. package/src/components/DataDictionary/dataDictionary.styles.ts +8 -0
  209. package/src/components/DataDictionary/dataDictionary.tsx +16 -0
  210. package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +9 -0
  211. package/src/components/DataDictionary/hooks/UseDataDictionary/types.ts +5 -0
  212. package/src/components/Detail/detail.stories.tsx +41 -36
  213. package/src/components/Export/components/ExportForm/components/ExportButton/exportButton.tsx +8 -1
  214. package/src/components/Export/components/ExportMethod/exportMethod.stories.tsx +13 -13
  215. package/src/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestDownload/fileManifestDownload.tsx +11 -3
  216. package/src/components/Filter/components/Filter/filter.stories.tsx +29 -28
  217. package/src/components/Filter/components/FilterLabel/filterLabel.stories.tsx +14 -12
  218. package/src/components/Filter/components/FilterMenu/filterMenu.stories.tsx +111 -108
  219. package/src/components/Filter/components/FilterTag/filterTag.stories.tsx +12 -11
  220. package/src/components/Filter/components/FilterTags/filterTags.stories.tsx +44 -43
  221. package/src/components/Index/components/AzulFileDownload/azulFileDownload.stories.tsx +13 -10
  222. package/src/components/Index/components/AzulFileDownload/azulFileDownload.tsx +12 -5
  223. package/src/components/Index/components/Hero/components/Summaries/summaries.stories.tsx +15 -15
  224. package/src/components/Index/components/Hero/hero.stories.tsx +12 -8
  225. package/src/components/Index/components/NTagCell/nTagCell.stories.tsx +12 -12
  226. package/src/components/Index/index.stories.tsx +2 -1
  227. package/src/components/Layout/components/BackPage/backPageView.stories.tsx +42 -36
  228. package/src/components/Layout/components/Footer/footer.stories.tsx +6 -4
  229. package/src/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenu/navigationMenu.tsx +1 -1
  230. package/src/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenuItems/navigationMenuItems.tsx +16 -15
  231. package/src/components/Layout/components/Header/components/Content/components/Navigation/constants.ts +1 -0
  232. package/src/components/Layout/components/Header/components/Content/components/Navigation/navigation.tsx +26 -18
  233. package/src/components/Layout/components/Header/header.stories.tsx +1 -1
  234. package/src/components/Layout/components/Header/header.tsx +6 -1
  235. package/src/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.tsx +10 -10
  236. package/src/components/Layout/components/Sidebar/sidebar.stories.tsx +2 -0
  237. package/src/components/Links/links.stories.tsx +18 -18
  238. package/src/components/Loading/loading.stories.tsx +12 -10
  239. package/src/components/Login/components/Button/types.ts +1 -1
  240. package/src/components/Login/components/Buttons/buttons.tsx +22 -0
  241. package/src/components/Login/components/Buttons/types.ts +9 -0
  242. package/src/components/Login/components/Section/components/Consent/consent.styles.ts +15 -0
  243. package/src/components/Login/components/Section/components/Consent/consent.tsx +30 -0
  244. package/src/components/Login/components/Section/components/Consent/types.ts +10 -0
  245. package/src/components/Login/components/Section/components/Warning/warning.tsx +24 -0
  246. package/src/components/Login/hooks/useUserConsent/types.ts +11 -0
  247. package/src/components/Login/hooks/useUserConsent/useUserConsent.ts +32 -0
  248. package/src/components/Login/hooks/useUserLogin/types.ts +8 -0
  249. package/src/components/Login/hooks/useUserLogin/useUserLogin.ts +29 -0
  250. package/src/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.tsx +24 -25
  251. package/src/components/Project/components/Contacts/contacts.stories.tsx +22 -22
  252. package/src/components/Project/components/Contributors/contributors.stories.tsx +31 -31
  253. package/src/components/Project/components/DataCurators/dataCurators.stories.tsx +11 -11
  254. package/src/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.tsx +7 -8
  255. package/src/components/Project/components/Description/description.stories.tsx +11 -11
  256. package/src/components/Project/components/Details/details.stories.tsx +11 -11
  257. package/src/components/Project/components/Publications/publications.stories.tsx +23 -23
  258. package/src/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.tsx +22 -22
  259. package/src/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.ts +10 -9
  260. package/src/components/Support/components/SupportRequest/components/SupportRequestForm/supportRequestForm.tsx +44 -15
  261. package/src/components/Support/components/ViewSupport/types.ts +9 -0
  262. package/src/components/Support/components/ViewSupport/viewSupport.tsx +6 -10
  263. package/src/components/Table/components/Pagination/pagination.stories.tsx +15 -11
  264. package/src/components/common/Accordion/accordion.stories.tsx +4 -2
  265. package/src/components/common/Breadcrumbs/breadcrumbs.stories.tsx +46 -47
  266. package/src/components/common/Button/components/CallToActionButton/callToActionButton.stories.tsx +17 -20
  267. package/src/components/common/Button/components/HelpIconButton/helpIconButton.stories.tsx +4 -4
  268. package/src/components/common/Card/card.stories.tsx +4 -2
  269. package/src/components/common/Code/code.stories.tsx +1 -1
  270. package/src/components/common/CopyToClipboard/copyToClipboard.stories.tsx +4 -2
  271. package/src/components/common/CustomIcon/components/CloseIcon/closeIcon.tsx +17 -0
  272. package/src/components/common/LoginDialog/constants.ts +33 -0
  273. package/src/components/common/LoginDialog/loginDialog.styles.ts +51 -0
  274. package/src/components/common/LoginDialog/loginDialog.tsx +56 -0
  275. package/src/components/common/LoginDialog/types.ts +4 -0
  276. package/src/components/common/Section/components/SectionTitle/sectionTitle.stories.tsx +10 -10
  277. package/src/components/common/Socials/socials.stories.tsx +4 -2
  278. package/src/components/common/StaticImage/staticImage.stories.tsx +12 -12
  279. package/src/components/common/StatusIcon/statusIcon.stories.tsx +11 -11
  280. package/src/components/common/Tag/tag.stories.tsx +11 -9
  281. package/src/components/common/ToggleButtonGroup/toggleButtonGroup.stories.tsx +23 -23
  282. package/src/config/entities.ts +1 -0
  283. package/src/providers/loginGuard/common/types.ts +21 -0
  284. package/src/providers/loginGuard/context.ts +12 -0
  285. package/src/providers/loginGuard/hook.ts +14 -0
  286. package/src/providers/loginGuard/provider.tsx +76 -0
  287. package/src/styles/common/mui/typography.ts +9 -0
  288. package/src/views/DataDictionaryView/dataDictionaryView.tsx +9 -0
  289. package/tests/provider.test.tsx +191 -0
@@ -0,0 +1,15 @@
1
+ import styled from "@emotion/styled";
2
+ import { Grid2 } from "@mui/material";
3
+
4
+ export const StyledGrid2 = styled(Grid2)`
5
+ align-items: center;
6
+ align-self: flex-start;
7
+ display: flex;
8
+ gap: 12px;
9
+
10
+ .MuiTypography-text-body-400 {
11
+ .MuiLink-root {
12
+ color: inherit;
13
+ }
14
+ }
15
+ `;
@@ -0,0 +1,30 @@
1
+ import { Checkbox, Typography } from "@mui/material";
2
+ import React from "react";
3
+ import { TEXT_BODY_400 } from "../../../../../../theme/common/typography";
4
+ import { CheckedIcon } from "../../../../../common/CustomIcon/components/CheckedIcon/checkedIcon";
5
+ import { UncheckedErrorIcon } from "../../../../../common/CustomIcon/components/UncheckedErrorIcon/uncheckedErrorIcon";
6
+ import { UncheckedIcon } from "../../../../../common/CustomIcon/components/UncheckedIcon/uncheckedIcon";
7
+ import { BaseComponentProps } from "../../../../../types";
8
+ import { StyledGrid2 } from "./consent.styles";
9
+ import { ConsentProps } from "./types";
10
+
11
+ export const Consent = ({
12
+ children,
13
+ className,
14
+ handleConsent,
15
+ isDisabled,
16
+ isError,
17
+ ...props /* Mui Grid2Props */
18
+ }: BaseComponentProps & ConsentProps): JSX.Element | null => {
19
+ if (isDisabled) return null;
20
+ return (
21
+ <StyledGrid2 className={className} {...props}>
22
+ <Checkbox
23
+ checkedIcon={<CheckedIcon />}
24
+ icon={isError ? <UncheckedErrorIcon /> : <UncheckedIcon />}
25
+ onChange={handleConsent}
26
+ />
27
+ <Typography variant={TEXT_BODY_400}>{children}</Typography>
28
+ </StyledGrid2>
29
+ );
30
+ };
@@ -0,0 +1,10 @@
1
+ import { Grid2Props } from "@mui/material";
2
+ import { ReactNode } from "react";
3
+ import { UseUserConsent } from "../../../../hooks/useUserConsent/types";
4
+
5
+ export interface ConsentProps
6
+ extends Grid2Props,
7
+ Pick<UseUserConsent, "handleConsent">,
8
+ Pick<UseUserConsent["state"], "isDisabled" | "isError"> {
9
+ children: ReactNode;
10
+ }
@@ -0,0 +1,24 @@
1
+ import { Typography, TypographyProps } from "@mui/material";
2
+ import React from "react";
3
+ import { COLOR } from "../../../../../../styles/common/mui/typography";
4
+ import { TEXT_BODY_SMALL_400 } from "../../../../../../theme/common/typography";
5
+ import { BaseComponentProps } from "../../../../../types";
6
+
7
+ export const Warning = ({
8
+ children,
9
+ className,
10
+ ...props /* Mui TypographyOwnProps */
11
+ }: BaseComponentProps & TypographyProps): JSX.Element | null => {
12
+ if (!children) return null;
13
+ return (
14
+ <Typography
15
+ className={className}
16
+ color={COLOR.INK_LIGHT}
17
+ mt={6}
18
+ variant={TEXT_BODY_SMALL_400}
19
+ {...props}
20
+ >
21
+ {children}
22
+ </Typography>
23
+ );
24
+ };
@@ -0,0 +1,11 @@
1
+ import { ChangeEvent } from "react";
2
+
3
+ export interface UseUserConsent {
4
+ handleConsent: (e: ChangeEvent<HTMLInputElement>) => void;
5
+ handleError: (error: boolean) => void;
6
+ state: {
7
+ isDisabled: boolean;
8
+ isError: boolean;
9
+ isValid: boolean;
10
+ };
11
+ }
@@ -0,0 +1,32 @@
1
+ import { ChangeEvent, useCallback, useState } from "react";
2
+ import { useAuthenticationConfig } from "../../../../hooks/authentication/config/useAuthenticationConfig";
3
+ import { UseUserConsent } from "./types";
4
+
5
+ export const useUserConsent = (): UseUserConsent => {
6
+ const authConfig = useAuthenticationConfig();
7
+ const [isDisabled] = useState<boolean>(Boolean(!authConfig?.termsOfService));
8
+ const [isError, setIsError] = useState<boolean>(false);
9
+ const [isValid, setIsValid] = useState<boolean>(false);
10
+
11
+ const handleError = useCallback((error: boolean) => {
12
+ setIsError(error);
13
+ }, []);
14
+
15
+ const handleConsent = useCallback(
16
+ (changeEvent: ChangeEvent<HTMLInputElement>): void => {
17
+ handleError(false);
18
+ setIsValid(changeEvent.target.checked);
19
+ },
20
+ [handleError]
21
+ );
22
+
23
+ return {
24
+ handleConsent,
25
+ handleError,
26
+ state: {
27
+ isDisabled,
28
+ isError,
29
+ isValid,
30
+ },
31
+ };
32
+ };
@@ -0,0 +1,8 @@
1
+ import { ProviderId } from "../../../../providers/authentication/common/types";
2
+ import { UseUserConsent } from "../useUserConsent/types";
3
+
4
+ export interface UseUserLogin
5
+ extends Omit<UseUserConsent, "handleError" | "state"> {
6
+ consentState: Pick<UseUserConsent["state"], "isDisabled" | "isError">;
7
+ handleLogin: (providerId: ProviderId) => void;
8
+ }
@@ -0,0 +1,29 @@
1
+ import { useCallback } from "react";
2
+ import { useAuth } from "../../../../providers/authentication/auth/hook";
3
+ import { ProviderId } from "../../../../providers/authentication/common/types";
4
+ import { useUserConsent } from "../useUserConsent/useUserConsent";
5
+ import { UseUserLogin } from "./types";
6
+
7
+ export const useUserLogin = (): UseUserLogin => {
8
+ const { service: { requestLogin } = {} } = useAuth();
9
+ const { handleConsent, handleError, state: consentState } = useUserConsent();
10
+ const { isDisabled, isError, isValid } = consentState; // Consent state: { isValid } is an indicator of whether the user has accepted the login terms.
11
+
12
+ const handleLogin = useCallback(
13
+ (providerId: ProviderId): void => {
14
+ if (!isDisabled && !isValid) {
15
+ // If the user has not accepted terms, set error state to true.
16
+ handleError(true);
17
+ return;
18
+ }
19
+ requestLogin?.(providerId);
20
+ },
21
+ [handleError, isDisabled, isValid, requestLogin]
22
+ );
23
+
24
+ return {
25
+ consentState: { isDisabled, isError },
26
+ handleConsent,
27
+ handleLogin,
28
+ };
29
+ };
@@ -1,34 +1,33 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { CollaboratingOrganizations } from "./collaboratingOrganizations";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  argTypes: {
7
- collaboratingOrganizations: { control: "array" },
6
+ collaboratingOrganizations: { control: "object" },
8
7
  },
9
8
  component: CollaboratingOrganizations,
10
9
  title: "Components/SectionContent/Content/Project",
11
- } as ComponentMeta<typeof CollaboratingOrganizations>;
10
+ } satisfies Meta<typeof CollaboratingOrganizations>;
12
11
 
13
- const CollaboratingOrganizationsTemplate: ComponentStory<
14
- typeof CollaboratingOrganizations
15
- > = (args) => <CollaboratingOrganizations {...args} />;
12
+ export default meta;
16
13
 
17
- export const CollaboratingOrganizationsStory =
18
- CollaboratingOrganizationsTemplate.bind({});
19
- CollaboratingOrganizationsStory.args = {
20
- collaboratingOrganizations: [
21
- {
22
- citation: 1,
23
- name: "The Jackson Laboratory",
24
- },
25
- {
26
- citation: 2,
27
- name: "The New York Genome Center",
28
- },
29
- {
30
- citation: 3,
31
- name: "Weill Cornell Medicine",
32
- },
33
- ],
14
+ type Story = StoryObj<typeof meta>;
15
+
16
+ export const CollaboratingOrganizationsStory: Story = {
17
+ args: {
18
+ collaboratingOrganizations: [
19
+ {
20
+ citation: 1,
21
+ name: "The Jackson Laboratory",
22
+ },
23
+ {
24
+ citation: 2,
25
+ name: "The New York Genome Center",
26
+ },
27
+ {
28
+ citation: 3,
29
+ name: "Weill Cornell Medicine",
30
+ },
31
+ ],
32
+ },
34
33
  };
@@ -1,31 +1,31 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { Contacts } from "./contacts";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  argTypes: {
7
- contacts: { control: "array" },
6
+ contacts: { control: "object" },
8
7
  },
9
8
  component: Contacts,
10
9
  title: "Components/SectionContent/Content/Project",
11
- } as ComponentMeta<typeof Contacts>;
10
+ } satisfies Meta<typeof Contacts>;
12
11
 
13
- const ContactsTemplate: ComponentStory<typeof Contacts> = (args) => (
14
- <Contacts {...args} />
15
- );
12
+ export default meta;
16
13
 
17
- export const ContactsStory = ContactsTemplate.bind({});
18
- ContactsStory.args = {
19
- contacts: [
20
- {
21
- email: "gervaise.henry@utsouthwestern.edu",
22
- institution: "UT Southwestern",
23
- name: "Gervaise H Henry",
24
- },
25
- {
26
- email: "poppy@utsouthwestern.edu",
27
- institution: "UT Southwestern",
28
- name: "Poppy Rose Roberts",
29
- },
30
- ],
14
+ type Story = StoryObj<typeof meta>;
15
+
16
+ export const ContactsStory: Story = {
17
+ args: {
18
+ contacts: [
19
+ {
20
+ email: "gervaise.henry@utsouthwestern.edu",
21
+ institution: "UT Southwestern",
22
+ name: "Gervaise H Henry",
23
+ },
24
+ {
25
+ email: "poppy@utsouthwestern.edu",
26
+ institution: "UT Southwestern",
27
+ name: "Poppy Rose Roberts",
28
+ },
29
+ ],
30
+ },
31
31
  };
@@ -1,38 +1,38 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { Contributors } from "./contributors";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  component: Contributors,
7
6
  title: "Components/SectionContent/Content/Project",
8
- } as ComponentMeta<typeof Contributors>;
7
+ } satisfies Meta<typeof Contributors>;
9
8
 
10
- const ContributorsTemplate: ComponentStory<typeof Contributors> = (args) => (
11
- <Contributors {...args} />
12
- );
9
+ export default meta;
13
10
 
14
- export const ContributorsStory = ContributorsTemplate.bind({});
15
- ContributorsStory.args = {
16
- contributors: [
17
- {
18
- citation: 1,
19
- name: "Rose R Reginold",
20
- role: undefined,
21
- },
22
- {
23
- citation: 1,
24
- name: "Frank D Dirk",
25
- role: "Project Coordinator",
26
- },
27
- {
28
- citation: 2,
29
- name: "Marcelo Freire",
30
- role: "Principal Investigator",
31
- },
32
- {
33
- citation: 3,
34
- name: "Nathan Lawlor",
35
- role: "Computational Scientist",
36
- },
37
- ],
11
+ type Story = StoryObj<typeof meta>;
12
+
13
+ export const ContributorsStory: Story = {
14
+ args: {
15
+ contributors: [
16
+ {
17
+ citation: 1,
18
+ name: "Rose R Reginold",
19
+ role: undefined,
20
+ },
21
+ {
22
+ citation: 1,
23
+ name: "Frank D Dirk",
24
+ role: "Project Coordinator",
25
+ },
26
+ {
27
+ citation: 2,
28
+ name: "Marcelo Freire",
29
+ role: "Principal Investigator",
30
+ },
31
+ {
32
+ citation: 3,
33
+ name: "Nathan Lawlor",
34
+ role: "Computational Scientist",
35
+ },
36
+ ],
37
+ },
38
38
  };
@@ -1,20 +1,20 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { DataCurators } from "./dataCurators";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  argTypes: {
7
- dataCurators: { control: "array" },
6
+ dataCurators: { control: "object" },
8
7
  },
9
8
  component: DataCurators,
10
9
  title: "Components/SectionContent/Content/Project",
11
- } as ComponentMeta<typeof DataCurators>;
10
+ } satisfies Meta<typeof DataCurators>;
12
11
 
13
- const DataCuratorsTemplate: ComponentStory<typeof DataCurators> = (args) => (
14
- <DataCurators {...args} />
15
- );
12
+ export default meta;
16
13
 
17
- export const DataCuratorsStory = DataCuratorsTemplate.bind({});
18
- DataCuratorsStory.args = {
19
- dataCurators: ["Schwartz Rachel", "William Sullivan", "Parisa Nejad"],
14
+ type Story = StoryObj<typeof meta>;
15
+
16
+ export const DataCuratorsStory: Story = {
17
+ args: {
18
+ dataCurators: ["Schwartz Rachel", "William Sullivan", "Parisa Nejad"],
19
+ },
20
20
  };
@@ -1,14 +1,13 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { DataReleasePolicy } from "./dataReleasePolicy";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  component: DataReleasePolicy,
7
6
  title: "Components/SectionContent/Content/Project",
8
- } as ComponentMeta<typeof DataReleasePolicy>;
7
+ } satisfies Meta<typeof DataReleasePolicy>;
9
8
 
10
- const DataReleasePolicyTemplate: ComponentStory<
11
- typeof DataReleasePolicy
12
- > = () => <DataReleasePolicy />;
9
+ export default meta;
13
10
 
14
- export const DataReleasePolicyStory = DataReleasePolicyTemplate.bind({});
11
+ type Story = StoryObj<typeof meta>;
12
+
13
+ export const DataReleasePolicyStory: Story = {};
@@ -1,18 +1,18 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { Description } from "./description";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  component: Description,
7
6
  title: "Components/SectionContent/Content/Project",
8
- } as ComponentMeta<typeof Description>;
7
+ } satisfies Meta<typeof Description>;
9
8
 
10
- const DescriptionTemplate: ComponentStory<typeof Description> = (args) => (
11
- <Description {...args} />
12
- );
9
+ export default meta;
13
10
 
14
- export const DescriptionStory = DescriptionTemplate.bind({});
15
- DescriptionStory.args = {
16
- projectDescription:
17
- "Although the function of the mammalian pancreas hinges on complex interactions of distinct cell types, gene expression profiles have primarily been described with bulk mixtures. Here we implemented a droplet-based, single-cell RNA-seq method to determine the transcriptomes of over 12,000 individual pancreatic cells from four human donors and two mouse strains. Cells could be divided into 15 clusters that matched previously characterized cell types: all endocrine cell types, including rare epsilon-cells; exocrine cell types; vascular cells; Schwann cells; quiescent and activated stellate cells; and four types of immune cells. We detected subpopulations of ductal cells with distinct expression profiles and validated their existence with immuno-histochemistry stains. Moreover, among human beta- cells, we detected heterogeneity in the regulation of genes relating to functional maturation and levels of ER stress. Finally, we deconvolved bulk gene expression samples using the single-cell data to detect disease-associated differential expression. Our dataset provides a resource for the discovery of novel cell type-specific transcription factors, signaling receptors, and medically relevant genes.",
11
+ type Story = StoryObj<typeof meta>;
12
+
13
+ export const DescriptionStory: Story = {
14
+ args: {
15
+ projectDescription:
16
+ "Although the function of the mammalian pancreas hinges on complex interactions of distinct cell types, gene expression profiles have primarily been described with bulk mixtures. Here we implemented a droplet-based, single-cell RNA-seq method to determine the transcriptomes of over 12,000 individual pancreatic cells from four human donors and two mouse strains. Cells could be divided into 15 clusters that matched previously characterized cell types: all endocrine cell types, including rare epsilon-cells; exocrine cell types; vascular cells; Schwann cells; quiescent and activated stellate cells; and four types of immune cells. We detected subpopulations of ductal cells with distinct expression profiles and validated their existence with immuno-histochemistry stains. Moreover, among human beta- cells, we detected heterogeneity in the regulation of genes relating to functional maturation and levels of ER stress. Finally, we deconvolved bulk gene expression samples using the single-cell data to detect disease-associated differential expression. Our dataset provides a resource for the discovery of novel cell type-specific transcription factors, signaling receptors, and medically relevant genes.",
17
+ },
18
18
  };
@@ -1,5 +1,4 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { KeyValues } from "../../../common/KeyValuePairs/keyValuePairs";
4
3
  import { Details } from "./details";
5
4
 
@@ -11,21 +10,22 @@ const details: KeyValues = new Map([
11
10
  ["Anatomical Entity", "eye"],
12
11
  ]);
13
12
 
14
- export default {
13
+ const meta = {
15
14
  argTypes: {
16
15
  keyValuePairs: { control: "object" },
17
16
  title: { control: "text" },
18
17
  },
19
18
  component: Details,
20
19
  title: "Components/SectionContent/Content/Project",
21
- } as ComponentMeta<typeof Details>;
20
+ } satisfies Meta<typeof Details>;
22
21
 
23
- const DetailsTemplate: ComponentStory<typeof Details> = (args) => (
24
- <Details {...args} />
25
- );
22
+ export default meta;
26
23
 
27
- export const DetailsStory = DetailsTemplate.bind({});
28
- DetailsStory.args = {
29
- keyValuePairs: details,
30
- title: "",
24
+ type Story = StoryObj<typeof meta>;
25
+
26
+ export const DetailsStory: Story = {
27
+ args: {
28
+ keyValuePairs: details,
29
+ title: "",
30
+ },
31
31
  };
@@ -1,30 +1,30 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { Publications } from "./publications";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  component: Publications,
7
6
  title: "Components/SectionContent/Content/Project",
8
- } as ComponentMeta<typeof Publications>;
7
+ } satisfies Meta<typeof Publications>;
9
8
 
10
- const PublicationsTemplate: ComponentStory<typeof Publications> = (args) => (
11
- <Publications {...args} />
12
- );
9
+ export default meta;
13
10
 
14
- export const PublicationsStory = PublicationsTemplate.bind({});
15
- PublicationsStory.args = {
16
- publications: [
17
- {
18
- doi: "10.1126/science.aay3224",
19
- officialHcaPublication: true,
20
- publicationTitle:
21
- "A cell atlas of human thymic development defines T cell repertoire formation.",
22
- publicationUrl: "https://www.science.org/doi/10.1126/science.aay3224",
23
- },
24
- {
25
- publicationTitle:
26
- "A revised airway epithelial hierarchy includes CFTR-expressing ionocytes.",
27
- publicationUrl: "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6295155/",
28
- },
29
- ],
11
+ type Story = StoryObj<typeof meta>;
12
+
13
+ export const PublicationsStory: Story = {
14
+ args: {
15
+ publications: [
16
+ {
17
+ doi: "10.1126/science.aay3224",
18
+ officialHcaPublication: true,
19
+ publicationTitle:
20
+ "A cell atlas of human thymic development defines T cell repertoire formation.",
21
+ publicationUrl: "https://www.science.org/doi/10.1126/science.aay3224",
22
+ },
23
+ {
24
+ publicationTitle:
25
+ "A revised airway epithelial hierarchy includes CFTR-expressing ionocytes.",
26
+ publicationUrl: "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6295155/",
27
+ },
28
+ ],
29
+ },
30
30
  };
@@ -1,29 +1,29 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { SupplementaryLinks } from "./supplementaryLinks";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  component: SupplementaryLinks,
7
6
  title: "Components/SectionContent/Content/Project",
8
- } as ComponentMeta<typeof SupplementaryLinks>;
7
+ } satisfies Meta<typeof SupplementaryLinks>;
9
8
 
10
- const SupplementaryLinksTemplate: ComponentStory<typeof SupplementaryLinks> = (
11
- args
12
- ) => <SupplementaryLinks {...args} />;
9
+ export default meta;
13
10
 
14
- export const SupplementaryLinksStory = SupplementaryLinksTemplate.bind({});
15
- SupplementaryLinksStory.args = {
16
- supplementaryLinks: [
17
- "https://castelobranco.shinyapps.io/MSCtrl_CCA_18/",
18
- "https://ki.se/en/mbb/oligointernode",
19
- "https://cellxgene.cziscience.com/collections/c9706a92-0e5f-46c1-96d8-20e42467f287",
20
- "https://github.com/DeprezM/HCA_analysis",
21
- "https://tumor-toolbox.broadinstitute.org/",
22
- "http://dx.doi.org/10.6019/PXD011655",
23
- "https://github.com/agneantanaviciute/colonicepithelium",
24
- "https://developmentcellatlas.ncl.ac.uk/datasets/HCA_thymus/",
25
- "https://doi.org/10.5281/zenodo.3572421",
26
- "https://www.gutcellatlas.org/",
27
- "https://czi-pbmc-cite-seq.jax.org/",
28
- ],
11
+ type Story = StoryObj<typeof meta>;
12
+
13
+ export const SupplementaryLinksStory: Story = {
14
+ args: {
15
+ supplementaryLinks: [
16
+ "https://castelobranco.shinyapps.io/MSCtrl_CCA_18/",
17
+ "https://ki.se/en/mbb/oligointernode",
18
+ "https://cellxgene.cziscience.com/collections/c9706a92-0e5f-46c1-96d8-20e42467f287",
19
+ "https://github.com/DeprezM/HCA_analysis",
20
+ "https://tumor-toolbox.broadinstitute.org/",
21
+ "http://dx.doi.org/10.6019/PXD011655",
22
+ "https://github.com/agneantanaviciute/colonicepithelium",
23
+ "https://developmentcellatlas.ncl.ac.uk/datasets/HCA_thymus/",
24
+ "https://doi.org/10.5281/zenodo.3572421",
25
+ "https://www.gutcellatlas.org/",
26
+ "https://czi-pbmc-cite-seq.jax.org/",
27
+ ],
28
+ },
29
29
  };
@@ -1,14 +1,15 @@
1
+ import * as yup from "yup";
1
2
  import { FORM_CONTROL_NAME, FormOption, FormState } from "./entities";
2
3
 
3
- // Validation constraints
4
- export const CONSTRAINTS = {
5
- [FORM_CONTROL_NAME.ATTACHMENT_TOKEN]: { presence: { allowEmpty: true } },
6
- [FORM_CONTROL_NAME.DESCRIPTION]: { presence: { allowEmpty: false } },
7
- [FORM_CONTROL_NAME.EMAIL]: { email: true, presence: { allowEmpty: false } },
8
- [FORM_CONTROL_NAME.NAME]: { presence: { allowEmpty: false } },
9
- [FORM_CONTROL_NAME.SUBJECT]: { presence: { allowEmpty: false } },
10
- [FORM_CONTROL_NAME.TYPE]: { presence: { allowEmpty: false } },
11
- };
4
+ // Validation schema
5
+ export const VALIDATION_SCHEMA = yup.object({
6
+ [FORM_CONTROL_NAME.ATTACHMENT_TOKEN]: yup.string().defined(),
7
+ [FORM_CONTROL_NAME.DESCRIPTION]: yup.string().required(),
8
+ [FORM_CONTROL_NAME.EMAIL]: yup.string().email().required(),
9
+ [FORM_CONTROL_NAME.NAME]: yup.string().required(),
10
+ [FORM_CONTROL_NAME.SUBJECT]: yup.string().required(),
11
+ [FORM_CONTROL_NAME.TYPE]: yup.string().required(),
12
+ });
12
13
 
13
14
  // Default form state.
14
15
  export const DEFAULT_FORM_STATE: FormState = {