@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.
- package/.release-please-manifest.json +1 -1
- package/.storybook/main.ts +7 -1
- package/CHANGELOG.md +25 -0
- package/lib/components/DataDictionary/components/Entities/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Entities/constants.js +6 -0
- package/lib/components/DataDictionary/components/Entities/entities.d.ts +2 -0
- package/lib/components/DataDictionary/components/Entities/entities.js +7 -0
- package/lib/components/DataDictionary/components/Entities/types.d.ts +4 -0
- package/lib/components/DataDictionary/components/Entities/types.js +1 -0
- package/lib/components/DataDictionary/components/Entity/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Entity/constants.js +5 -0
- package/lib/components/DataDictionary/components/Entity/entity.d.ts +2 -0
- package/lib/components/DataDictionary/components/Entity/entity.js +14 -0
- package/lib/components/DataDictionary/components/Entity/types.d.ts +4 -0
- package/lib/components/DataDictionary/components/Entity/types.js +1 -0
- package/lib/components/DataDictionary/components/Table/columns/columnDef.d.ts +6 -0
- package/lib/components/DataDictionary/components/Table/columns/columnDef.js +33 -0
- package/lib/components/DataDictionary/components/Table/columns/columnIdentifier.d.ts +5 -0
- package/lib/components/DataDictionary/components/Table/columns/columnIdentifier.js +5 -0
- package/lib/components/DataDictionary/components/Table/columns/types.d.ts +2 -0
- package/lib/components/DataDictionary/components/Table/columns/types.js +1 -0
- package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.d.ts +2 -0
- package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.js +6 -0
- package/lib/components/DataDictionary/components/Table/components/BasicCell/types.d.ts +4 -0
- package/lib/components/DataDictionary/components/Table/components/BasicCell/types.js +1 -0
- package/lib/components/DataDictionary/components/Table/hook.d.ts +3 -0
- package/lib/components/DataDictionary/components/Table/hook.js +11 -0
- package/lib/components/DataDictionary/components/Table/options/core/constants.d.ts +3 -0
- package/lib/components/DataDictionary/components/Table/options/core/constants.js +7 -0
- package/lib/components/DataDictionary/components/Table/options/hook.d.ts +3 -0
- package/lib/components/DataDictionary/components/Table/options/hook.js +8 -0
- package/lib/components/DataDictionary/components/Table/options/sorting/constants.d.ts +3 -0
- package/lib/components/DataDictionary/components/Table/options/sorting/constants.js +3 -0
- package/lib/components/DataDictionary/components/Table/table.d.ts +2 -0
- package/lib/components/DataDictionary/components/Table/table.js +17 -0
- package/lib/components/DataDictionary/components/Table/table.styles.d.ts +3 -0
- package/lib/components/DataDictionary/components/Table/table.styles.js +5 -0
- package/lib/components/DataDictionary/components/Table/types.d.ts +5 -0
- package/lib/components/DataDictionary/components/Table/types.js +1 -0
- package/lib/components/DataDictionary/dataDictionary.d.ts +2 -0
- package/lib/components/DataDictionary/dataDictionary.js +9 -0
- package/lib/components/DataDictionary/dataDictionary.styles.d.ts +1 -0
- package/lib/components/DataDictionary/dataDictionary.styles.js +7 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.d.ts +2 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +5 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionary/types.d.ts +4 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionary/types.js +1 -0
- package/lib/components/Detail/detail.stories.d.ts +36 -5
- package/lib/components/Detail/detail.stories.js +27 -18
- package/lib/components/Export/components/ExportForm/components/ExportButton/exportButton.js +6 -1
- package/lib/components/Export/components/ExportMethod/exportMethod.stories.d.ts +22 -5
- package/lib/components/Export/components/ExportMethod/exportMethod.stories.js +9 -9
- package/lib/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestDownload/fileManifestDownload.js +5 -2
- package/lib/components/Filter/components/Filter/filter.stories.d.ts +25 -5
- package/lib/components/Filter/components/Filter/filter.stories.js +25 -24
- package/lib/components/Filter/components/FilterLabel/filterLabel.stories.d.ts +31 -5
- package/lib/components/Filter/components/FilterLabel/filterLabel.stories.js +10 -8
- package/lib/components/Filter/components/FilterMenu/filterMenu.stories.d.ts +38 -5
- package/lib/components/Filter/components/FilterMenu/filterMenu.stories.js +107 -104
- package/lib/components/Filter/components/FilterTag/filterTag.stories.d.ts +16 -5
- package/lib/components/Filter/components/FilterTag/filterTag.stories.js +8 -7
- package/lib/components/Filter/components/FilterTags/filterTags.stories.d.ts +18 -5
- package/lib/components/Filter/components/FilterTags/filterTags.stories.js +40 -39
- package/lib/components/Index/components/AzulFileDownload/azulFileDownload.js +10 -5
- package/lib/components/Index/components/AzulFileDownload/azulFileDownload.stories.d.ts +8 -5
- package/lib/components/Index/components/AzulFileDownload/azulFileDownload.stories.js +9 -6
- package/lib/components/Index/components/Hero/components/Summaries/summaries.stories.d.ts +13 -5
- package/lib/components/Index/components/Hero/components/Summaries/summaries.stories.js +11 -11
- package/lib/components/Index/components/Hero/hero.stories.d.ts +23 -5
- package/lib/components/Index/components/Hero/hero.stories.js +8 -6
- package/lib/components/Index/components/NTagCell/nTagCell.stories.d.ts +16 -5
- package/lib/components/Index/components/NTagCell/nTagCell.stories.js +8 -8
- package/lib/components/Index/index.stories.js +2 -1
- package/lib/components/Layout/components/BackPage/backPageView.stories.d.ts +31 -5
- package/lib/components/Layout/components/BackPage/backPageView.stories.js +27 -18
- package/lib/components/Layout/components/Footer/footer.stories.d.ts +24 -3
- package/lib/components/Layout/components/Footer/footer.stories.js +4 -3
- package/lib/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenu/navigationMenu.js +1 -1
- package/lib/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenuItems/navigationMenuItems.js +20 -21
- package/lib/components/Layout/components/Header/components/Content/components/Navigation/constants.d.ts +1 -0
- package/lib/components/Layout/components/Header/components/Content/components/Navigation/constants.js +1 -0
- package/lib/components/Layout/components/Header/components/Content/components/Navigation/navigation.d.ts +2 -1
- package/lib/components/Layout/components/Header/components/Content/components/Navigation/navigation.js +16 -17
- package/lib/components/Layout/components/Header/header.js +2 -1
- package/lib/components/Layout/components/Header/header.stories.js +1 -1
- package/lib/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.d.ts +13 -5
- package/lib/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.js +6 -6
- package/lib/components/Layout/components/Sidebar/sidebar.stories.js +2 -0
- package/lib/components/Links/links.stories.d.ts +13 -5
- package/lib/components/Links/links.stories.js +14 -14
- package/lib/components/Loading/loading.stories.d.ts +34 -5
- package/lib/components/Loading/loading.stories.js +8 -6
- package/lib/components/Login/components/Button/types.d.ts +1 -1
- package/lib/components/Login/components/Buttons/buttons.d.ts +2 -0
- package/lib/components/Login/components/Buttons/buttons.js +5 -0
- package/lib/components/Login/components/Buttons/types.d.ts +8 -0
- package/lib/components/Login/components/Buttons/types.js +1 -0
- package/lib/components/Login/components/Section/components/Consent/consent.d.ts +3 -0
- package/lib/components/Login/components/Section/components/Consent/consent.js +14 -0
- package/lib/components/Login/components/Section/components/Consent/consent.styles.d.ts +7 -0
- package/lib/components/Login/components/Section/components/Consent/consent.styles.js +14 -0
- package/lib/components/Login/components/Section/components/Consent/types.d.ts +6 -0
- package/lib/components/Login/components/Section/components/Consent/types.js +1 -0
- package/lib/components/Login/components/Section/components/Warning/warning.d.ts +3 -0
- package/lib/components/Login/components/Section/components/Warning/warning.js +9 -0
- package/lib/components/Login/hooks/useUserConsent/types.d.ts +10 -0
- package/lib/components/Login/hooks/useUserConsent/types.js +1 -0
- package/lib/components/Login/hooks/useUserConsent/useUserConsent.d.ts +2 -0
- package/lib/components/Login/hooks/useUserConsent/useUserConsent.js +24 -0
- package/lib/components/Login/hooks/useUserLogin/types.d.ts +6 -0
- package/lib/components/Login/hooks/useUserLogin/types.js +1 -0
- package/lib/components/Login/hooks/useUserLogin/useUserLogin.d.ts +2 -0
- package/lib/components/Login/hooks/useUserLogin/useUserLogin.js +21 -0
- package/lib/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.d.ts +13 -5
- package/lib/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.js +20 -20
- package/lib/components/Project/components/Contacts/contacts.stories.d.ts +13 -5
- package/lib/components/Project/components/Contacts/contacts.stories.js +18 -18
- package/lib/components/Project/components/Contributors/contributors.stories.d.ts +8 -5
- package/lib/components/Project/components/Contributors/contributors.stories.js +27 -27
- package/lib/components/Project/components/DataCurators/dataCurators.stories.d.ts +13 -5
- package/lib/components/Project/components/DataCurators/dataCurators.stories.js +7 -7
- package/lib/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.d.ts +8 -5
- package/lib/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.js +3 -4
- package/lib/components/Project/components/Description/description.stories.d.ts +8 -5
- package/lib/components/Project/components/Description/description.stories.js +6 -6
- package/lib/components/Project/components/Details/details.stories.d.ts +16 -5
- package/lib/components/Project/components/Details/details.stories.js +7 -7
- package/lib/components/Project/components/Publications/publications.stories.d.ts +8 -5
- package/lib/components/Project/components/Publications/publications.stories.js +17 -17
- package/lib/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.d.ts +8 -5
- package/lib/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.js +18 -18
- package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.d.ts +16 -33
- package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.js +10 -9
- package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/supportRequestForm.js +26 -14
- package/lib/components/Support/components/ViewSupport/types.d.ts +6 -0
- package/lib/components/Support/components/ViewSupport/types.js +1 -0
- package/lib/components/Support/components/ViewSupport/viewSupport.d.ts +2 -9
- package/lib/components/Support/components/ViewSupport/viewSupport.js +7 -3
- package/lib/components/Table/components/Pagination/pagination.stories.d.ts +28 -5
- package/lib/components/Table/components/Pagination/pagination.stories.js +11 -7
- package/lib/components/common/Accordion/accordion.stories.d.ts +6 -3
- package/lib/components/common/Accordion/accordion.stories.js +2 -1
- package/lib/components/common/Breadcrumbs/breadcrumbs.stories.d.ts +10 -7
- package/lib/components/common/Breadcrumbs/breadcrumbs.stories.js +42 -43
- package/lib/components/common/Button/components/CallToActionButton/callToActionButton.stories.d.ts +9 -6
- package/lib/components/common/Button/components/CallToActionButton/callToActionButton.stories.js +13 -15
- package/lib/components/common/Button/components/HelpIconButton/helpIconButton.stories.d.ts +19 -2
- package/lib/components/common/Button/components/HelpIconButton/helpIconButton.stories.js +2 -2
- package/lib/components/common/Card/card.stories.d.ts +6 -3
- package/lib/components/common/Card/card.stories.js +2 -1
- package/lib/components/common/Code/code.stories.d.ts +5 -3
- package/lib/components/common/CopyToClipboard/copyToClipboard.stories.d.ts +11 -3
- package/lib/components/common/CopyToClipboard/copyToClipboard.stories.js +2 -1
- package/lib/components/common/CustomIcon/components/CloseIcon/closeIcon.d.ts +2 -0
- package/lib/components/common/CustomIcon/components/CloseIcon/closeIcon.js +6 -0
- package/lib/components/common/LoginDialog/constants.d.ts +6 -0
- package/lib/components/common/LoginDialog/constants.js +21 -0
- package/lib/components/common/LoginDialog/loginDialog.d.ts +2 -0
- package/lib/components/common/LoginDialog/loginDialog.js +27 -0
- package/lib/components/common/LoginDialog/loginDialog.styles.d.ts +3 -0
- package/lib/components/common/LoginDialog/loginDialog.styles.js +50 -0
- package/lib/components/common/LoginDialog/types.d.ts +4 -0
- package/lib/components/common/LoginDialog/types.js +1 -0
- package/lib/components/common/Section/components/SectionTitle/sectionTitle.stories.d.ts +13 -5
- package/lib/components/common/Section/components/SectionTitle/sectionTitle.stories.js +6 -6
- package/lib/components/common/Socials/socials.stories.d.ts +11 -3
- package/lib/components/common/Socials/socials.stories.js +2 -1
- package/lib/components/common/StaticImage/staticImage.stories.d.ts +22 -5
- package/lib/components/common/StaticImage/staticImage.stories.js +8 -8
- package/lib/components/common/StatusIcon/statusIcon.stories.d.ts +19 -5
- package/lib/components/common/StatusIcon/statusIcon.stories.js +7 -7
- package/lib/components/common/Tag/tag.stories.d.ts +15 -5
- package/lib/components/common/Tag/tag.stories.js +7 -5
- package/lib/components/common/ToggleButtonGroup/toggleButtonGroup.stories.d.ts +18 -5
- package/lib/components/common/ToggleButtonGroup/toggleButtonGroup.stories.js +19 -19
- package/lib/config/entities.d.ts +1 -0
- package/lib/providers/loginGuard/common/types.d.ts +18 -0
- package/lib/providers/loginGuard/common/types.js +1 -0
- package/lib/providers/loginGuard/context.d.ts +6 -0
- package/lib/providers/loginGuard/context.js +10 -0
- package/lib/providers/loginGuard/hook.d.ts +9 -0
- package/lib/providers/loginGuard/hook.js +12 -0
- package/lib/providers/loginGuard/provider.d.ts +11 -0
- package/lib/providers/loginGuard/provider.js +55 -0
- package/lib/styles/common/mui/typography.d.ts +1 -0
- package/lib/styles/common/mui/typography.js +8 -0
- package/lib/views/DataDictionaryView/dataDictionaryView.d.ts +2 -0
- package/lib/views/DataDictionaryView/dataDictionaryView.js +5 -0
- package/package.json +13 -13
- package/src/components/DataDictionary/components/Entities/constants.ts +8 -0
- package/src/components/DataDictionary/components/Entities/entities.tsx +15 -0
- package/src/components/DataDictionary/components/Entities/types.ts +5 -0
- package/src/components/DataDictionary/components/Entity/constants.ts +7 -0
- package/src/components/DataDictionary/components/Entity/entity.tsx +28 -0
- package/src/components/DataDictionary/components/Entity/types.ts +5 -0
- package/src/components/DataDictionary/components/Table/columns/columnDef.ts +47 -0
- package/src/components/DataDictionary/components/Table/columns/columnIdentifier.ts +5 -0
- package/src/components/DataDictionary/components/Table/columns/types.ts +3 -0
- package/src/components/DataDictionary/components/Table/components/BasicCell/basicCell.tsx +8 -0
- package/src/components/DataDictionary/components/Table/components/BasicCell/types.ts +5 -0
- package/src/components/DataDictionary/components/Table/hook.ts +13 -0
- package/src/components/DataDictionary/components/Table/options/core/constants.ts +12 -0
- package/src/components/DataDictionary/components/Table/options/hook.ts +14 -0
- package/src/components/DataDictionary/components/Table/options/sorting/constants.ts +9 -0
- package/src/components/DataDictionary/components/Table/table.styles.ts +6 -0
- package/src/components/DataDictionary/components/Table/table.tsx +35 -0
- package/src/components/DataDictionary/components/Table/types.ts +6 -0
- package/src/components/DataDictionary/dataDictionary.styles.ts +8 -0
- package/src/components/DataDictionary/dataDictionary.tsx +16 -0
- package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +9 -0
- package/src/components/DataDictionary/hooks/UseDataDictionary/types.ts +5 -0
- package/src/components/Detail/detail.stories.tsx +41 -36
- package/src/components/Export/components/ExportForm/components/ExportButton/exportButton.tsx +8 -1
- package/src/components/Export/components/ExportMethod/exportMethod.stories.tsx +13 -13
- package/src/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestDownload/fileManifestDownload.tsx +11 -3
- package/src/components/Filter/components/Filter/filter.stories.tsx +29 -28
- package/src/components/Filter/components/FilterLabel/filterLabel.stories.tsx +14 -12
- package/src/components/Filter/components/FilterMenu/filterMenu.stories.tsx +111 -108
- package/src/components/Filter/components/FilterTag/filterTag.stories.tsx +12 -11
- package/src/components/Filter/components/FilterTags/filterTags.stories.tsx +44 -43
- package/src/components/Index/components/AzulFileDownload/azulFileDownload.stories.tsx +13 -10
- package/src/components/Index/components/AzulFileDownload/azulFileDownload.tsx +12 -5
- package/src/components/Index/components/Hero/components/Summaries/summaries.stories.tsx +15 -15
- package/src/components/Index/components/Hero/hero.stories.tsx +12 -8
- package/src/components/Index/components/NTagCell/nTagCell.stories.tsx +12 -12
- package/src/components/Index/index.stories.tsx +2 -1
- package/src/components/Layout/components/BackPage/backPageView.stories.tsx +42 -36
- package/src/components/Layout/components/Footer/footer.stories.tsx +6 -4
- package/src/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenu/navigationMenu.tsx +1 -1
- package/src/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenuItems/navigationMenuItems.tsx +16 -15
- package/src/components/Layout/components/Header/components/Content/components/Navigation/constants.ts +1 -0
- package/src/components/Layout/components/Header/components/Content/components/Navigation/navigation.tsx +26 -18
- package/src/components/Layout/components/Header/header.stories.tsx +1 -1
- package/src/components/Layout/components/Header/header.tsx +6 -1
- package/src/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.tsx +10 -10
- package/src/components/Layout/components/Sidebar/sidebar.stories.tsx +2 -0
- package/src/components/Links/links.stories.tsx +18 -18
- package/src/components/Loading/loading.stories.tsx +12 -10
- package/src/components/Login/components/Button/types.ts +1 -1
- package/src/components/Login/components/Buttons/buttons.tsx +22 -0
- package/src/components/Login/components/Buttons/types.ts +9 -0
- package/src/components/Login/components/Section/components/Consent/consent.styles.ts +15 -0
- package/src/components/Login/components/Section/components/Consent/consent.tsx +30 -0
- package/src/components/Login/components/Section/components/Consent/types.ts +10 -0
- package/src/components/Login/components/Section/components/Warning/warning.tsx +24 -0
- package/src/components/Login/hooks/useUserConsent/types.ts +11 -0
- package/src/components/Login/hooks/useUserConsent/useUserConsent.ts +32 -0
- package/src/components/Login/hooks/useUserLogin/types.ts +8 -0
- package/src/components/Login/hooks/useUserLogin/useUserLogin.ts +29 -0
- package/src/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.tsx +24 -25
- package/src/components/Project/components/Contacts/contacts.stories.tsx +22 -22
- package/src/components/Project/components/Contributors/contributors.stories.tsx +31 -31
- package/src/components/Project/components/DataCurators/dataCurators.stories.tsx +11 -11
- package/src/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.tsx +7 -8
- package/src/components/Project/components/Description/description.stories.tsx +11 -11
- package/src/components/Project/components/Details/details.stories.tsx +11 -11
- package/src/components/Project/components/Publications/publications.stories.tsx +23 -23
- package/src/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.tsx +22 -22
- package/src/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.ts +10 -9
- package/src/components/Support/components/SupportRequest/components/SupportRequestForm/supportRequestForm.tsx +44 -15
- package/src/components/Support/components/ViewSupport/types.ts +9 -0
- package/src/components/Support/components/ViewSupport/viewSupport.tsx +6 -10
- package/src/components/Table/components/Pagination/pagination.stories.tsx +15 -11
- package/src/components/common/Accordion/accordion.stories.tsx +4 -2
- package/src/components/common/Breadcrumbs/breadcrumbs.stories.tsx +46 -47
- package/src/components/common/Button/components/CallToActionButton/callToActionButton.stories.tsx +17 -20
- package/src/components/common/Button/components/HelpIconButton/helpIconButton.stories.tsx +4 -4
- package/src/components/common/Card/card.stories.tsx +4 -2
- package/src/components/common/Code/code.stories.tsx +1 -1
- package/src/components/common/CopyToClipboard/copyToClipboard.stories.tsx +4 -2
- package/src/components/common/CustomIcon/components/CloseIcon/closeIcon.tsx +17 -0
- package/src/components/common/LoginDialog/constants.ts +33 -0
- package/src/components/common/LoginDialog/loginDialog.styles.ts +51 -0
- package/src/components/common/LoginDialog/loginDialog.tsx +56 -0
- package/src/components/common/LoginDialog/types.ts +4 -0
- package/src/components/common/Section/components/SectionTitle/sectionTitle.stories.tsx +10 -10
- package/src/components/common/Socials/socials.stories.tsx +4 -2
- package/src/components/common/StaticImage/staticImage.stories.tsx +12 -12
- package/src/components/common/StatusIcon/statusIcon.stories.tsx +11 -11
- package/src/components/common/Tag/tag.stories.tsx +11 -9
- package/src/components/common/ToggleButtonGroup/toggleButtonGroup.stories.tsx +23 -23
- package/src/config/entities.ts +1 -0
- package/src/providers/loginGuard/common/types.ts +21 -0
- package/src/providers/loginGuard/context.ts +12 -0
- package/src/providers/loginGuard/hook.ts +14 -0
- package/src/providers/loginGuard/provider.tsx +76 -0
- package/src/styles/common/mui/typography.ts +9 -0
- package/src/views/DataDictionaryView/dataDictionaryView.tsx +9 -0
- package/tests/provider.test.tsx +191 -0
|
@@ -7,7 +7,7 @@ import React, {
|
|
|
7
7
|
useState,
|
|
8
8
|
} from "react";
|
|
9
9
|
import { FileRejection } from "react-dropzone";
|
|
10
|
-
import
|
|
10
|
+
import { ValidationError } from "yup";
|
|
11
11
|
import { TEXT_BODY_400 } from "../../../../../../theme/common/typography";
|
|
12
12
|
import { ButtonPrimary } from "../../../../../common/Button/components/ButtonPrimary/buttonPrimary";
|
|
13
13
|
import { Input } from "../../../../../common/Form/components/Input/input";
|
|
@@ -21,18 +21,17 @@ import {
|
|
|
21
21
|
import { SupportRequest } from "../../supportRequest";
|
|
22
22
|
import Dropzone from "../Dropzone/dropzone";
|
|
23
23
|
import {
|
|
24
|
-
CONSTRAINTS,
|
|
25
24
|
DEFAULT_FORM_STATE,
|
|
26
25
|
DRAGGING_STYLE,
|
|
27
26
|
MAX_ATTACHMENT_SIZE,
|
|
28
27
|
OPTIONS,
|
|
28
|
+
VALIDATION_SCHEMA,
|
|
29
29
|
} from "./common/constants";
|
|
30
30
|
import {
|
|
31
31
|
FORM_CONTROL_LABEL,
|
|
32
32
|
FORM_CONTROL_NAME,
|
|
33
33
|
FormState,
|
|
34
34
|
RequestValue,
|
|
35
|
-
ValidateResponse,
|
|
36
35
|
} from "./common/entities";
|
|
37
36
|
import { createSupportRequest, uploadAttachment } from "./common/utils";
|
|
38
37
|
import { Section, Title } from "./supportRequestForm.styles";
|
|
@@ -47,7 +46,23 @@ export const SupportRequestForm = ({
|
|
|
47
46
|
supportRequest,
|
|
48
47
|
}: SupportRequestFormProps): JSX.Element => {
|
|
49
48
|
const [formState, setFormState] = useState<FormState>(DEFAULT_FORM_STATE);
|
|
50
|
-
const
|
|
49
|
+
const [errorFields, setErrorFields] = useState<Set<string>>();
|
|
50
|
+
|
|
51
|
+
// Validate form state when it changes.
|
|
52
|
+
React.useEffect(() => {
|
|
53
|
+
VALIDATION_SCHEMA.validate(buildSupportRequest(formState), {
|
|
54
|
+
abortEarly: false,
|
|
55
|
+
})
|
|
56
|
+
.then(() => setErrorFields(undefined))
|
|
57
|
+
.catch((aggregateError: ValidationError) => {
|
|
58
|
+
const fields = new Set<string>();
|
|
59
|
+
for (const error of aggregateError.inner) {
|
|
60
|
+
if (error.path) fields.add(error.path);
|
|
61
|
+
}
|
|
62
|
+
setErrorFields(fields);
|
|
63
|
+
});
|
|
64
|
+
}, [formState]);
|
|
65
|
+
|
|
51
66
|
const { FIELD_ID, requestURL, uploadURL } = supportRequest;
|
|
52
67
|
|
|
53
68
|
// Delete attachment.
|
|
@@ -177,7 +192,11 @@ export const SupportRequestForm = ({
|
|
|
177
192
|
</Section>
|
|
178
193
|
<Section>
|
|
179
194
|
<Input
|
|
180
|
-
error={isFieldError(
|
|
195
|
+
error={isFieldError(
|
|
196
|
+
formState,
|
|
197
|
+
errorFields,
|
|
198
|
+
FORM_CONTROL_NAME.NAME
|
|
199
|
+
)}
|
|
181
200
|
isFilled={Boolean(formState[FORM_CONTROL_NAME.NAME])}
|
|
182
201
|
label={FORM_CONTROL_LABEL.NAME}
|
|
183
202
|
name={FORM_CONTROL_NAME.NAME}
|
|
@@ -185,7 +204,11 @@ export const SupportRequestForm = ({
|
|
|
185
204
|
onChange={onInputChange}
|
|
186
205
|
/>
|
|
187
206
|
<Input
|
|
188
|
-
error={isFieldError(
|
|
207
|
+
error={isFieldError(
|
|
208
|
+
formState,
|
|
209
|
+
errorFields,
|
|
210
|
+
FORM_CONTROL_NAME.EMAIL
|
|
211
|
+
)}
|
|
189
212
|
isFilled={Boolean(formState[FORM_CONTROL_NAME.EMAIL])}
|
|
190
213
|
label={FORM_CONTROL_LABEL.EMAIL}
|
|
191
214
|
name={FORM_CONTROL_NAME.EMAIL}
|
|
@@ -194,7 +217,11 @@ export const SupportRequestForm = ({
|
|
|
194
217
|
/>
|
|
195
218
|
<Select
|
|
196
219
|
displayEmpty={true}
|
|
197
|
-
error={isFieldError(
|
|
220
|
+
error={isFieldError(
|
|
221
|
+
formState,
|
|
222
|
+
errorFields,
|
|
223
|
+
FORM_CONTROL_NAME.TYPE
|
|
224
|
+
)}
|
|
198
225
|
isFilled={Boolean(formState[FORM_CONTROL_NAME.TYPE])}
|
|
199
226
|
label={FORM_CONTROL_LABEL.TYPE}
|
|
200
227
|
name={FORM_CONTROL_NAME.TYPE}
|
|
@@ -211,7 +238,11 @@ export const SupportRequestForm = ({
|
|
|
211
238
|
))}
|
|
212
239
|
</Select>
|
|
213
240
|
<Input
|
|
214
|
-
error={isFieldError(
|
|
241
|
+
error={isFieldError(
|
|
242
|
+
formState,
|
|
243
|
+
errorFields,
|
|
244
|
+
FORM_CONTROL_NAME.SUBJECT
|
|
245
|
+
)}
|
|
215
246
|
isFilled={Boolean(formState[FORM_CONTROL_NAME.SUBJECT])}
|
|
216
247
|
label={FORM_CONTROL_LABEL.SUBJECT}
|
|
217
248
|
name={FORM_CONTROL_NAME.SUBJECT}
|
|
@@ -221,7 +252,7 @@ export const SupportRequestForm = ({
|
|
|
221
252
|
<Input
|
|
222
253
|
error={isFieldError(
|
|
223
254
|
formState,
|
|
224
|
-
|
|
255
|
+
errorFields,
|
|
225
256
|
FORM_CONTROL_NAME.DESCRIPTION
|
|
226
257
|
)}
|
|
227
258
|
isFilled={Boolean(formState[FORM_CONTROL_NAME.DESCRIPTION])}
|
|
@@ -244,7 +275,7 @@ export const SupportRequestForm = ({
|
|
|
244
275
|
<Section>
|
|
245
276
|
<SectionActions>
|
|
246
277
|
<ButtonPrimary
|
|
247
|
-
disabled={Boolean(
|
|
278
|
+
disabled={Boolean(errorFields) || formState.submitting}
|
|
248
279
|
fullWidth
|
|
249
280
|
onClick={onSupportRequestSubmitted}
|
|
250
281
|
id="button-support-request"
|
|
@@ -280,18 +311,16 @@ function buildSupportRequest(formState: FormState): RequestValue {
|
|
|
280
311
|
/**
|
|
281
312
|
* Returns true if the given field is touched and has an error.
|
|
282
313
|
* @param formState - Form state.
|
|
283
|
-
* @param
|
|
314
|
+
* @param errorFields - Set of names of fields that have errors.
|
|
284
315
|
* @param fieldName - Field name.
|
|
285
316
|
* @returns true if the given field has an error.
|
|
286
317
|
*/
|
|
287
318
|
function isFieldError(
|
|
288
319
|
formState: FormState,
|
|
289
|
-
|
|
320
|
+
errorFields: Set<string> | undefined,
|
|
290
321
|
fieldName: FORM_CONTROL_NAME
|
|
291
322
|
): boolean {
|
|
292
|
-
|
|
293
|
-
const isTouched = Boolean(formState.touched[fieldName]);
|
|
294
|
-
return isTouched && hasError;
|
|
323
|
+
return Boolean(formState.touched[fieldName] && errorFields?.has(fieldName));
|
|
295
324
|
}
|
|
296
325
|
|
|
297
326
|
/**
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AnchorHTMLAttributes, ElementType } from "react";
|
|
2
|
+
import { BaseComponentProps } from "../../../types";
|
|
3
|
+
|
|
4
|
+
export interface ViewSupportProps
|
|
5
|
+
extends AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
6
|
+
BaseComponentProps {
|
|
7
|
+
Icon?: ElementType;
|
|
8
|
+
url: string;
|
|
9
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { ContactSupportIcon } from "../../../common/CustomIcon/components/ContactSupportIcon/contactSupportIcon";
|
|
3
|
-
import { ANCHOR_TARGET } from "../../../Links/common/entities";
|
|
3
|
+
import { ANCHOR_TARGET, REL_ATTRIBUTE } from "../../../Links/common/entities";
|
|
4
|
+
import { ViewSupportProps } from "./types";
|
|
4
5
|
import { Fab } from "./viewSupport.styles";
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -8,21 +9,16 @@ import { Fab } from "./viewSupport.styles";
|
|
|
8
9
|
* Navigates to support URL provided.
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
|
-
export interface ViewSupportProps {
|
|
12
|
-
className?: string;
|
|
13
|
-
Icon?: ElementType;
|
|
14
|
-
target?: ANCHOR_TARGET;
|
|
15
|
-
url: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
12
|
export const ViewSupport = ({
|
|
19
13
|
className,
|
|
20
14
|
Icon = ContactSupportIcon,
|
|
15
|
+
rel = REL_ATTRIBUTE.NO_OPENER_NO_REFERRER,
|
|
21
16
|
target = ANCHOR_TARGET.BLANK,
|
|
22
17
|
url,
|
|
18
|
+
...props /* AnchorHTMLAttributes<HTMLAnchorElement> */
|
|
23
19
|
}: ViewSupportProps): JSX.Element => {
|
|
24
20
|
return (
|
|
25
|
-
<Fab className={className} href={url} target={target}>
|
|
21
|
+
<Fab className={className} href={url} rel={rel} target={target} {...props}>
|
|
26
22
|
<Icon fontSize="inherit" />
|
|
27
23
|
</Fab>
|
|
28
24
|
);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React from "react";
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
3
2
|
import { Pagination } from "./pagination";
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
const meta = {
|
|
6
5
|
argTypes: {
|
|
7
6
|
canNextPage: { control: "boolean" },
|
|
8
7
|
canPreviousPage: { control: "boolean" },
|
|
@@ -13,14 +12,19 @@ export default {
|
|
|
13
12
|
},
|
|
14
13
|
component: Pagination,
|
|
15
14
|
title: "Components/Table",
|
|
16
|
-
}
|
|
15
|
+
} satisfies Meta<typeof Pagination>;
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
<Pagination {...args} />
|
|
20
|
-
);
|
|
17
|
+
export default meta;
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
type Story = StoryObj<typeof meta>;
|
|
20
|
+
|
|
21
|
+
export const PaginationStory: Story = {
|
|
22
|
+
args: {
|
|
23
|
+
canNextPage: true,
|
|
24
|
+
canPreviousPage: false,
|
|
25
|
+
currentPage: 1,
|
|
26
|
+
onNextPage: () => {},
|
|
27
|
+
onPreviousPage: () => {},
|
|
28
|
+
totalPage: 25,
|
|
29
|
+
},
|
|
26
30
|
};
|
|
@@ -3,10 +3,12 @@ import { Meta, StoryObj } from "@storybook/react";
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { Accordion } from "./accordion";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
const meta = {
|
|
7
7
|
component: Accordion,
|
|
8
8
|
title: "Components/Common/Accordion",
|
|
9
|
-
}
|
|
9
|
+
} satisfies Meta<typeof Accordion>;
|
|
10
|
+
|
|
11
|
+
export default meta;
|
|
10
12
|
|
|
11
13
|
type Story = StoryObj<typeof Accordion>;
|
|
12
14
|
|
|
@@ -1,58 +1,57 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React from "react";
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
3
2
|
import { Breadcrumbs } from "./breadcrumbs";
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
argTypes: {
|
|
7
|
-
children: { control: { disabled: true } },
|
|
8
|
-
},
|
|
4
|
+
const meta = {
|
|
9
5
|
component: Breadcrumbs,
|
|
10
6
|
title: "Components/Common/BreadCrumbs",
|
|
11
|
-
}
|
|
7
|
+
} satisfies Meta<typeof Breadcrumbs>;
|
|
8
|
+
|
|
9
|
+
export default meta;
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
<Breadcrumbs {...args} />
|
|
15
|
-
);
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
16
12
|
|
|
17
|
-
export const BreadcrumbDefaultStory =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
export const BreadcrumbDefaultStory: Story = {
|
|
14
|
+
args: {
|
|
15
|
+
breadcrumbs: [
|
|
16
|
+
{
|
|
17
|
+
path: "#",
|
|
18
|
+
text: "Home",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
path: "#",
|
|
22
|
+
text: "Data Explorer",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
},
|
|
29
26
|
};
|
|
30
27
|
|
|
31
|
-
export const BreadcrumbCustomSeparatorStory =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
28
|
+
export const BreadcrumbCustomSeparatorStory: Story = {
|
|
29
|
+
args: {
|
|
30
|
+
Separator: " | ",
|
|
31
|
+
breadcrumbs: [
|
|
32
|
+
{
|
|
33
|
+
path: "#",
|
|
34
|
+
text: "Home",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
path: "#",
|
|
38
|
+
text: "Data Explorer",
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
44
42
|
};
|
|
45
43
|
|
|
46
|
-
export const BreadcrumbWithLongerTitleStory =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
44
|
+
export const BreadcrumbWithLongerTitleStory: Story = {
|
|
45
|
+
args: {
|
|
46
|
+
breadcrumbs: [
|
|
47
|
+
{
|
|
48
|
+
path: "#",
|
|
49
|
+
text: "Explore",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
path: "#",
|
|
53
|
+
text: "A Single-Cell Transcriptomic Map of the Human and Mouse Pancreas Reveals Inter- and Intra-cell Population Structure",
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
58
57
|
};
|
package/src/components/common/Button/components/CallToActionButton/callToActionButton.stories.tsx
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React from "react";
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
3
2
|
import { ANCHOR_TARGET } from "../../../../Links/common/entities";
|
|
4
3
|
import { CallToAction, CallToActionButton } from "./callToActionButton";
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
argTypes: {
|
|
8
|
-
children: { control: { disabled: true } },
|
|
9
|
-
},
|
|
5
|
+
const meta = {
|
|
10
6
|
component: CallToActionButton,
|
|
11
7
|
title: "Components/Common/CallToActionButton",
|
|
12
|
-
}
|
|
8
|
+
} satisfies Meta<typeof CallToActionButton>;
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
args
|
|
16
|
-
) => <CallToActionButton {...args} />;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
17
13
|
|
|
18
14
|
const callToAction: CallToAction = {
|
|
19
15
|
label: "Click here",
|
|
@@ -21,16 +17,17 @@ const callToAction: CallToAction = {
|
|
|
21
17
|
url: "https://www.google.com",
|
|
22
18
|
};
|
|
23
19
|
|
|
24
|
-
export const CallToActionButtonStory =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
export const CallToActionButtonStory: Story = {
|
|
21
|
+
args: {
|
|
22
|
+
callToAction,
|
|
23
|
+
className: "call-to-action-button",
|
|
24
|
+
disabled: false,
|
|
25
|
+
},
|
|
29
26
|
};
|
|
30
27
|
|
|
31
|
-
export const CallToActionButtonWithCustomComponentStory =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
export const CallToActionButtonWithCustomComponentStory: Story = {
|
|
29
|
+
args: {
|
|
30
|
+
ButtonElType: "a",
|
|
31
|
+
callToAction,
|
|
32
|
+
},
|
|
36
33
|
};
|
|
@@ -2,15 +2,15 @@ import { Meta, StoryObj } from "@storybook/react";
|
|
|
2
2
|
import { ANCHOR_TARGET } from "../../../../Links/common/entities";
|
|
3
3
|
import { HelpIconButton } from "./helpIconButton";
|
|
4
4
|
|
|
5
|
-
const meta
|
|
5
|
+
const meta = {
|
|
6
6
|
argTypes: {
|
|
7
|
-
size: { control: "select" },
|
|
8
|
-
target: { control: "select" },
|
|
7
|
+
size: { control: "select", options: ["small", "medium", "large"] },
|
|
8
|
+
target: { control: "select", options: Object.values(ANCHOR_TARGET) },
|
|
9
9
|
url: { control: "text" },
|
|
10
10
|
},
|
|
11
11
|
component: HelpIconButton,
|
|
12
12
|
title: "Components/Common/HelpIconButton",
|
|
13
|
-
}
|
|
13
|
+
} satisfies Meta<typeof HelpIconButton>;
|
|
14
14
|
|
|
15
15
|
export default meta;
|
|
16
16
|
|
|
@@ -2,10 +2,12 @@ import { Meta, StoryObj } from "@storybook/react";
|
|
|
2
2
|
import logo from "../../../images/logo.svg";
|
|
3
3
|
import { Card } from "./card";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
const meta = {
|
|
6
6
|
component: Card,
|
|
7
7
|
title: "Components/Common/Card",
|
|
8
|
-
}
|
|
8
|
+
} satisfies Meta<typeof Card>;
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
9
11
|
|
|
10
12
|
type Story = StoryObj<typeof Card>;
|
|
11
13
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Meta, StoryObj } from "@storybook/react";
|
|
2
2
|
import { CopyToClipboard } from "./copyToClipboard";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
const meta = {
|
|
5
5
|
argTypes: {
|
|
6
6
|
copyStr: {
|
|
7
7
|
description: "String to be copied",
|
|
@@ -9,7 +9,9 @@ export default {
|
|
|
9
9
|
},
|
|
10
10
|
component: CopyToClipboard,
|
|
11
11
|
title: "Components/Common/CopyToClipboard",
|
|
12
|
-
}
|
|
12
|
+
} satisfies Meta<typeof CopyToClipboard>;
|
|
13
|
+
|
|
14
|
+
export default meta;
|
|
13
15
|
|
|
14
16
|
type Story = StoryObj<typeof CopyToClipboard>;
|
|
15
17
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvgIcon, SvgIconProps } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
export const CloseIcon = ({
|
|
5
|
+
fontSize = "xsmall",
|
|
6
|
+
viewBox = "0 0 18 18",
|
|
7
|
+
...props /* Spread props to allow for Mui SvgIconProps specific prop overrides e.g. "htmlColor". */
|
|
8
|
+
}: SvgIconProps): JSX.Element => {
|
|
9
|
+
return (
|
|
10
|
+
<SvgIcon fontSize={fontSize} viewBox={viewBox} {...props}>
|
|
11
|
+
<path
|
|
12
|
+
d="M8.99994 10.1061L5.38104 13.725C5.23104 13.875 5.04984 13.947 4.83744 13.941C4.62504 13.9344 4.44384 13.8561 4.29384 13.7061C4.14384 13.5561 4.06884 13.3719 4.06884 13.1535C4.06884 12.9345 4.14384 12.75 4.29384 12.6L7.89384 9.00005L4.27494 5.38115C4.12494 5.23115 4.05294 5.04695 4.05894 4.82855C4.06554 4.60955 4.14384 4.42505 4.29384 4.27505C4.44384 4.12505 4.62804 4.05005 4.84644 4.05005C5.06544 4.05005 5.24994 4.12505 5.39994 4.27505L8.99994 7.89395L12.6188 4.27505C12.7688 4.12505 12.953 4.05005 13.1714 4.05005C13.3904 4.05005 13.5749 4.12505 13.7249 4.27505C13.8749 4.42505 13.9499 4.60955 13.9499 4.82855C13.9499 5.04695 13.8749 5.23115 13.7249 5.38115L10.106 9.00005L13.7249 12.6189C13.8749 12.7689 13.9499 12.9501 13.9499 13.1625C13.9499 13.3749 13.8749 13.5561 13.7249 13.7061C13.5749 13.8561 13.3904 13.9311 13.1714 13.9311C12.953 13.9311 12.7688 13.8561 12.6188 13.7061L8.99994 10.1061Z"
|
|
13
|
+
fill="currentColor"
|
|
14
|
+
/>
|
|
15
|
+
</SvgIcon>
|
|
16
|
+
);
|
|
17
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DialogContentTextProps,
|
|
3
|
+
DialogProps,
|
|
4
|
+
DialogTitleProps,
|
|
5
|
+
IconButtonProps,
|
|
6
|
+
IconProps,
|
|
7
|
+
} from "@mui/material";
|
|
8
|
+
import { FONT_SIZE } from "../../../styles/common/mui/icon";
|
|
9
|
+
import { COLOR, VARIANT } from "../../../styles/common/mui/typography";
|
|
10
|
+
|
|
11
|
+
export const DIALOG_CONTENT_TEXT_PROPS: DialogContentTextProps = {
|
|
12
|
+
color: COLOR.INK_LIGHT,
|
|
13
|
+
component: "div",
|
|
14
|
+
variant: VARIANT.TEXT_BODY_400,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const DIALOG_PROPS: Partial<DialogProps> = {
|
|
18
|
+
PaperProps: { elevation: 0 },
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const DIALOG_TITLE_PROPS: DialogTitleProps = {
|
|
22
|
+
variant: VARIANT.TEXT_HEADING_SMALL,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const ICON_BUTTON_PROPS: IconButtonProps = {
|
|
26
|
+
color: "inkLight",
|
|
27
|
+
edge: "end",
|
|
28
|
+
size: "xsmall",
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const ICON_PROPS: Pick<IconProps, "fontSize"> = {
|
|
32
|
+
fontSize: FONT_SIZE.SMALL,
|
|
33
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import styled from "@emotion/styled";
|
|
2
|
+
import { Dialog } from "@mui/material";
|
|
3
|
+
import { inkMain } from "../../../styles/common/mixins/colors";
|
|
4
|
+
import { alpha80 } from "../../../theme/common/palette";
|
|
5
|
+
|
|
6
|
+
export const StyledDialog = styled(Dialog)`
|
|
7
|
+
&.MuiDialog-root {
|
|
8
|
+
.MuiBackdrop-root {
|
|
9
|
+
background-color: ${inkMain}${alpha80};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.MuiDialog-paper {
|
|
13
|
+
border-radius: 8px;
|
|
14
|
+
max-width: 400px;
|
|
15
|
+
padding: 32px;
|
|
16
|
+
position: relative; /* positions close icon */
|
|
17
|
+
|
|
18
|
+
.MuiDialogTitle-root,
|
|
19
|
+
.MuiDialogContent-root,
|
|
20
|
+
.MuiDialogActions-root {
|
|
21
|
+
padding: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.MuiDialogTitle-root {
|
|
25
|
+
font-size: 20px;
|
|
26
|
+
|
|
27
|
+
.MuiIconButton-root {
|
|
28
|
+
position: absolute;
|
|
29
|
+
right: 12px;
|
|
30
|
+
top: 12px;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.MuiDialogContent-root {
|
|
35
|
+
.MuiDialogContentText-root {
|
|
36
|
+
margin: 8px 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.MuiGrid2-root {
|
|
40
|
+
margin: 24px 0;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.MuiDialogActions-root {
|
|
45
|
+
display: flex;
|
|
46
|
+
flex-direction: column;
|
|
47
|
+
gap: 16px 0;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DialogActions,
|
|
3
|
+
DialogContent,
|
|
4
|
+
DialogContentText,
|
|
5
|
+
DialogTitle,
|
|
6
|
+
IconButton,
|
|
7
|
+
} from "@mui/material";
|
|
8
|
+
import React from "react";
|
|
9
|
+
import { useAuthenticationConfig } from "../../../hooks/authentication/config/useAuthenticationConfig";
|
|
10
|
+
import { Buttons } from "../../Login/components/Buttons/buttons";
|
|
11
|
+
import { Consent } from "../../Login/components/Section/components/Consent/consent";
|
|
12
|
+
import { Warning } from "../../Login/components/Section/components/Warning/warning";
|
|
13
|
+
import { useUserLogin } from "../../Login/hooks/useUserLogin/useUserLogin";
|
|
14
|
+
import { CloseIcon } from "../CustomIcon/components/CloseIcon/closeIcon";
|
|
15
|
+
import {
|
|
16
|
+
DIALOG_CONTENT_TEXT_PROPS,
|
|
17
|
+
DIALOG_PROPS,
|
|
18
|
+
DIALOG_TITLE_PROPS,
|
|
19
|
+
ICON_BUTTON_PROPS,
|
|
20
|
+
ICON_PROPS,
|
|
21
|
+
} from "./constants";
|
|
22
|
+
import { StyledDialog } from "./loginDialog.styles";
|
|
23
|
+
import { LoginDialogProps } from "./types";
|
|
24
|
+
|
|
25
|
+
export const LoginDialog = ({
|
|
26
|
+
onClose,
|
|
27
|
+
open,
|
|
28
|
+
}: LoginDialogProps): JSX.Element | null => {
|
|
29
|
+
const authConfig = useAuthenticationConfig();
|
|
30
|
+
const { consentState, handleConsent, handleLogin } = useUserLogin();
|
|
31
|
+
|
|
32
|
+
if (!authConfig) return null;
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<StyledDialog {...DIALOG_PROPS} onClose={onClose} open={open}>
|
|
36
|
+
<DialogTitle {...DIALOG_TITLE_PROPS}>
|
|
37
|
+
<div>Sign In Required</div>
|
|
38
|
+
<IconButton {...ICON_BUTTON_PROPS} onClick={onClose}>
|
|
39
|
+
<CloseIcon {...ICON_PROPS} />
|
|
40
|
+
</IconButton>
|
|
41
|
+
</DialogTitle>
|
|
42
|
+
<DialogContent>
|
|
43
|
+
<DialogContentText {...DIALOG_CONTENT_TEXT_PROPS}>
|
|
44
|
+
Please sign in to proceed with this action.
|
|
45
|
+
</DialogContentText>
|
|
46
|
+
<Consent handleConsent={handleConsent} {...consentState}>
|
|
47
|
+
{authConfig.termsOfService}
|
|
48
|
+
</Consent>
|
|
49
|
+
</DialogContent>
|
|
50
|
+
<DialogActions disableSpacing>
|
|
51
|
+
<Buttons handleLogin={handleLogin} providers={authConfig.providers} />
|
|
52
|
+
</DialogActions>
|
|
53
|
+
<Warning>{authConfig.warning}</Warning>
|
|
54
|
+
</StyledDialog>
|
|
55
|
+
);
|
|
56
|
+
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React from "react";
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
3
2
|
import { SectionTitle } from "./sectionTitle";
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
const meta = {
|
|
6
5
|
argTypes: {
|
|
7
6
|
title: { control: "text" },
|
|
8
7
|
},
|
|
9
8
|
component: SectionTitle,
|
|
10
9
|
title: "Components/SectionContent/Title",
|
|
11
|
-
}
|
|
10
|
+
} satisfies Meta<typeof SectionTitle>;
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
<SectionTitle {...args} />
|
|
15
|
-
);
|
|
12
|
+
export default meta;
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
type Story = StoryObj<typeof meta>;
|
|
15
|
+
|
|
16
|
+
export const SectionTitleStory: Story = {
|
|
17
|
+
args: {
|
|
18
|
+
title: "Analysis Portals",
|
|
19
|
+
},
|
|
20
20
|
};
|