@verii/components-organizations-registrar 1.0.0-pre.1756096826 → 1.0.0-pre.1756224043
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/dist/chunks/{ConsentProvider.DIG3atk-.js → ConsentProvider.6M2ucqXH.js} +3 -3
- package/dist/chunks/ConsentProvider.6M2ucqXH.js.map +1 -0
- package/dist/chunks/{ConsentProvider.DTG51XMy.js → ConsentProvider.Bbc0preP.js} +2 -2
- package/dist/chunks/ConsentProvider.Bbc0preP.js.map +1 -0
- package/dist/chunks/{CreateOrganization.utils.C5C_r3Zp.js → CreateOrganizationUtils.C5C_r3Zp.js} +1 -1
- package/dist/chunks/CreateOrganizationUtils.C5C_r3Zp.js.map +1 -0
- package/dist/chunks/{CreateOrganization.utils.8cSBFSYF.js → CreateOrganizationUtils.Xq78HHkP.js} +7 -7
- package/dist/chunks/CreateOrganizationUtils.Xq78HHkP.js.map +1 -0
- package/dist/chunks/{CustomAppBar.DuFQqld7.js → CustomAppBar.BOlNFosS.js} +5 -7
- package/dist/chunks/CustomAppBar.BOlNFosS.js.map +1 -0
- package/dist/chunks/{CustomAppBar.BfQvuTHz.js → CustomAppBar.DaXLAwPh.js} +4 -6
- package/dist/chunks/CustomAppBar.DaXLAwPh.js.map +1 -0
- package/dist/chunks/{LinkedInRegistrationInput.C-qzrR-S.js → LinkedInRegistrationInput.CmYmSJoq.js} +8 -5
- package/dist/chunks/LinkedInRegistrationInput.CmYmSJoq.js.map +1 -0
- package/dist/chunks/{LinkedInRegistrationInput.DKRMHYRh.js → LinkedInRegistrationInput.gnYgP1Hf.js} +11 -8
- package/dist/chunks/LinkedInRegistrationInput.gnYgP1Hf.js.map +1 -0
- package/dist/chunks/{Loading.UJl_3_cf.js → Loading.Bcm3xNJU.js} +2 -3
- package/dist/chunks/Loading.Bcm3xNJU.js.map +1 -0
- package/dist/chunks/{Loading.DYBk0Ktb.js → Loading.cGHE59CV.js} +2 -3
- package/dist/chunks/Loading.cGHE59CV.js.map +1 -0
- package/dist/chunks/{MainLayout.CWFkijrE.js → MainLayout.BzfaZs8j.js} +2 -2
- package/dist/chunks/{MainLayout.CWFkijrE.js.map → MainLayout.BzfaZs8j.js.map} +1 -1
- package/dist/chunks/{MainLayout.6Hq5XQ-L.js → MainLayout.V-ymVxxR.js} +3 -3
- package/dist/chunks/{MainLayout.6Hq5XQ-L.js.map → MainLayout.V-ymVxxR.js.map} +1 -1
- package/dist/chunks/{OrganizationAvatar.BEwRZ9tC.js → OrganizationAvatar.BXW4diDT.js} +2 -2
- package/dist/chunks/{OrganizationAvatar.BEwRZ9tC.js.map → OrganizationAvatar.BXW4diDT.js.map} +1 -1
- package/dist/chunks/{OrganizationAvatar.lWcXtbM6.js → OrganizationAvatar.Dgg5VSPI.js} +2 -2
- package/dist/chunks/{OrganizationAvatar.lWcXtbM6.js.map → OrganizationAvatar.Dgg5VSPI.js.map} +1 -1
- package/dist/chunks/{ServicesEdit.BUAbbXgV.js → ServicesEdit.BnnqC203.js} +3 -3
- package/dist/chunks/ServicesEdit.BnnqC203.js.map +1 -0
- package/dist/chunks/{ServicesEdit.CrtEcP_7.js → ServicesEdit.DDgjS5kU.js} +2 -2
- package/dist/chunks/ServicesEdit.DDgjS5kU.js.map +1 -0
- package/dist/chunks/{SetInvitationService.BUZqAilX.js → SetInvitationService.PxAGwk-I.js} +11 -11
- package/dist/chunks/SetInvitationService.PxAGwk-I.js.map +1 -0
- package/dist/chunks/{SetInvitationService.B0ezxTzf.js → SetInvitationService.ZT5lP003.js} +5 -5
- package/dist/chunks/SetInvitationService.ZT5lP003.js.map +1 -0
- package/dist/chunks/TermsAndConditionsPdf.Ba8-5Hcm.js.map +1 -1
- package/dist/chunks/TermsAndConditionsPdf.ewC7N9Vy.js.map +1 -1
- package/dist/chunks/{CreateOrganization.C2Kf44eJ.js → ValidateTextInput.D5kgjulG.js} +328 -14
- package/dist/chunks/ValidateTextInput.D5kgjulG.js.map +1 -0
- package/dist/chunks/{CreateOrganization.A11-a_8R.js → ValidateTextInput.DEBaVB1L.js} +356 -42
- package/dist/chunks/ValidateTextInput.DEBaVB1L.js.map +1 -0
- package/dist/chunks/{index.DZOVpocw.js → index.CYCWawJT.js} +6 -6
- package/dist/chunks/index.CYCWawJT.js.map +1 -0
- package/dist/chunks/{index.DmM8ShwP.js → index.Cmn4FlUL.js} +5 -5
- package/dist/chunks/index.Cmn4FlUL.js.map +1 -0
- package/dist/chunks/{index.DlFajFTS.js → index.DIizFYFZ.js} +3 -3
- package/dist/chunks/index.DIizFYFZ.js.map +1 -0
- package/dist/chunks/{index.ZAmuSdK1.js → index.DIur8MCO.js} +4 -4
- package/dist/chunks/index.DIur8MCO.js.map +1 -0
- package/dist/chunks/{index.Ch4ynES2.js → index.DMWKdmxs.js} +4 -5
- package/dist/chunks/index.DMWKdmxs.js.map +1 -0
- package/dist/chunks/{index.Dir1xwV4.js → index.DND10PiY.js} +5 -6
- package/dist/chunks/index.DND10PiY.js.map +1 -0
- package/dist/chunks/{index.Cpod3Il3.js → index.YjnxLFjk.js} +3 -3
- package/dist/chunks/index.YjnxLFjk.js.map +1 -0
- package/dist/chunks/index.iexmV4Mr.js.map +1 -1
- package/dist/chunks/remoteDataProvider.BCiFSYnk.js.map +1 -1
- package/dist/chunks/remoteDataProvider.gtTXA1-g.js.map +1 -1
- package/dist/chunks/useIsIssuingInspection.C76mY_wb.js.map +1 -1
- package/dist/chunks/useIsIssuingInspection.DavhBs5B.js.map +1 -1
- package/dist/components/AppBar.cjs +1 -1
- package/dist/components/AppBar.js +1 -1
- package/dist/components/common.cjs +3 -3
- package/dist/components/common.js +3 -3
- package/dist/components/invitations.cjs +1 -1
- package/dist/components/invitations.js +1 -1
- package/dist/components/organizations.cjs +12 -301
- package/dist/components/organizations.cjs.map +1 -1
- package/dist/components/organizations.js +10 -299
- package/dist/components/organizations.js.map +1 -1
- package/dist/components/services.cjs +1 -1
- package/dist/components/services.js +1 -1
- package/dist/components.cjs +2 -2
- package/dist/components.js +2 -2
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/layouts.cjs +1 -1
- package/dist/layouts.js +1 -1
- package/dist/pages/individuals.cjs +4 -4
- package/dist/pages/individuals.cjs.map +1 -1
- package/dist/pages/individuals.js +5 -5
- package/dist/pages/individuals.js.map +1 -1
- package/dist/pages/invitations.cjs +11 -12
- package/dist/pages/invitations.cjs.map +1 -1
- package/dist/pages/invitations.js +9 -10
- package/dist/pages/invitations.js.map +1 -1
- package/dist/pages/organizations.cjs +74 -75
- package/dist/pages/organizations.cjs.map +1 -1
- package/dist/pages/organizations.js +10 -11
- package/dist/pages/organizations.js.map +1 -1
- package/dist/pages/services.cjs +6 -6
- package/dist/pages/services.cjs.map +1 -1
- package/dist/pages/services.js +5 -5
- package/dist/pages/services.js.map +1 -1
- package/dist/pages.cjs +1 -1
- package/dist/pages.cjs.map +1 -1
- package/dist/pages.js +1 -1
- package/dist/pages.js.map +1 -1
- package/package.json +12 -9
- package/setup-tests.js +31 -0
- package/dist/chunks/ConsentProvider.DIG3atk-.js.map +0 -1
- package/dist/chunks/ConsentProvider.DTG51XMy.js.map +0 -1
- package/dist/chunks/CreateOrganization.A11-a_8R.js.map +0 -1
- package/dist/chunks/CreateOrganization.C2Kf44eJ.js.map +0 -1
- package/dist/chunks/CreateOrganization.utils.8cSBFSYF.js.map +0 -1
- package/dist/chunks/CreateOrganization.utils.C5C_r3Zp.js.map +0 -1
- package/dist/chunks/CustomAppBar.BfQvuTHz.js.map +0 -1
- package/dist/chunks/CustomAppBar.DuFQqld7.js.map +0 -1
- package/dist/chunks/LinkedInRegistrationInput.C-qzrR-S.js.map +0 -1
- package/dist/chunks/LinkedInRegistrationInput.DKRMHYRh.js.map +0 -1
- package/dist/chunks/Loading.DYBk0Ktb.js.map +0 -1
- package/dist/chunks/Loading.UJl_3_cf.js.map +0 -1
- package/dist/chunks/OrganisationSubmitButton.D32qynh9.js +0 -40
- package/dist/chunks/OrganisationSubmitButton.D32qynh9.js.map +0 -1
- package/dist/chunks/OrganisationSubmitButton.D3w1nG1X.js +0 -41
- package/dist/chunks/OrganisationSubmitButton.D3w1nG1X.js.map +0 -1
- package/dist/chunks/ServicesEdit.BUAbbXgV.js.map +0 -1
- package/dist/chunks/ServicesEdit.CrtEcP_7.js.map +0 -1
- package/dist/chunks/SetInvitationService.B0ezxTzf.js.map +0 -1
- package/dist/chunks/SetInvitationService.BUZqAilX.js.map +0 -1
- package/dist/chunks/index.Ch4ynES2.js.map +0 -1
- package/dist/chunks/index.Cpod3Il3.js.map +0 -1
- package/dist/chunks/index.DZOVpocw.js.map +0 -1
- package/dist/chunks/index.Dir1xwV4.js.map +0 -1
- package/dist/chunks/index.DlFajFTS.js.map +0 -1
- package/dist/chunks/index.DmM8ShwP.js.map +0 -1
- package/dist/chunks/index.ZAmuSdK1.js.map +0 -1
- package/jest.config.cjs +0 -29
package/dist/pages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sources":["../src/pages/PrivacyPolicy.jsx","../src/pages/SignatoryLanding/hooks/useSignatoryResponse.js","../src/pages/SignatoryLanding/components/Wording.jsx","../src/pages/SignatoryLanding/index.jsx","../src/pages/users.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Typography, Link, Box, Toolbar, AppBar, List, ListItem } from '@mui/material';\n\nimport { Link as ReactRouterLink } from 'react-router';\n\nimport theme, { FOOTER_HEIGHT } from '../theme/theme';\n\nconst PrivacyPolicy = () => {\n return (\n <Box>\n <AppBar position=\"static\" sx={styles.appBar}>\n <Toolbar>\n <ReactRouterLink to=\"/\" style={{ display: 'flex' }} role=\"link\">\n <img src=\"/assets/images/logo.svg\" alt=\"Velocity\" />\n </ReactRouterLink>\n </Toolbar>\n </AppBar>\n <Box sx={styles.container}>\n <Typography variant=\"h3\" mb=\"30px\">\n REGISTRAR UI PRIVACY POLICY\n </Typography>\n <Typography textTransform=\"uppercase\" variant=\"pm\">\n Last updated: December 2022\n </Typography>\n <Typography paragraph mt=\"51px\">\n <Box component=\"span\">\n This Policy is designed to apply to the Registrar UI as available online on\n Velocity’s Registrar UI website <br />\n https://registrarapp.velocitynetwork.foundation/ (the “\n </Box>\n <Box fontWeight=\"fontWeightBold\" display=\"inline\" component=\"b\">\n Site\n </Box>\n <Box component=\"span\">”).</Box>\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n Identity and contact details of the controller and Data Privacy officer\n </Typography>\n <Typography paragraph>\n <Box component=\"span\">Velocity Network Foundation, Inc. and its affiliates (“</Box>\n <Box component=\"span\" sx={styles.bold}>\n Velocity\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n we\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n us\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n our\n </Box>\n <Box component=\"span\">\n ”), as controller of personal data, is responsible for the processing of personal\n data that relates to you (“\n </Box>\n <Box component=\"span\" sx={styles.bold}>\n you\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n User\n </Box>\n <Box component=\"span\">\n ”) under applicable data protection laws and regulations.\n </Box>\n </Typography>\n <Typography paragraph>\n If you have questions regarding the processing of your personal data, please contact\n Velocity’s data privacy officer at \n <Link href=\"mailto:DataOfficer@VelocityNetwork.Foundation\">\n DataOfficer@VelocityNetwork.Foundation\n </Link>\n .\n </Typography>\n <Typography paragraph marginBottom=\"0px\">\n For the purposes of this Privacy Policy, “\n <Box component=\"span\" sx={styles.bold}>\n personal data\n </Box>\n ” is any information about a specific individual or that identifies or may identify\n a specific individual. In other words, it is any piece of information than can be linked\n to you.\n </Typography>\n <Typography paragraph marginTop=\"0px\">\n The term "process” or “processing” means any use of personal data,\n including but not limited to the collection, recording, organization, storing, adaptation,\n alteration, transferring, making available, blocking, deletion or destruction of personal\n data.\n </Typography>\n <Typography variant=\"h4\" sx={styles.subtitle}>\n Our Role as a Data Controller\n </Typography>\n <Typography paragraph>\n Velocity acts in the capacity of a data controller with regard to the Personal Data\n processed through the Registrar UI (the “\n <Box component=\"span\" sx={styles.bold}>\n Service\n </Box>\n ”), as well as the Career Wallet Service (as defined in the Career Wallet App\n Privacy Policy) in terms of the applicable data protection laws, including the EU General\n Data Protection Regulation (GDPR). This privacy policy does not apply to the Career Wallet\n Service, to which the Career Wallet App Privacy Policy applies.\n </Typography>\n <Typography paragraph>\n We are responsible for the collection, usage and processing of your personal data\n collected through the Site (the “\n <Box component=\"span\" sx={styles.bold}>\n Service Data\n </Box>\n ”). The Service Data may include information such as name, email, telephone number,\n payment details, including information you provide us of your employees, agents, vendors\n etc., for providing our services to You. We make decisions about the types of personal\n data that should be collected from you and purposes for which such personal data should be\n used. Therefore, we act as a data controller with regard to the Service data. This Privacy\n Policy applies to such processing.\n </Typography>\n <Typography>\n <Box component=\"span\" sx={styles.bold}>\n Separate Controllers\n </Box>\n . Additionally, Velocity and User are separately responsible for the Personal Data of the\n Velocity Career Wallet end users (“\n <Box component=\"span\" sx={styles.bold}>\n Wallet Holders\n </Box>\n ”) collected, shared and processed by Velocity and User and its further use through\n the Wallet Service. As mentioned above, this Privacy Policy does not apply to such\n processes. Please review the terms described in the Verification Service User Agreement\n for further details.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n Changes in the Policy\n </Typography>\n <Typography paragraph>\n We reserve all rights to adjust this Privacy Policy at any time and for any reason. You\n will be made aware of such an adjustment by reference to a change in the “Last\n updated” date of this Privacy Policy (referenced above). You are encouraged to\n periodically review this Privacy Policy to stay informed of any updates or changes. You\n will be deemed to have been made aware of, will be subject to, and to have accepted the\n changes in any revised Privacy Policy by your continued use of the Site after the date\n such updated Privacy Policy is posted here.\n </Typography>\n <Typography paragraph variant=\"h3\" sx={styles.subtitle} mb=\"30px\">\n COLLECTION OF YOUR SERVICE DATA\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n Types and Purposes of Service Data\n </Typography>\n <Typography paragraph>\n We use Service Data for limited, specified and legitimate purposes explicitly mentioned in\n this Privacy Policy. When processing personal data, we make sure that we do so by relying\n on one of the available legal bases under applicable data protection laws, as described\n herein:\n </Typography>\n <List sx={styles.list}>\n <ListItem sx={styles.listItem}>\n <Box component=\"span\" sx={styles.bold}>\n Contact Details\n </Box>\n . When you sign up on the Site, we collect some information about You and your contact\n persons which include full name, email address, and password. We use such information to\n register you, contact you (if necessary) and maintain our business records. The legal\n bases on which we rely are ‘performance of a contract’ and ‘pursuing\n our legitimate interests’ (to administer Velocity’s business).{' '}\n </ListItem>\n <ListItem sx={styles.listItem}>\n <Box component=\"span\" sx={styles.bold}>\n Inquiries\n </Box>\n . When you contact us by any mean available, we collect your full name, email address,\n and any information that you decide to include in your message. We have no control over\n the information you decide to provide in your message, and we advise you not to share\n sensitive Personal Data. If provide you information about others, it is your\n responsibility to have their proper consent. We use such data to respond to your\n inquiries. The legal basis on which we rely is ‘pursuing our legitimate\n interests’.\n </ListItem>\n <ListItem sx={styles.listItem}>\n <Box component=\"span\" sx={styles.bold}>\n Payment processing\n </Box>\n . When you make a payment, we collect your full name, email address, organization,\n country, billing address, and payment information (name on your card, card number, and\n expiration date). We use such data to process your payment, provide you with the\n requested services, contact you (if necessary), and keep our business records. The legal\n bases on which we rely are ‘performance of a contract’ with you and\n ‘pursuing our legitimate business interests’ (i.e., to administer our\n business and comply with the applicable laws).{' '}\n </ListItem>\n </List>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n HOW WE MAY SHARE SERVICE DATA\n </Typography>\n <Typography paragraph>\n Velocity may share your Personal Data it has collected about you in certain situations,\n for the specified purposes set out above. Your Personal Data may be disclosed with third\n parties such as Velocity’s suppliers, including companies and suppliers outside the\n EU/EEA.\n </Typography>\n <Typography paragraph>\n Part of our third-party suppliers consists of suppliers that facilitate us with the usage\n and performance of our Site which includes monitoring of traffic and analytics within the\n Site through the use of cookies and other similar technologies. For further information\n regarding the usage of cookies refer to our{' '}\n <Link\n sx={styles.link}\n // eslint-disable-next-line max-len\n href=\"https://www.google.com/url?q=https://www.velocitycareerlabs.com/cookies&sa=D&source=editors&ust=1678103921266161&usg=AOvVaw10nOumNzNSR0c2ET1SbBWH\"\n >\n Velocity Career Labs Cookie Policy\n </Link>\n .\n </Typography>\n <Typography paragraph>\n In particular, we use Google Analytics. For further details on the way Google uses\n personal information see the link “\n <Link\n sx={styles.link}\n // eslint-disable-next-line max-len\n href=\"https://www.google.com/url?q=https://policies.google.com/technologies/partner-sites&sa=D&source=editors&ust=1678103921266696&usg=AOvVaw2gk6GX4UYXYo1WrV_MZVX8\"\n >\n How Google uses data when you use our partners’ sites or apps\n </Link>\n ”.\n </Typography>\n <Typography paragraph>\n In the event we will transfer Service Data to our third-party suppliers that are located\n outside of the EU/EEA, and if required under applicable law, Velocity will ensure the\n implementation of appropriate safeguards in place to provide adequate level of protection\n to the Service Data in accordance with the applicable data protection laws (including the\n EU General Data Protection Regulation – ‘\n <Box component=\"span\" sx={styles.bold}>\n GDPR\n </Box>\n ’). For example, this may include the use of EU approved Standard Contractual\n Clauses or such other mechanism as have been recognized or approved by the relevant\n authorities from time to time. We will disclose Personal Data to comply with any court\n order, law or legal process, including to respond to any government or regulatory request.\n </Typography>\n <Typography paragraph>\n Finally, if we ever sell Velocity, or participate in a merger or consolidation, Service\n Data may be transferred accordingly.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n FOR HOW LONG WILL VELOCITY KEEP THE SERVICE DATA?\n </Typography>\n <Typography paragraph>\n Velocity will retain Service Data only for as long as needed for the purpose of providing\n you the Service After this period, Velocity will only process Service Data as may be\n required to comply with local legal obligations or to satisfy any legal requirements in\n the event of an actual, threatened or anticipated dispute or claim.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n YOUR DATA PROTECTION RIGHTS\n </Typography>\n <Typography>\n You may be entitled, where provided for under applicable data protection laws and\n regulations, to:\n </Typography>\n <List sx={styles.list}>\n <ListItem sx={styles.listItem}>\n Request access to the Service Data Velocity processes about you: this right entitles you\n to know whether we hold personal data about you and, if we do, to obtain information on\n and a copy of the specific pieces and categories of personal data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Request a rectification of your Service Data: this right entitles you to have your\n Service Data corrected if it is inaccurate or incomplete.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Object to the processing of your Service Data: this right entitles you to request that\n Velocity no longer process your Service Data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n In certain situations, as it may be applied in the applicable data protection law, and\n when you wish to terminate your account, you can request the erasure or deletion of your\n Service Data: this right entitles you to request the erasure or deletion of your Service\n Data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Request the restriction of the processing of your Service Data: this right entitles you\n to request that Velocity processes your Service Data only in limited circumstances.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Request portability of your Service Data: this right entitles you to receive a copy (in\n a portable and, if technically feasible, readily usable format) of your Service Data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n In the event that our processing of your Service Data or part thereof is based on your\n consent, to withdraw at any time your consent, in which case Velocity will cease any\n further processing activities of your Service Data or the relevant part thereof (however\n such withdrawal will not affect the legality of the data processing activities prior to\n the withdrawal). Please note that Velocity may not always be obliged to comply with a\n request of deletion, restriction, objection or data portability. Assessment may be made\n on a case-by-case basis of Velocity’s legal obligations and the exception to such\n rights.\n </ListItem>\n </List>\n <Typography paragraph>\n You also have the right to lodge any complaints you may have regarding Velocity’s\n processing of your Service Data to a supervisory authority. For more information about\n these rights and how to exercise them, please contact the Velocity Privacy Officer via the\n contact details set out above.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n HOW DOES VELOCITY SAFEGUARD THE SERVICE DATA\n </Typography>\n <Typography paragraph>\n Velocity utilizes appropriate and reasonable legal, technical and organizational security\n measures, including information technology security and physical security measures, to\n adequately protect the Service Data.\n </Typography>\n <Typography paragraph>\n These measures are appropriate to the risks posed by the processing of the Service Data\n and to the sensitivity of the Service Data and take into account the requirements of\n applicable local law. In addition, the measures are continuously improved in line with the\n development of available security products and services.\n </Typography>\n <Typography paragraph>\n Velocity requires all persons to abide by applicable security policies related to personal\n data when using Velocity systems. \n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n CONTACT US\n </Typography>\n <Typography paragraph>\n If you have questions or comments about this Privacy Policy, please contact us at:{' '}\n <Link href=\"mailto:DataOfficer@VelocityNetwork.Foundation\">\n DataOfficer@VelocityNetwork.Foundation\n </Link>\n .\n </Typography>\n </Box>\n </Box>\n );\n};\n\nconst styles = {\n container: {\n pt: '62px',\n pb: `calc(90px + ${FOOTER_HEIGHT})`,\n ml: '80px',\n maxWidth: '67.71%',\n textAlign: 'justify',\n color: theme.palette.text.primary,\n },\n subtitle: {\n mt: '50px',\n mb: '20px',\n },\n bold: {\n fontWeight: '700',\n },\n list: {\n listStyleType: 'disc',\n marginLeft: '21px',\n padding: 0,\n },\n listItem: {\n display: 'list-item',\n padding: '8px 0 8px 5px',\n textAlign: 'justify',\n lineHeight: 1.5,\n },\n appBar: {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n minHeight: '79px',\n display: 'flex',\n justifyContent: 'center',\n },\n};\n\nexport default PrivacyPolicy;\n","import { useEffect, useState } from 'react';\nimport { useConfig } from '@/utils/ConfigContext';\n\n/**\n * useSignatoryResponse hook\n * @param {string} did\n * @param {string} authCode\n * @param {string} response\n * @returns {Object} { isLoading, errorCode }\n */\nexport const useSignatoryResponse = ({ did, authCode, response }) => {\n const config = useConfig();\n\n const [isLoading, setIsLoading] = useState(false);\n const [errorCode, setErrorCode] = useState(null);\n\n useEffect(() => {\n const addResponse = async () => {\n setIsLoading(true);\n setErrorCode(null);\n try {\n const resp = await fetch(\n `${config.registrarApi}/organizations/${did}/signatories/response/${response}?authCode=${authCode}`,\n );\n if (!resp.ok) {\n const data = await resp.json();\n setErrorCode(data?.errorCode || null);\n }\n } catch (e) {\n setErrorCode(e?.errorCode || null);\n } finally {\n setIsLoading(false);\n }\n };\n if (did && authCode && response && config.registrarApi) {\n addResponse();\n }\n }, [did, authCode, response, config.registrarApi]);\n\n return { isLoading, errorCode };\n};\n\nexport default useSignatoryResponse;\n","import { Typography } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nconst SignatoryErrorCodes = {\n AUTH_CODE_MUST_BE_MOST_RECENT: 'auth_code_must_be_most_recent',\n AUTH_CODE_EXPIRED: 'auth_code_expired',\n UNAUTHORIZED: 'unauthorized',\n SIGNATORY_STATUS_ALREADY_COMPLETE: 'signatory_status_already_complete',\n};\n\nexport const Wording = ({ response, errorCode, name }) => {\n if (errorCode === SignatoryErrorCodes.SIGNATORY_STATUS_ALREADY_COMPLETE) {\n return (\n <>\n <Typography variant=\"h1\" textAlign=\"center\" marginBottom={3.5}>\n This process has already been completed\n </Typography>\n <Typography variant=\"pL\" textAlign=\"center\" marginBottom={11}>\n If you have any queries please contact us for assistance.\n </Typography>\n </>\n );\n }\n\n if (\n [\n SignatoryErrorCodes.AUTH_CODE_MUST_BE_MOST_RECENT,\n SignatoryErrorCodes.AUTH_CODE_EXPIRED,\n SignatoryErrorCodes.UNAUTHORIZED,\n ].includes(errorCode)\n ) {\n return (\n <>\n <Typography variant=\"h1\" textAlign=\"center\" marginBottom={3.5}>\n This link has expired.\n </Typography>\n <Typography variant=\"pL\" textAlign=\"center\" marginBottom={11}>\n Please check your inbox for the most recent reminder email and use the updated link\n provided there to complete your action. <br />\n If you can’t find the latest email, please contact us for assistance.\n </Typography>\n </>\n );\n }\n\n return (\n <>\n <Typography variant=\"h1\" textAlign=\"center\" marginBottom={3.5}>\n Thank you!\n </Typography>\n <Typography variant=\"pL\" textAlign=\"center\" marginBottom={11}>\n Your {response === 'approve' ? 'approval' : 'rejection'} regarding the addition of {name} on\n the Velocity Network has been acknowledged.\n </Typography>\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nWording.propTypes = {\n response: PropTypes.string.isRequired,\n errorCode: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n};\n\nexport default Wording;\n","import { useParams, useSearchParams } from 'react-router';\nimport { Box } from '@mui/material';\n\nimport { useGetOne } from 'ra-core';\nimport Loading from '@/components/Loading.jsx';\nimport { dataResources } from '@/utils/remoteDataProvider';\nimport { useSignatoryResponse } from './hooks/useSignatoryResponse';\nimport { Wording } from './components/Wording.jsx';\n\nconst SignatoryLanding = () => {\n const { response } = useParams();\n const [searchParams] = useSearchParams();\n const did = searchParams.get('did');\n const authCode = searchParams.get('authCode');\n\n const { data: profile, isLoading } = useGetOne(dataResources.VERIFIED_PROFILE, { id: did });\n\n const { isLoading: isSignatoryLoading, errorCode } = useSignatoryResponse({\n did,\n authCode,\n response,\n });\n\n if (isLoading || isSignatoryLoading) {\n return (\n <Box sx={styles.loading} pt={5} pb={10} pr={8} pl={9}>\n <Loading />\n </Box>\n );\n }\n\n return (\n <Box sx={styles.container}>\n <Box sx={styles.content}>\n <img\n src=\"/assets/images/logo.svg\"\n alt=\"Velocity\"\n width={196}\n height={42}\n style={styles.image}\n />\n <Wording response={response} errorCode={errorCode} name={profile.credentialSubject.name} />\n </Box>\n </Box>\n );\n};\n\nconst styles = {\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '100vh',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n transform: 'translateY(-60px)',\n maxWidth: '670px',\n },\n image: {\n marginBottom: 110,\n },\n loading: {\n height: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n};\n\nexport default SignatoryLanding;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useMediaQuery } from '@mui/material';\nimport { SimpleList, List, Datagrid, EmailField, TextField } from 'react-admin';\n\nconst UserList = (props) => {\n const isSmall = useMediaQuery((theme) => theme.breakpoints.down('sm'));\n\n return (\n <List title=\"All users\" {...props}>\n {isSmall ? (\n <SimpleList\n primaryText={(record) => record.name}\n secondaryText={(record) => record.username}\n tertiaryText={(record) => record.email}\n />\n ) : (\n <Datagrid>\n <TextField source=\"id\" />\n <TextField source=\"name\" />\n <TextField source=\"username\" />\n <EmailField source=\"email\" />\n </Datagrid>\n )}\n </List>\n );\n};\n\nexport default UserList;\n"],"names":["styles","ReactRouterLink","Link","theme","List"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pages.js","sources":["../src/pages/PrivacyPolicy.jsx","../src/pages/SignatoryLanding/hooks/useSignatoryResponse.js","../src/pages/SignatoryLanding/components/Wording.jsx","../src/pages/SignatoryLanding/index.jsx","../src/pages/users.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Typography, Link, Box, Toolbar, AppBar, List, ListItem } from '@mui/material';\n\nimport { Link as ReactRouterLink } from 'react-router';\n\nimport theme, { FOOTER_HEIGHT } from '../theme/theme.js';\n\nconst PrivacyPolicy = () => {\n return (\n <Box>\n <AppBar position=\"static\" sx={styles.appBar}>\n <Toolbar>\n <ReactRouterLink to=\"/\" style={{ display: 'flex' }} role=\"link\">\n <img src=\"/assets/images/logo.svg\" alt=\"Velocity\" />\n </ReactRouterLink>\n </Toolbar>\n </AppBar>\n <Box sx={styles.container}>\n <Typography variant=\"h3\" mb=\"30px\">\n REGISTRAR UI PRIVACY POLICY\n </Typography>\n <Typography textTransform=\"uppercase\" variant=\"pm\">\n Last updated: December 2022\n </Typography>\n <Typography paragraph mt=\"51px\">\n <Box component=\"span\">\n This Policy is designed to apply to the Registrar UI as available online on\n Velocity’s Registrar UI website <br />\n https://registrarapp.velocitynetwork.foundation/ (the “\n </Box>\n <Box fontWeight=\"fontWeightBold\" display=\"inline\" component=\"b\">\n Site\n </Box>\n <Box component=\"span\">”).</Box>\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n Identity and contact details of the controller and Data Privacy officer\n </Typography>\n <Typography paragraph>\n <Box component=\"span\">Velocity Network Foundation, Inc. and its affiliates (“</Box>\n <Box component=\"span\" sx={styles.bold}>\n Velocity\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n we\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n us\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n our\n </Box>\n <Box component=\"span\">\n ”), as controller of personal data, is responsible for the processing of personal\n data that relates to you (“\n </Box>\n <Box component=\"span\" sx={styles.bold}>\n you\n </Box>\n <Box component=\"span\">” or “</Box>\n <Box component=\"span\" sx={styles.bold}>\n User\n </Box>\n <Box component=\"span\">\n ”) under applicable data protection laws and regulations.\n </Box>\n </Typography>\n <Typography paragraph>\n If you have questions regarding the processing of your personal data, please contact\n Velocity’s data privacy officer at \n <Link href=\"mailto:DataOfficer@VelocityNetwork.Foundation\">\n DataOfficer@VelocityNetwork.Foundation\n </Link>\n .\n </Typography>\n <Typography paragraph marginBottom=\"0px\">\n For the purposes of this Privacy Policy, “\n <Box component=\"span\" sx={styles.bold}>\n personal data\n </Box>\n ” is any information about a specific individual or that identifies or may identify\n a specific individual. In other words, it is any piece of information than can be linked\n to you.\n </Typography>\n <Typography paragraph marginTop=\"0px\">\n The term "process” or “processing” means any use of personal data,\n including but not limited to the collection, recording, organization, storing, adaptation,\n alteration, transferring, making available, blocking, deletion or destruction of personal\n data.\n </Typography>\n <Typography variant=\"h4\" sx={styles.subtitle}>\n Our Role as a Data Controller\n </Typography>\n <Typography paragraph>\n Velocity acts in the capacity of a data controller with regard to the Personal Data\n processed through the Registrar UI (the “\n <Box component=\"span\" sx={styles.bold}>\n Service\n </Box>\n ”), as well as the Career Wallet Service (as defined in the Career Wallet App\n Privacy Policy) in terms of the applicable data protection laws, including the EU General\n Data Protection Regulation (GDPR). This privacy policy does not apply to the Career Wallet\n Service, to which the Career Wallet App Privacy Policy applies.\n </Typography>\n <Typography paragraph>\n We are responsible for the collection, usage and processing of your personal data\n collected through the Site (the “\n <Box component=\"span\" sx={styles.bold}>\n Service Data\n </Box>\n ”). The Service Data may include information such as name, email, telephone number,\n payment details, including information you provide us of your employees, agents, vendors\n etc., for providing our services to You. We make decisions about the types of personal\n data that should be collected from you and purposes for which such personal data should be\n used. Therefore, we act as a data controller with regard to the Service data. This Privacy\n Policy applies to such processing.\n </Typography>\n <Typography>\n <Box component=\"span\" sx={styles.bold}>\n Separate Controllers\n </Box>\n . Additionally, Velocity and User are separately responsible for the Personal Data of the\n Velocity Career Wallet end users (“\n <Box component=\"span\" sx={styles.bold}>\n Wallet Holders\n </Box>\n ”) collected, shared and processed by Velocity and User and its further use through\n the Wallet Service. As mentioned above, this Privacy Policy does not apply to such\n processes. Please review the terms described in the Verification Service User Agreement\n for further details.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n Changes in the Policy\n </Typography>\n <Typography paragraph>\n We reserve all rights to adjust this Privacy Policy at any time and for any reason. You\n will be made aware of such an adjustment by reference to a change in the “Last\n updated” date of this Privacy Policy (referenced above). You are encouraged to\n periodically review this Privacy Policy to stay informed of any updates or changes. You\n will be deemed to have been made aware of, will be subject to, and to have accepted the\n changes in any revised Privacy Policy by your continued use of the Site after the date\n such updated Privacy Policy is posted here.\n </Typography>\n <Typography paragraph variant=\"h3\" sx={styles.subtitle} mb=\"30px\">\n COLLECTION OF YOUR SERVICE DATA\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n Types and Purposes of Service Data\n </Typography>\n <Typography paragraph>\n We use Service Data for limited, specified and legitimate purposes explicitly mentioned in\n this Privacy Policy. When processing personal data, we make sure that we do so by relying\n on one of the available legal bases under applicable data protection laws, as described\n herein:\n </Typography>\n <List sx={styles.list}>\n <ListItem sx={styles.listItem}>\n <Box component=\"span\" sx={styles.bold}>\n Contact Details\n </Box>\n . When you sign up on the Site, we collect some information about You and your contact\n persons which include full name, email address, and password. We use such information to\n register you, contact you (if necessary) and maintain our business records. The legal\n bases on which we rely are ‘performance of a contract’ and ‘pursuing\n our legitimate interests’ (to administer Velocity’s business).{' '}\n </ListItem>\n <ListItem sx={styles.listItem}>\n <Box component=\"span\" sx={styles.bold}>\n Inquiries\n </Box>\n . When you contact us by any mean available, we collect your full name, email address,\n and any information that you decide to include in your message. We have no control over\n the information you decide to provide in your message, and we advise you not to share\n sensitive Personal Data. If provide you information about others, it is your\n responsibility to have their proper consent. We use such data to respond to your\n inquiries. The legal basis on which we rely is ‘pursuing our legitimate\n interests’.\n </ListItem>\n <ListItem sx={styles.listItem}>\n <Box component=\"span\" sx={styles.bold}>\n Payment processing\n </Box>\n . When you make a payment, we collect your full name, email address, organization,\n country, billing address, and payment information (name on your card, card number, and\n expiration date). We use such data to process your payment, provide you with the\n requested services, contact you (if necessary), and keep our business records. The legal\n bases on which we rely are ‘performance of a contract’ with you and\n ‘pursuing our legitimate business interests’ (i.e., to administer our\n business and comply with the applicable laws).{' '}\n </ListItem>\n </List>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n HOW WE MAY SHARE SERVICE DATA\n </Typography>\n <Typography paragraph>\n Velocity may share your Personal Data it has collected about you in certain situations,\n for the specified purposes set out above. Your Personal Data may be disclosed with third\n parties such as Velocity’s suppliers, including companies and suppliers outside the\n EU/EEA.\n </Typography>\n <Typography paragraph>\n Part of our third-party suppliers consists of suppliers that facilitate us with the usage\n and performance of our Site which includes monitoring of traffic and analytics within the\n Site through the use of cookies and other similar technologies. For further information\n regarding the usage of cookies refer to our{' '}\n <Link\n sx={styles.link}\n // eslint-disable-next-line max-len\n href=\"https://www.google.com/url?q=https://www.velocitycareerlabs.com/cookies&sa=D&source=editors&ust=1678103921266161&usg=AOvVaw10nOumNzNSR0c2ET1SbBWH\"\n >\n Velocity Career Labs Cookie Policy\n </Link>\n .\n </Typography>\n <Typography paragraph>\n In particular, we use Google Analytics. For further details on the way Google uses\n personal information see the link “\n <Link\n sx={styles.link}\n // eslint-disable-next-line max-len\n href=\"https://www.google.com/url?q=https://policies.google.com/technologies/partner-sites&sa=D&source=editors&ust=1678103921266696&usg=AOvVaw2gk6GX4UYXYo1WrV_MZVX8\"\n >\n How Google uses data when you use our partners’ sites or apps\n </Link>\n ”.\n </Typography>\n <Typography paragraph>\n In the event we will transfer Service Data to our third-party suppliers that are located\n outside of the EU/EEA, and if required under applicable law, Velocity will ensure the\n implementation of appropriate safeguards in place to provide adequate level of protection\n to the Service Data in accordance with the applicable data protection laws (including the\n EU General Data Protection Regulation – ‘\n <Box component=\"span\" sx={styles.bold}>\n GDPR\n </Box>\n ’). For example, this may include the use of EU approved Standard Contractual\n Clauses or such other mechanism as have been recognized or approved by the relevant\n authorities from time to time. We will disclose Personal Data to comply with any court\n order, law or legal process, including to respond to any government or regulatory request.\n </Typography>\n <Typography paragraph>\n Finally, if we ever sell Velocity, or participate in a merger or consolidation, Service\n Data may be transferred accordingly.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n FOR HOW LONG WILL VELOCITY KEEP THE SERVICE DATA?\n </Typography>\n <Typography paragraph>\n Velocity will retain Service Data only for as long as needed for the purpose of providing\n you the Service After this period, Velocity will only process Service Data as may be\n required to comply with local legal obligations or to satisfy any legal requirements in\n the event of an actual, threatened or anticipated dispute or claim.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n YOUR DATA PROTECTION RIGHTS\n </Typography>\n <Typography>\n You may be entitled, where provided for under applicable data protection laws and\n regulations, to:\n </Typography>\n <List sx={styles.list}>\n <ListItem sx={styles.listItem}>\n Request access to the Service Data Velocity processes about you: this right entitles you\n to know whether we hold personal data about you and, if we do, to obtain information on\n and a copy of the specific pieces and categories of personal data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Request a rectification of your Service Data: this right entitles you to have your\n Service Data corrected if it is inaccurate or incomplete.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Object to the processing of your Service Data: this right entitles you to request that\n Velocity no longer process your Service Data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n In certain situations, as it may be applied in the applicable data protection law, and\n when you wish to terminate your account, you can request the erasure or deletion of your\n Service Data: this right entitles you to request the erasure or deletion of your Service\n Data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Request the restriction of the processing of your Service Data: this right entitles you\n to request that Velocity processes your Service Data only in limited circumstances.\n </ListItem>\n <ListItem sx={styles.listItem}>\n Request portability of your Service Data: this right entitles you to receive a copy (in\n a portable and, if technically feasible, readily usable format) of your Service Data.\n </ListItem>\n <ListItem sx={styles.listItem}>\n In the event that our processing of your Service Data or part thereof is based on your\n consent, to withdraw at any time your consent, in which case Velocity will cease any\n further processing activities of your Service Data or the relevant part thereof (however\n such withdrawal will not affect the legality of the data processing activities prior to\n the withdrawal). Please note that Velocity may not always be obliged to comply with a\n request of deletion, restriction, objection or data portability. Assessment may be made\n on a case-by-case basis of Velocity’s legal obligations and the exception to such\n rights.\n </ListItem>\n </List>\n <Typography paragraph>\n You also have the right to lodge any complaints you may have regarding Velocity’s\n processing of your Service Data to a supervisory authority. For more information about\n these rights and how to exercise them, please contact the Velocity Privacy Officer via the\n contact details set out above.\n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n HOW DOES VELOCITY SAFEGUARD THE SERVICE DATA\n </Typography>\n <Typography paragraph>\n Velocity utilizes appropriate and reasonable legal, technical and organizational security\n measures, including information technology security and physical security measures, to\n adequately protect the Service Data.\n </Typography>\n <Typography paragraph>\n These measures are appropriate to the risks posed by the processing of the Service Data\n and to the sensitivity of the Service Data and take into account the requirements of\n applicable local law. In addition, the measures are continuously improved in line with the\n development of available security products and services.\n </Typography>\n <Typography paragraph>\n Velocity requires all persons to abide by applicable security policies related to personal\n data when using Velocity systems. \n </Typography>\n <Typography paragraph variant=\"h4\" sx={styles.subtitle}>\n CONTACT US\n </Typography>\n <Typography paragraph>\n If you have questions or comments about this Privacy Policy, please contact us at:{' '}\n <Link href=\"mailto:DataOfficer@VelocityNetwork.Foundation\">\n DataOfficer@VelocityNetwork.Foundation\n </Link>\n .\n </Typography>\n </Box>\n </Box>\n );\n};\n\nconst styles = {\n container: {\n pt: '62px',\n pb: `calc(90px + ${FOOTER_HEIGHT})`,\n ml: '80px',\n maxWidth: '67.71%',\n textAlign: 'justify',\n color: theme.palette.text.primary,\n },\n subtitle: {\n mt: '50px',\n mb: '20px',\n },\n bold: {\n fontWeight: '700',\n },\n list: {\n listStyleType: 'disc',\n marginLeft: '21px',\n padding: 0,\n },\n listItem: {\n display: 'list-item',\n padding: '8px 0 8px 5px',\n textAlign: 'justify',\n lineHeight: 1.5,\n },\n appBar: {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n minHeight: '79px',\n display: 'flex',\n justifyContent: 'center',\n },\n};\n\nexport default PrivacyPolicy;\n","import { useEffect, useState } from 'react';\nimport { useConfig } from '@/utils/ConfigContext.js';\n\n/**\n * useSignatoryResponse hook\n * @param {string} did\n * @param {string} authCode\n * @param {string} response\n * @returns {Object} { isLoading, errorCode }\n */\nexport const useSignatoryResponse = ({ did, authCode, response }) => {\n const config = useConfig();\n\n const [isLoading, setIsLoading] = useState(false);\n const [errorCode, setErrorCode] = useState(null);\n\n useEffect(() => {\n const addResponse = async () => {\n setIsLoading(true);\n setErrorCode(null);\n try {\n const resp = await fetch(\n `${config.registrarApi}/organizations/${did}/signatories/response/${response}?authCode=${authCode}`,\n );\n if (!resp.ok) {\n const data = await resp.json();\n setErrorCode(data?.errorCode || null);\n }\n } catch (e) {\n setErrorCode(e?.errorCode || null);\n } finally {\n setIsLoading(false);\n }\n };\n if (did && authCode && response && config.registrarApi) {\n addResponse();\n }\n }, [did, authCode, response, config.registrarApi]);\n\n return { isLoading, errorCode };\n};\n\nexport default useSignatoryResponse;\n","import { Typography } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nconst SignatoryErrorCodes = {\n AUTH_CODE_MUST_BE_MOST_RECENT: 'auth_code_must_be_most_recent',\n AUTH_CODE_EXPIRED: 'auth_code_expired',\n UNAUTHORIZED: 'unauthorized',\n SIGNATORY_STATUS_ALREADY_COMPLETE: 'signatory_status_already_complete',\n};\n\nexport const Wording = ({ response, errorCode, name }) => {\n if (errorCode === SignatoryErrorCodes.SIGNATORY_STATUS_ALREADY_COMPLETE) {\n return (\n <>\n <Typography variant=\"h1\" textAlign=\"center\" marginBottom={3.5}>\n This process has already been completed\n </Typography>\n <Typography variant=\"pL\" textAlign=\"center\" marginBottom={11}>\n If you have any queries please contact us for assistance.\n </Typography>\n </>\n );\n }\n\n if (\n [\n SignatoryErrorCodes.AUTH_CODE_MUST_BE_MOST_RECENT,\n SignatoryErrorCodes.AUTH_CODE_EXPIRED,\n SignatoryErrorCodes.UNAUTHORIZED,\n ].includes(errorCode)\n ) {\n return (\n <>\n <Typography variant=\"h1\" textAlign=\"center\" marginBottom={3.5}>\n This link has expired.\n </Typography>\n <Typography variant=\"pL\" textAlign=\"center\" marginBottom={11}>\n Please check your inbox for the most recent reminder email and use the updated link\n provided there to complete your action. <br />\n If you can’t find the latest email, please contact us for assistance.\n </Typography>\n </>\n );\n }\n\n return (\n <>\n <Typography variant=\"h1\" textAlign=\"center\" marginBottom={3.5}>\n Thank you!\n </Typography>\n <Typography variant=\"pL\" textAlign=\"center\" marginBottom={11}>\n Your {response === 'approve' ? 'approval' : 'rejection'} regarding the addition of {name} on\n the Velocity Network has been acknowledged.\n </Typography>\n </>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nWording.propTypes = {\n response: PropTypes.string.isRequired,\n errorCode: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n};\n\nexport default Wording;\n","import { useParams, useSearchParams } from 'react-router';\nimport { Box } from '@mui/material';\n\nimport { useGetOne } from 'ra-core';\nimport Loading from '@/components/Loading.jsx';\nimport { dataResources } from '@/utils/remoteDataProvider.js';\nimport { useSignatoryResponse } from './hooks/useSignatoryResponse.js';\nimport { Wording } from './components/Wording.jsx';\n\nconst SignatoryLanding = () => {\n const { response } = useParams();\n const [searchParams] = useSearchParams();\n const did = searchParams.get('did');\n const authCode = searchParams.get('authCode');\n\n const { data: profile, isLoading } = useGetOne(dataResources.VERIFIED_PROFILE, { id: did });\n\n const { isLoading: isSignatoryLoading, errorCode } = useSignatoryResponse({\n did,\n authCode,\n response,\n });\n\n if (isLoading || isSignatoryLoading) {\n return (\n <Box sx={styles.loading} pt={5} pb={10} pr={8} pl={9}>\n <Loading />\n </Box>\n );\n }\n\n return (\n <Box sx={styles.container}>\n <Box sx={styles.content}>\n <img\n src=\"/assets/images/logo.svg\"\n alt=\"Velocity\"\n width={196}\n height={42}\n style={styles.image}\n />\n <Wording response={response} errorCode={errorCode} name={profile.credentialSubject.name} />\n </Box>\n </Box>\n );\n};\n\nconst styles = {\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '100vh',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n transform: 'translateY(-60px)',\n maxWidth: '670px',\n },\n image: {\n marginBottom: 110,\n },\n loading: {\n height: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n};\n\nexport default SignatoryLanding;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useMediaQuery } from '@mui/material';\nimport { SimpleList, List, Datagrid, EmailField, TextField } from 'react-admin';\n\nconst UserList = (props) => {\n const isSmall = useMediaQuery((theme) => theme.breakpoints.down('sm'));\n\n return (\n <List title=\"All users\" {...props}>\n {isSmall ? (\n <SimpleList\n primaryText={(record) => record.name}\n secondaryText={(record) => record.username}\n tertiaryText={(record) => record.email}\n />\n ) : (\n <Datagrid>\n <TextField source=\"id\" />\n <TextField source=\"name\" />\n <TextField source=\"username\" />\n <EmailField source=\"email\" />\n </Datagrid>\n )}\n </List>\n );\n};\n\nexport default UserList;\n"],"names":["styles","ReactRouterLink","Link","theme","List"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verii/components-organizations-registrar",
|
|
3
|
-
"version": "1.0.0-pre.
|
|
3
|
+
"version": "1.0.0-pre.1756224043",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -70,17 +70,18 @@
|
|
|
70
70
|
"build": "vite build",
|
|
71
71
|
"build:watch": "vite build --watch",
|
|
72
72
|
"prepublish": "vite build",
|
|
73
|
-
"test": "
|
|
73
|
+
"test": "node --enable-source-maps --import=global-jsdom/register --import=./setup-tests.js --test --test-concurrency=1 --experimental-test-module-mocks --test-reporter=spec --test-reporter-destination=stdout '**/*.test.js' '**/*.test.jsx'",
|
|
74
|
+
"test:ci": "node --enable-source-maps --import=global-jsdom/register --import=./setup-tests.js --test --test-concurrency=1 --experimental-test-module-mocks --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout --test-reporter=lcov --test-reporter-destination=lcov.info '**/*.test.js' '**/*.test.jsx'",
|
|
74
75
|
"lint": "cross-env NODE_OPTIONS=--experimental-specifier-resolution=node eslint src",
|
|
75
76
|
"lint:fix": "cross-env NODE_OPTIONS=--experimental-specifier-resolution=node eslint src --fix"
|
|
76
77
|
},
|
|
77
78
|
"dependencies": {
|
|
78
79
|
"@auth0/auth0-react": "^2.2.1",
|
|
79
|
-
"@mui/icons-material": "^
|
|
80
|
-
"@mui/material": "^
|
|
80
|
+
"@mui/icons-material": "^7.1.0",
|
|
81
|
+
"@mui/material": "^7.1.0",
|
|
81
82
|
"@react-pdf/renderer": "^4.0.0",
|
|
82
83
|
"autosuggest-highlight": "^3.3.4",
|
|
83
|
-
"lodash": "^4.17.21",
|
|
84
|
+
"lodash-es": "^4.17.21",
|
|
84
85
|
"prop-types": "^15.8.1",
|
|
85
86
|
"ra-core": "^5.5.2",
|
|
86
87
|
"ra-data-local-storage": "^5.5.2",
|
|
@@ -97,11 +98,12 @@
|
|
|
97
98
|
"devDependencies": {
|
|
98
99
|
"@eslint/js": "8.57.1",
|
|
99
100
|
"@swc/core": "1.13.4",
|
|
100
|
-
"@swc/jest": "0.2.39",
|
|
101
101
|
"@testing-library/jest-dom": "6.6.4",
|
|
102
102
|
"@testing-library/react": "16.3.0",
|
|
103
|
+
"@testing-library/user-event": "14.6.1",
|
|
103
104
|
"@types/react": "19.1.10",
|
|
104
105
|
"@types/react-dom": "19.1.7",
|
|
106
|
+
"@verii/tests-helpers": "1.0.0-pre.1756224043",
|
|
105
107
|
"@vitejs/plugin-react-swc": "4.0.1",
|
|
106
108
|
"eslint": "8.57.1",
|
|
107
109
|
"eslint-config-airbnb-base": "14.2.1",
|
|
@@ -114,10 +116,11 @@
|
|
|
114
116
|
"eslint-plugin-prettier": "4.2.5",
|
|
115
117
|
"eslint-plugin-react": "7.37.5",
|
|
116
118
|
"eslint-plugin-react-hooks": "4.6.2",
|
|
119
|
+
"expect": "29.7.0",
|
|
120
|
+
"global-jsdom": "26.0.0",
|
|
117
121
|
"globals": "16.3.0",
|
|
118
122
|
"identity-obj-proxy": "3.0.0",
|
|
119
|
-
"
|
|
120
|
-
"jest-fetch-mock": "3.0.3",
|
|
123
|
+
"jsdom": "26.1.0",
|
|
121
124
|
"vite": "7.1.3",
|
|
122
125
|
"vite-plugin-externalize-deps": "0.9.0",
|
|
123
126
|
"vite-plugin-lib-inject-css": "2.2.2"
|
|
@@ -127,5 +130,5 @@
|
|
|
127
130
|
"lib"
|
|
128
131
|
]
|
|
129
132
|
},
|
|
130
|
-
"gitHead": "
|
|
133
|
+
"gitHead": "21747614a1db416654bba4c198d1c1b883dbe6a5"
|
|
131
134
|
}
|
package/setup-tests.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Velocity Team
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
import { register } from 'node:module';
|
|
18
|
+
import { afterEach } from 'node:test';
|
|
19
|
+
import { cleanup } from '@testing-library/react';
|
|
20
|
+
|
|
21
|
+
register('../../tooling/resolvers/react-admin-resolver.mjs', import.meta.url);
|
|
22
|
+
register('../../tooling/resolvers/alias-resolver.mjs', import.meta.url);
|
|
23
|
+
register('../../tooling/resolvers/css-resolver.mjs', import.meta.url);
|
|
24
|
+
register('../../tooling/resolvers/jsx-loader.mjs', import.meta.url);
|
|
25
|
+
|
|
26
|
+
afterEach(cleanup);
|
|
27
|
+
|
|
28
|
+
// eslint-disable-next-line better-mutation/no-mutation,no-undef
|
|
29
|
+
global.Event = window.Event;
|
|
30
|
+
// eslint-disable-next-line better-mutation/no-mutation,no-undef
|
|
31
|
+
global.CustomEvent = window.CustomEvent;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConsentProvider.DIG3atk-.js","sources":["../../src/components/Dashboard.jsx","../../src/components/Footer.jsx","../../src/components/TermsOfUsePopup.jsx","../../src/components/ConsentProvider.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect } from 'react';\nimport { useRedirect } from 'react-admin';\nimport useSelectedOrganization from '../state/selectedOrganizationState';\nimport Loading from './Loading.jsx';\n\nconst Dashboard = () => {\n const redirect = useRedirect();\n const [did] = useSelectedOrganization();\n\n useEffect(() => {\n if (!did) {\n return;\n }\n redirect('show', 'organizations', did);\n }, [did, redirect]);\n\n return <Loading sx={{ pt: '60px' }} />;\n};\n\nexport default Dashboard;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport List from '@mui/material/List';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemText from '@mui/material/ListItemText';\n\nimport theme, { FOOTER_HEIGHT } from '../theme/theme';\n\nconst Footer = () => {\n return (\n <footer style={styles.footer}>\n <List sx={styles.list} component=\"nav\" aria-label=\"footer navigation\">\n <ListItemButton disabled>\n <ListItemText slotProps={{ primary: { sx: styles.listText } }} primary=\"CONTACT US\" />\n </ListItemButton>\n <ListItemButton\n onClick={() => window.open(`${window.location.origin}/terms-and-conditions`, '_blank')}\n >\n <ListItemText slotProps={{ primary: { sx: styles.listText } }} primary=\"TERMS OF USE\" />\n </ListItemButton>\n <ListItemButton\n onClick={() => window.open(`${window.location.origin}/privacy-policy`, '_blank')}\n >\n <ListItemText slotProps={{ primary: { sx: styles.listText } }} primary=\"PRIVACY POLICY\" />\n </ListItemButton>\n </List>\n <div style={styles.text}>\n All rights reserved {new Date().getFullYear()}\n <img\n src=\"/assets/images/logo.svg\"\n alt=\"Velocity\"\n width={98}\n height={20}\n style={styles.icon}\n />\n </div>\n </footer>\n );\n};\n\nexport default Footer;\n\nconst styles = {\n footer: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 100,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: FOOTER_HEIGHT,\n paddingRight: 10,\n backgroundColor: theme.palette.background.default,\n borderTop: `1px solid ${theme.palette.divider.main}`,\n },\n list: {\n display: 'flex',\n color: theme.palette.secondary.light,\n },\n listText: {\n fontWeight: 600,\n fontSize: '12px',\n lineHeight: '16px',\n letterSpacing: '0.5px',\n fontFamily: theme.typography.fontFamily,\n },\n text: {\n fontWeight: 300,\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '0.1px',\n color: theme.palette.secondary.light,\n fontFamily: theme.typography.fontFamily,\n },\n icon: {\n verticalAlign: 'middle',\n color: theme.palette.secondary.light,\n paddingLeft: 30,\n filter:\n 'invert(68%) sepia(13%) saturate(102%) hue-rotate(185deg) brightness(89%) contrast(87%)', // filter for #989A9F\n },\n};\n","/*\n * Copyright 2025 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport PropTypes from 'prop-types';\nimport { Button, Typography, Stack, Box } from '@mui/material';\nimport { Link } from 'react-router';\n\nimport { Download } from '@mui/icons-material';\nimport Popup from './common/Popup.jsx';\nimport theme from '../theme/theme';\n\nconst TermsOfUsePopup = ({ onClose, isOpen, onProceed, title, onDownload }) => {\n return (\n <Popup title={title} onClose={onClose} isOpen={isOpen} titleStyles={sx.title}>\n <Stack justifyContent=\"center\" pt=\"8px\">\n <Typography alignSelf=\"center\">\n By clicking PROCEED you agree to the{' '}\n <Link target=\"_blank\" to=\"/terms-and-conditions\" role=\"link\" style={sx.link}>\n terms of use\n </Link>\n </Typography>\n <Box sx={sx.box}>\n <Button onClick={onProceed} variant=\"outlined\" sx={[sx.button, sx.proceed]} autoFocus>\n Proceed\n </Button>\n <Button onClick={onDownload} variant=\"outlined\" sx={sx.button} endIcon={<Download />}>\n Download PDF\n </Button>\n </Box>\n </Stack>\n </Popup>\n );\n};\n\nconst sx = {\n button: {\n width: 'fit-content',\n alignSelf: 'center',\n px: 4,\n py: 1,\n mt: '40px',\n mr: 2,\n '&:last-child': {\n mr: 0,\n },\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.main,\n '&:hover': {\n borderColor: theme.palette.primary.main,\n },\n },\n box: {\n display: 'flex',\n justifyContent: 'center',\n },\n link: { color: theme.palette.primary.main },\n title: { textAlign: 'center' },\n proceed: {\n color: theme.palette.text.primary,\n borderColor: theme.palette.secondary.light,\n '&:hover': {\n borderColor: theme.palette.secondary.light,\n },\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nTermsOfUsePopup.propTypes = {\n onClose: PropTypes.func,\n onProceed: PropTypes.func,\n isOpen: PropTypes.bool,\n title: PropTypes.string,\n onDownload: PropTypes.func,\n};\n\nexport default TermsOfUsePopup;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { pdf } from '@react-pdf/renderer';\n\nimport { dataResources } from '../utils/remoteDataProvider';\nimport { parseJwt } from '../utils/index.jsx';\nimport { TERMS_AND_CONDITIONS_VERSION } from '../pages/TermsAndConditions.jsx';\nimport TermsAndConditionsPdf from '../pages/TermsAndConditionsPdf.jsx';\nimport TermsOfUsePopup from './TermsOfUsePopup.jsx';\nimport Loading from './Loading.jsx';\nimport { useAuth } from '../utils/auth/AuthContext';\nimport { useConfig } from '../utils/ConfigContext';\n\nconst logoutErrors = ['Unauthorized', 'missing_refresh_token', 'invalid_grant'];\n\nconst ConsentProvider = ({ children }) => {\n const [agreedVersion, setAgreedVersion] = useState(null);\n const [isShouldAgreeWithNewVersion, setIsShouldAgreeWithNewVersion] = useState(false);\n const [isNewUser, setIsNewUser] = useState(false);\n const [isNewUserHasScope, setIsNewUserHasScope] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const { logout, getAccessToken } = useAuth();\n const config = useConfig();\n\n useEffect(() => {\n const checkIfUserScope = (token) => {\n const tokenDecoded = parseJwt(token);\n return tokenDecoded.scope.includes('read:organizations');\n };\n const handleNewUser = (token) => {\n const newUserScope = checkIfUserScope(token);\n setIsNewUser(true);\n setAgreedVersion('');\n setIsShouldAgreeWithNewVersion(newUserScope);\n setIsNewUserHasScope(newUserScope);\n setIsLoading(false);\n };\n const handleExistingUser = (data) => {\n const sortedConsents = [...data].sort(\n (consent1, consent2) => new Date(consent2.version) - new Date(consent1.version),\n );\n const lastAgreedVersion = sortedConsents[0].version;\n setAgreedVersion(lastAgreedVersion);\n\n if (lastAgreedVersion < TERMS_AND_CONDITIONS_VERSION) {\n setIsShouldAgreeWithNewVersion(true);\n }\n };\n\n const handleConsentError = (e) => {\n if (e.error && logoutErrors.includes(e.error)) {\n logout({ logoutParams: { returnTo: window.location.origin } });\n }\n };\n\n (async () => {\n try {\n const token = await getAccessToken();\n setIsLoading(true);\n const response = await fetch(`${config.registrarApi}/${dataResources.CONSENTS}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${token}`,\n },\n });\n const data = await response.json();\n if (data.error) {\n handleConsentError(data);\n } else if (!data || data.length === 0) {\n handleNewUser(token);\n } else {\n handleExistingUser(data);\n }\n\n setIsLoading(false);\n } catch (e) {\n handleConsentError(e);\n setIsLoading(false);\n setIsShouldAgreeWithNewVersion(false); // BE response 404, when `!consents.length`\n }\n })();\n }, [getAccessToken, logout, config.registrarApi, config]);\n\n const onAgreeWithNewVersion = async () => {\n try {\n const token = await getAccessToken();\n await fetch(`${config.registrarApi}/${dataResources.CONSENTS}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${token}`,\n },\n body: JSON.stringify({\n version: TERMS_AND_CONDITIONS_VERSION,\n }),\n });\n setAgreedVersion(TERMS_AND_CONDITIONS_VERSION);\n setIsShouldAgreeWithNewVersion(false);\n } catch (e) {\n console.error('set consent', e);\n }\n };\n\n const skipTerms = useMemo(() => {\n const newUserWithScope = isNewUser ? isNewUserHasScope : true;\n return (\n !isLoading && isShouldAgreeWithNewVersion !== true && (agreedVersion || !newUserWithScope)\n );\n }, [isNewUser, isNewUserHasScope, isLoading, isShouldAgreeWithNewVersion, agreedVersion]);\n\n const downloadPdf = useCallback(async () => {\n const blob = await pdf(<TermsAndConditionsPdf />).toBlob();\n const link = document.createElement('a');\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', 'Terms and Conditions');\n document.body.append(link);\n\n link.click();\n link.remove();\n }, []);\n return (\n <>\n {skipTerms && children}\n {isLoading && <Loading sx={{ pt: '60px' }} />}\n <TermsOfUsePopup\n isOpen={isShouldAgreeWithNewVersion}\n onClose={() => {\n logout();\n }}\n onProceed={onAgreeWithNewVersion}\n title={isNewUser ? 'Terms of use' : 'The terms of use were updated'}\n onDownload={downloadPdf}\n />\n </>\n );\n};\n\nexport default ConsentProvider;\n\n// eslint-disable-next-line better-mutation/no-mutation\nConsentProvider.propTypes = {\n children: PropTypes.node,\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConsentProvider.DTG51XMy.js","sources":["../../src/components/Dashboard.jsx","../../src/components/Footer.jsx","../../src/components/TermsOfUsePopup.jsx","../../src/components/ConsentProvider.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect } from 'react';\nimport { useRedirect } from 'react-admin';\nimport useSelectedOrganization from '../state/selectedOrganizationState';\nimport Loading from './Loading.jsx';\n\nconst Dashboard = () => {\n const redirect = useRedirect();\n const [did] = useSelectedOrganization();\n\n useEffect(() => {\n if (!did) {\n return;\n }\n redirect('show', 'organizations', did);\n }, [did, redirect]);\n\n return <Loading sx={{ pt: '60px' }} />;\n};\n\nexport default Dashboard;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport List from '@mui/material/List';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemText from '@mui/material/ListItemText';\n\nimport theme, { FOOTER_HEIGHT } from '../theme/theme';\n\nconst Footer = () => {\n return (\n <footer style={styles.footer}>\n <List sx={styles.list} component=\"nav\" aria-label=\"footer navigation\">\n <ListItemButton disabled>\n <ListItemText slotProps={{ primary: { sx: styles.listText } }} primary=\"CONTACT US\" />\n </ListItemButton>\n <ListItemButton\n onClick={() => window.open(`${window.location.origin}/terms-and-conditions`, '_blank')}\n >\n <ListItemText slotProps={{ primary: { sx: styles.listText } }} primary=\"TERMS OF USE\" />\n </ListItemButton>\n <ListItemButton\n onClick={() => window.open(`${window.location.origin}/privacy-policy`, '_blank')}\n >\n <ListItemText slotProps={{ primary: { sx: styles.listText } }} primary=\"PRIVACY POLICY\" />\n </ListItemButton>\n </List>\n <div style={styles.text}>\n All rights reserved {new Date().getFullYear()}\n <img\n src=\"/assets/images/logo.svg\"\n alt=\"Velocity\"\n width={98}\n height={20}\n style={styles.icon}\n />\n </div>\n </footer>\n );\n};\n\nexport default Footer;\n\nconst styles = {\n footer: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 100,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n height: FOOTER_HEIGHT,\n paddingRight: 10,\n backgroundColor: theme.palette.background.default,\n borderTop: `1px solid ${theme.palette.divider.main}`,\n },\n list: {\n display: 'flex',\n color: theme.palette.secondary.light,\n },\n listText: {\n fontWeight: 600,\n fontSize: '12px',\n lineHeight: '16px',\n letterSpacing: '0.5px',\n fontFamily: theme.typography.fontFamily,\n },\n text: {\n fontWeight: 300,\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '0.1px',\n color: theme.palette.secondary.light,\n fontFamily: theme.typography.fontFamily,\n },\n icon: {\n verticalAlign: 'middle',\n color: theme.palette.secondary.light,\n paddingLeft: 30,\n filter:\n 'invert(68%) sepia(13%) saturate(102%) hue-rotate(185deg) brightness(89%) contrast(87%)', // filter for #989A9F\n },\n};\n","/*\n * Copyright 2025 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport PropTypes from 'prop-types';\nimport { Button, Typography, Stack, Box } from '@mui/material';\nimport { Link } from 'react-router';\n\nimport { Download } from '@mui/icons-material';\nimport Popup from './common/Popup.jsx';\nimport theme from '../theme/theme';\n\nconst TermsOfUsePopup = ({ onClose, isOpen, onProceed, title, onDownload }) => {\n return (\n <Popup title={title} onClose={onClose} isOpen={isOpen} titleStyles={sx.title}>\n <Stack justifyContent=\"center\" pt=\"8px\">\n <Typography alignSelf=\"center\">\n By clicking PROCEED you agree to the{' '}\n <Link target=\"_blank\" to=\"/terms-and-conditions\" role=\"link\" style={sx.link}>\n terms of use\n </Link>\n </Typography>\n <Box sx={sx.box}>\n <Button onClick={onProceed} variant=\"outlined\" sx={[sx.button, sx.proceed]} autoFocus>\n Proceed\n </Button>\n <Button onClick={onDownload} variant=\"outlined\" sx={sx.button} endIcon={<Download />}>\n Download PDF\n </Button>\n </Box>\n </Stack>\n </Popup>\n );\n};\n\nconst sx = {\n button: {\n width: 'fit-content',\n alignSelf: 'center',\n px: 4,\n py: 1,\n mt: '40px',\n mr: 2,\n '&:last-child': {\n mr: 0,\n },\n color: theme.palette.primary.main,\n borderColor: theme.palette.primary.main,\n '&:hover': {\n borderColor: theme.palette.primary.main,\n },\n },\n box: {\n display: 'flex',\n justifyContent: 'center',\n },\n link: { color: theme.palette.primary.main },\n title: { textAlign: 'center' },\n proceed: {\n color: theme.palette.text.primary,\n borderColor: theme.palette.secondary.light,\n '&:hover': {\n borderColor: theme.palette.secondary.light,\n },\n },\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nTermsOfUsePopup.propTypes = {\n onClose: PropTypes.func,\n onProceed: PropTypes.func,\n isOpen: PropTypes.bool,\n title: PropTypes.string,\n onDownload: PropTypes.func,\n};\n\nexport default TermsOfUsePopup;\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { pdf } from '@react-pdf/renderer';\n\nimport { dataResources } from '../utils/remoteDataProvider';\nimport { parseJwt } from '../utils/index.jsx';\nimport { TERMS_AND_CONDITIONS_VERSION } from '../pages/TermsAndConditions.jsx';\nimport TermsAndConditionsPdf from '../pages/TermsAndConditionsPdf.jsx';\nimport TermsOfUsePopup from './TermsOfUsePopup.jsx';\nimport Loading from './Loading.jsx';\nimport { useAuth } from '../utils/auth/AuthContext';\nimport { useConfig } from '../utils/ConfigContext';\n\nconst logoutErrors = ['Unauthorized', 'missing_refresh_token', 'invalid_grant'];\n\nconst ConsentProvider = ({ children }) => {\n const [agreedVersion, setAgreedVersion] = useState(null);\n const [isShouldAgreeWithNewVersion, setIsShouldAgreeWithNewVersion] = useState(false);\n const [isNewUser, setIsNewUser] = useState(false);\n const [isNewUserHasScope, setIsNewUserHasScope] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const { logout, getAccessToken } = useAuth();\n const config = useConfig();\n\n useEffect(() => {\n const checkIfUserScope = (token) => {\n const tokenDecoded = parseJwt(token);\n return tokenDecoded.scope.includes('read:organizations');\n };\n const handleNewUser = (token) => {\n const newUserScope = checkIfUserScope(token);\n setIsNewUser(true);\n setAgreedVersion('');\n setIsShouldAgreeWithNewVersion(newUserScope);\n setIsNewUserHasScope(newUserScope);\n setIsLoading(false);\n };\n const handleExistingUser = (data) => {\n const sortedConsents = [...data].sort(\n (consent1, consent2) => new Date(consent2.version) - new Date(consent1.version),\n );\n const lastAgreedVersion = sortedConsents[0].version;\n setAgreedVersion(lastAgreedVersion);\n\n if (lastAgreedVersion < TERMS_AND_CONDITIONS_VERSION) {\n setIsShouldAgreeWithNewVersion(true);\n }\n };\n\n const handleConsentError = (e) => {\n if (e.error && logoutErrors.includes(e.error)) {\n logout({ logoutParams: { returnTo: window.location.origin } });\n }\n };\n\n (async () => {\n try {\n const token = await getAccessToken();\n setIsLoading(true);\n const response = await fetch(`${config.registrarApi}/${dataResources.CONSENTS}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${token}`,\n },\n });\n const data = await response.json();\n if (data.error) {\n handleConsentError(data);\n } else if (!data || data.length === 0) {\n handleNewUser(token);\n } else {\n handleExistingUser(data);\n }\n\n setIsLoading(false);\n } catch (e) {\n handleConsentError(e);\n setIsLoading(false);\n setIsShouldAgreeWithNewVersion(false); // BE response 404, when `!consents.length`\n }\n })();\n }, [getAccessToken, logout, config.registrarApi, config]);\n\n const onAgreeWithNewVersion = async () => {\n try {\n const token = await getAccessToken();\n await fetch(`${config.registrarApi}/${dataResources.CONSENTS}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${token}`,\n },\n body: JSON.stringify({\n version: TERMS_AND_CONDITIONS_VERSION,\n }),\n });\n setAgreedVersion(TERMS_AND_CONDITIONS_VERSION);\n setIsShouldAgreeWithNewVersion(false);\n } catch (e) {\n console.error('set consent', e);\n }\n };\n\n const skipTerms = useMemo(() => {\n const newUserWithScope = isNewUser ? isNewUserHasScope : true;\n return (\n !isLoading && isShouldAgreeWithNewVersion !== true && (agreedVersion || !newUserWithScope)\n );\n }, [isNewUser, isNewUserHasScope, isLoading, isShouldAgreeWithNewVersion, agreedVersion]);\n\n const downloadPdf = useCallback(async () => {\n const blob = await pdf(<TermsAndConditionsPdf />).toBlob();\n const link = document.createElement('a');\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', 'Terms and Conditions');\n document.body.append(link);\n\n link.click();\n link.remove();\n }, []);\n return (\n <>\n {skipTerms && children}\n {isLoading && <Loading sx={{ pt: '60px' }} />}\n <TermsOfUsePopup\n isOpen={isShouldAgreeWithNewVersion}\n onClose={() => {\n logout();\n }}\n onProceed={onAgreeWithNewVersion}\n title={isNewUser ? 'Terms of use' : 'The terms of use were updated'}\n onDownload={downloadPdf}\n />\n </>\n );\n};\n\nexport default ConsentProvider;\n\n// eslint-disable-next-line better-mutation/no-mutation\nConsentProvider.propTypes = {\n children: PropTypes.node,\n};\n"],"names":["useRedirect","useSelectedOrganization","useEffect","Loading","jsxs","jsx","FOOTER_HEIGHT","theme","Popup","Stack","Typography","Link","Box","Button","Download","useState","useAuth","useConfig","parseJwt","TERMS_AND_CONDITIONS_VERSION","dataResources","useMemo","useCallback","pdf","TermsAndConditionsPdf","Fragment"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrganization.A11-a_8R.js","sources":["../../src/components/organizations/CreateInvitationForOrganization.jsx","../../src/components/organizations/CreateOrganization.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Button, Stack, Tooltip, Typography } from '@mui/material';\nimport { AutocompleteInput, Form, TextInput, FormDataConsumer, useDataProvider } from 'react-admin';\nimport { useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { WEBSITE_HINT, SUPPORT_EMAIL_HINT, TECHNICAL_EMAIL_HINT } from '../../utils/index.jsx';\nimport {\n validateEmail,\n validateWebsite,\n validateName,\n validateWebsiteStrict,\n} from './CreateOrganization.utils';\nimport OrganizationSubmitButton from './OrganisationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { dataResources } from '../../utils/remoteDataProvider';\n\nconst CreateInvitationForOrganization = ({ onSubmit, countryCodes, onCancel, defaultValues }) => {\n const dataProvider = useDataProvider();\n\n const timeout = useRef(null);\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const inputNormalized = value.replace(/\\s\\s+/g, ' ').trim().toLowerCase();\n const { data: searchedProfiles } = await dataProvider.getList(\n dataResources.SEARCH_PROFILES,\n {\n search: inputNormalized,\n },\n );\n if (searchedProfiles?.some((org) => org.name.toLowerCase() === inputNormalized)) {\n resolve({ message: 'Organization already exists' });\n } else {\n resolve(undefined);\n }\n }, 500);\n });\n };\n\n const orgNamevalidation = [...validateName, debouncedValidation];\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box>\n <Typography variant=\"h1\" mb={2}>\n Invite Organization\n </Typography>\n <Typography mb={3}>\n To invite an organization to join Velocity Network™, fill in that organization's\n information below.\n </Typography>\n\n <Form onSubmit={handleSubmit} noValidate mode=\"onChange\" defaultValues={defaultValues}>\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={orgNamevalidation}\n pb={1}\n />\n {/* Uncomment when the flow is ready */}\n {/* <AutoCompleteOrganizationName defaultValue={defaultValues?.org} /> */}\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <CustomImageInput\n label={false}\n labelText=\"\"\n editMode\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '200px' }}\n addTo=\"\"\n isRequired={false}\n />\n </Stack>\n <TextInput fullWidth multiline label=\"Short Description\" source=\"description\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Website\" source=\"website\" validate={validateWebsite} />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <TextInput fullWidth label=\"Address\" source=\"physicalAddress.line1\" />\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n />\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={validateWebsiteStrict}\n />\n <LinkedInRegistrationInput formData={formData} source=\"registrationNumbers\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <AuthorityRegistrationNumbersInput orientation=\"vertical\" isRequired={false} />\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={[sxStyles.button, sxStyles.cancelButton]}\n onClick={onCancel}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n styles={sxStyles.button}\n title=\"Next\"\n endIcon={<KeyboardArrowRightIcon />}\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateInvitationForOrganization.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n};\n\nexport default CreateInvitationForOrganization;\n\nconst sxStyles = {\n section: {\n display: 'block',\n pt: 1,\n pb: '12px',\n fontWeight: 500,\n },\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n cancelButton: { marginRight: '20px' },\n fullWidth: { width: '100%' },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Stack, Tooltip, Typography, Button } from '@mui/material';\nimport Grid from '@mui/material/Grid2';\nimport {\n AutocompleteInput,\n Form,\n maxLength,\n required,\n TextInput,\n FormDataConsumer,\n} from 'react-admin';\nimport { useCallback } from 'react';\nimport InfoIcon from '@mui/icons-material/Info';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router';\nimport { FOOTER_HEIGHT } from '../../theme/theme';\nimport {\n validateEmail,\n validateName,\n validateWebsite,\n validateWebsiteStrict,\n} from './CreateOrganization.utils';\nimport OrganizationSubmitButton from './OrganisationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SUPPORT_EMAIL_HINT,\n TECHNICAL_EMAIL_HINT,\n WEBSITE_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext';\n\nconst CreateOrganization = ({\n children,\n title,\n subTitle,\n buttonTitle,\n onSubmit,\n defaultValues,\n countryCodes,\n isLoading,\n hasOrganisations,\n userData,\n}) => {\n const { logout } = useAuth();\n const navigate = useNavigate();\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box sx={sxStyles.root}>\n <Stack sx={sxStyles.content}>\n <Typography variant=\"h1\" mb={2}>\n {title}\n </Typography>\n <Typography variant=\"pl\" mb={6.5} textAlign=\"center\">\n {subTitle}\n </Typography>\n <Form defaultValues={defaultValues} onSubmit={handleSubmit} noValidate mode=\"all\">\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <Grid container spacing={4} rowSpacing={1}>\n <Grid size={{ xs: 6 }}>\n <Stack container flex={1} flexDirection=\"column\">\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={validateName}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Website\"\n source=\"website\"\n validate={[required(), ...validateWebsiteStrict]}\n />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Address\"\n source=\"physicalAddress.line1\"\n validate={[required(), maxLength(1024)]}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n validate={required()}\n />\n </Grid>\n </Stack>\n </Grid>\n\n <Grid size={{ xs: 6 }} pb={1}>\n <CustomImageInput\n label={false}\n editMode={!defaultValues.logo}\n source=\"logo\"\n imgSrc={defaultValues?.logo}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={[...validateWebsite, required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <LinkedInRegistrationInput formData={{ ...formData, ...defaultValues }} />\n </Grid>\n\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <AuthorityRegistrationNumbersInput\n source=\"registrationNumbers\"\n orientation=\"horizontal\"\n />\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n multiline\n label=\"Short Description\"\n placeholder=\"Description (a boilerplate for other Network participants to read about the organization)\"\n source=\"description\"\n validate={required()}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Administrator’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.givenName : ''}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.familyName : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"adminTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n defaultValue={userData ? userData.email : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"signatoryEmail\"\n validate={[...validateEmail, required()]}\n />\n <Box mt={2}>\n <Tooltip title={SIGNATORY_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n </Grid>\n {children}\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"large\"\n sx={sxStyles.cancelButton}\n onClick={() => (hasOrganisations ? navigate('/') : logout())}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n title={buttonTitle}\n isLoading={isLoading}\n styles={sxStyles.saveButton}\n enabled\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Stack>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateOrganization.propTypes = {\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string.isRequired,\n children: PropTypes.node,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array,\n isLoading: PropTypes.bool.isRequired,\n hasOrganisations: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n userData: PropTypes.object,\n};\n\nexport default CreateOrganization;\n\nconst sxStyles = {\n root: {\n pt: 7.5,\n pl: 1,\n pb: `calc(35px + ${FOOTER_HEIGHT})`,\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center',\n },\n content: {\n maxWidth: 886,\n alignItems: 'center',\n },\n saveButton: {\n minWidth: 160,\n },\n cancelButton: {\n minWidth: 160,\n mr: 2,\n },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n fullWidth: {\n width: '100%',\n },\n};\n"],"names":["useDataProvider","useRef","dataResources","validateName","useCallback","Box","jsx","Typography","Form","FormDataConsumer","jsxs","Fragment","TextInput","Stack","CustomImageInput","validateWebsite","Tooltip","WEBSITE_HINT","AutocompleteInput","validateWebsiteStrict","LinkedInRegistrationInput","validateEmail","SUPPORT_EMAIL_HINT","TECHNICAL_EMAIL_HINT","AuthorityRegistrationNumbersInput","Button","sxStyles","OrganizationSubmitButton","useAuth","useNavigate","required","maxLength","ADMINISTRATOR_DETAILS_HINT","SIGNATORY_DETAILS_HINT","SIGNATORY_EMAIL_HINT","FOOTER_HEIGHT"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrganization.C2Kf44eJ.js","sources":["../../src/components/organizations/CreateInvitationForOrganization.jsx","../../src/components/organizations/CreateOrganization.jsx"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Button, Stack, Tooltip, Typography } from '@mui/material';\nimport { AutocompleteInput, Form, TextInput, FormDataConsumer, useDataProvider } from 'react-admin';\nimport { useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\nimport InfoIcon from '@mui/icons-material/Info';\n\nimport { WEBSITE_HINT, SUPPORT_EMAIL_HINT, TECHNICAL_EMAIL_HINT } from '../../utils/index.jsx';\nimport {\n validateEmail,\n validateWebsite,\n validateName,\n validateWebsiteStrict,\n} from './CreateOrganization.utils';\nimport OrganizationSubmitButton from './OrganisationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { dataResources } from '../../utils/remoteDataProvider';\n\nconst CreateInvitationForOrganization = ({ onSubmit, countryCodes, onCancel, defaultValues }) => {\n const dataProvider = useDataProvider();\n\n const timeout = useRef(null);\n\n const debouncedValidation = async (value) => {\n clearTimeout(timeout.current);\n\n if (!value) {\n return undefined;\n }\n\n return new Promise((resolve) => {\n // eslint-disable-next-line better-mutation/no-mutation\n timeout.current = setTimeout(async () => {\n const inputNormalized = value.replace(/\\s\\s+/g, ' ').trim().toLowerCase();\n const { data: searchedProfiles } = await dataProvider.getList(\n dataResources.SEARCH_PROFILES,\n {\n search: inputNormalized,\n },\n );\n if (searchedProfiles?.some((org) => org.name.toLowerCase() === inputNormalized)) {\n resolve({ message: 'Organization already exists' });\n } else {\n resolve(undefined);\n }\n }, 500);\n });\n };\n\n const orgNamevalidation = [...validateName, debouncedValidation];\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box>\n <Typography variant=\"h1\" mb={2}>\n Invite Organization\n </Typography>\n <Typography mb={3}>\n To invite an organization to join Velocity Network™, fill in that organization's\n information below.\n </Typography>\n\n <Form onSubmit={handleSubmit} noValidate mode=\"onChange\" defaultValues={defaultValues}>\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={orgNamevalidation}\n pb={1}\n />\n {/* Uncomment when the flow is ready */}\n {/* <AutoCompleteOrganizationName defaultValue={defaultValues?.org} /> */}\n <Stack flexDirection=\"row\" gap={1.75} mb={3.5} mt={1}>\n <CustomImageInput\n label={false}\n labelText=\"\"\n editMode\n orientation=\"vertical\"\n style={{ flexDirection: 'row', minHeight: '200px' }}\n addTo=\"\"\n isRequired={false}\n />\n </Stack>\n <TextInput fullWidth multiline label=\"Short Description\" source=\"description\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput fullWidth label=\"Website\" source=\"website\" validate={validateWebsite} />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <TextInput fullWidth label=\"Address\" source=\"physicalAddress.line1\" />\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n />\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={validateWebsiteStrict}\n />\n <LinkedInRegistrationInput formData={formData} source=\"registrationNumbers\" />\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={validateEmail}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n <AuthorityRegistrationNumbersInput orientation=\"vertical\" isRequired={false} />\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n sx={[sxStyles.button, sxStyles.cancelButton]}\n onClick={onCancel}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n styles={sxStyles.button}\n title=\"Next\"\n endIcon={<KeyboardArrowRightIcon />}\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateInvitationForOrganization.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n};\n\nexport default CreateInvitationForOrganization;\n\nconst sxStyles = {\n section: {\n display: 'block',\n pt: 1,\n pb: '12px',\n fontWeight: 500,\n },\n button: { px: 4, py: 1, fontSize: '16px', width: '160px' },\n cancelButton: { marginRight: '20px' },\n fullWidth: { width: '100%' },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n};\n","/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Stack, Tooltip, Typography, Button } from '@mui/material';\nimport Grid from '@mui/material/Grid2';\nimport {\n AutocompleteInput,\n Form,\n maxLength,\n required,\n TextInput,\n FormDataConsumer,\n} from 'react-admin';\nimport { useCallback } from 'react';\nimport InfoIcon from '@mui/icons-material/Info';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router';\nimport { FOOTER_HEIGHT } from '../../theme/theme';\nimport {\n validateEmail,\n validateName,\n validateWebsite,\n validateWebsiteStrict,\n} from './CreateOrganization.utils';\nimport OrganizationSubmitButton from './OrganisationSubmitButton.jsx';\nimport CustomImageInput from '../common/CustomImageInput/index.jsx';\nimport {\n ADMINISTRATOR_DETAILS_HINT,\n SIGNATORY_DETAILS_HINT,\n SUPPORT_EMAIL_HINT,\n TECHNICAL_EMAIL_HINT,\n WEBSITE_HINT,\n SIGNATORY_EMAIL_HINT,\n} from '../../utils/index.jsx';\nimport AuthorityRegistrationNumbersInput from '../../pages/organizations/components/AuthorityRegistrationInput.jsx';\nimport { LinkedInRegistrationInput } from '../../pages/organizations/components/LinkedInRegistrationInput.jsx';\nimport { useAuth } from '../../utils/auth/AuthContext';\n\nconst CreateOrganization = ({\n children,\n title,\n subTitle,\n buttonTitle,\n onSubmit,\n defaultValues,\n countryCodes,\n isLoading,\n hasOrganisations,\n userData,\n}) => {\n const { logout } = useAuth();\n const navigate = useNavigate();\n\n const handleSubmit = useCallback(\n (data) => {\n onSubmit(data);\n },\n [onSubmit],\n );\n\n return (\n <Box sx={sxStyles.root}>\n <Stack sx={sxStyles.content}>\n <Typography variant=\"h1\" mb={2}>\n {title}\n </Typography>\n <Typography variant=\"pl\" mb={6.5} textAlign=\"center\">\n {subTitle}\n </Typography>\n <Form defaultValues={defaultValues} onSubmit={handleSubmit} noValidate mode=\"all\">\n <FormDataConsumer>\n {({ formData }) => (\n <>\n <Grid container spacing={4} rowSpacing={1}>\n <Grid size={{ xs: 6 }}>\n <Stack container flex={1} flexDirection=\"column\">\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Legal Name\"\n source=\"name\"\n validate={validateName}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Website\"\n source=\"website\"\n validate={[required(), ...validateWebsiteStrict]}\n />\n <Box mt={2}>\n <Tooltip title={WEBSITE_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n label=\"Address\"\n source=\"physicalAddress.line1\"\n validate={[required(), maxLength(1024)]}\n />\n </Grid>\n <Grid size={{ xs: 12 }}>\n <AutocompleteInput\n label=\"Country\"\n source=\"location.countryCode\"\n choices={countryCodes}\n validate={required()}\n />\n </Grid>\n </Stack>\n </Grid>\n\n <Grid size={{ xs: 6 }} pb={1}>\n <CustomImageInput\n label={false}\n editMode={!defaultValues.logo}\n source=\"logo\"\n imgSrc={defaultValues?.logo}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"LinkedIn Page\"\n source=\"linkedInProfile\"\n validate={[...validateWebsite, required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <LinkedInRegistrationInput formData={{ ...formData, ...defaultValues }} />\n </Grid>\n\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Support Email\"\n source=\"contactEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={SUPPORT_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Technical Contact Email\"\n source=\"technicalEmail\"\n validate={[required(), ...validateEmail]}\n />\n <Box mt={2}>\n <Tooltip title={TECHNICAL_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <AuthorityRegistrationNumbersInput\n source=\"registrationNumbers\"\n orientation=\"horizontal\"\n />\n <Grid size={{ xs: 12 }}>\n <TextInput\n fullWidth\n multiline\n label=\"Short Description\"\n placeholder=\"Description (a boilerplate for other Network participants to read about the organization)\"\n source=\"description\"\n validate={required()}\n />\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Administrator’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={ADMINISTRATOR_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <Typography variant=\"h4\" my={2}>\n Signatory Authority’s Details\n </Typography>\n <Box mt={2.25}>\n <Tooltip title={SIGNATORY_DETAILS_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"adminGivenName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.givenName : ''}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"adminFamilyName\"\n validate={[maxLength(1024), required()]}\n defaultValue={userData ? userData.familyName : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"First name\"\n source=\"signatoryGivenName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Last name\"\n source=\"signatoryFamilyName\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"adminTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Job Title\"\n source=\"signatoryTitle\"\n validate={[maxLength(1024), required()]}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"adminEmail\"\n validate={[...validateEmail, required()]}\n defaultValue={userData ? userData.email : ''}\n />\n </Stack>\n </Grid>\n <Grid size={{ xs: 6 }}>\n <Stack flexDirection=\"row\" gap={1.75}>\n <TextInput\n fullWidth\n label=\"Email\"\n source=\"signatoryEmail\"\n validate={[...validateEmail, required()]}\n />\n <Box mt={2}>\n <Tooltip title={SIGNATORY_EMAIL_HINT}>\n <InfoIcon color=\"info\" fontSize=\"small\" cursor=\"pointer\" />\n </Tooltip>\n </Box>\n </Stack>\n </Grid>\n </Grid>\n {children}\n <Box display=\"flex\" justifyContent=\"center\" pt={4}>\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n size=\"large\"\n sx={sxStyles.cancelButton}\n onClick={() => (hasOrganisations ? navigate('/') : logout())}\n >\n Cancel\n </Button>\n <OrganizationSubmitButton\n title={buttonTitle}\n isLoading={isLoading}\n styles={sxStyles.saveButton}\n enabled\n />\n </Box>\n </>\n )}\n </FormDataConsumer>\n </Form>\n </Stack>\n </Box>\n );\n};\n\n// eslint-disable-next-line better-mutation/no-mutation\nCreateOrganization.propTypes = {\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string.isRequired,\n buttonTitle: PropTypes.string.isRequired,\n children: PropTypes.node,\n onSubmit: PropTypes.func.isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n defaultValues: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n countryCodes: PropTypes.array,\n isLoading: PropTypes.bool.isRequired,\n hasOrganisations: PropTypes.bool,\n // eslint-disable-next-line react/forbid-prop-types\n userData: PropTypes.object,\n};\n\nexport default CreateOrganization;\n\nconst sxStyles = {\n root: {\n pt: 7.5,\n pl: 1,\n pb: `calc(35px + ${FOOTER_HEIGHT})`,\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'center',\n },\n content: {\n maxWidth: 886,\n alignItems: 'center',\n },\n saveButton: {\n minWidth: 160,\n },\n cancelButton: {\n minWidth: 160,\n mr: 2,\n },\n errorMessage: {\n fontSize: '0.75rem',\n color: 'primary.main',\n marginLeft: '1.25em',\n height: '1.75em',\n },\n fullWidth: {\n width: '100%',\n },\n};\n"],"names":["AuthorityRegistrationNumbersInput","sxStyles"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrganization.utils.8cSBFSYF.js","sources":["../../src/components/organizations/CreateOrganization.utils.js"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { email, maxLength, required, regex } from 'react-admin';\nimport {\n validUrlRegexp,\n secureUrlRegexp,\n webSiteRegexp,\n webSiteHttpsRegexp,\n webSiteCleanPathRegexp,\n} from '../../utils/index.jsx';\n\nconst urlValidation = (value) => {\n if (!(value && validUrlRegexp.test(value.trim()))) {\n return 'Please type in a valid URL';\n }\n if (!(value && secureUrlRegexp.test(value.trim()))) {\n return `Invalid service endpoint url '${value}'. https is required`;\n }\n return undefined;\n};\n\nexport const validateWebsite = [\n regex(webSiteRegexp, 'Please type in a valid URL'),\n regex(webSiteHttpsRegexp, 'Https is required'),\n maxLength(1024),\n];\n\nexport const validateWebsiteStrict = [\n ...validateWebsite,\n regex(webSiteCleanPathRegexp, 'Website must not contain a path after domain'),\n];\nexport const validateName = [required(), maxLength(100)];\nexport const validateServiceEndpoint = [urlValidation, maxLength(1024)];\nexport const validateEmail = [email()];\n"],"names":[],"mappings":";;AAyBA,MAAM,gBAAgB,CAAC,UAAU;AAC/B,MAAI,EAAE,SAAS,eAAe,KAAK,MAAM,KAAI,CAAE,IAAI;AACjD,WAAO;AAAA,EACT;AACA,MAAI,EAAE,SAAS,gBAAgB,KAAK,MAAM,KAAI,CAAE,IAAI;AAClD,WAAO,iCAAiC,KAAK;AAAA,EAC/C;AACA,SAAO;AACT;AAEY,MAAC,kBAAkB;AAAA,EAC7B,MAAM,eAAe,4BAA4B;AAAA,EACjD,MAAM,oBAAoB,mBAAmB;AAAA,EAC7C,UAAU,IAAI;AAChB;AAEY,MAAC,wBAAwB;AAAA,EACnC,GAAG;AAAA,EACH,MAAM,wBAAwB,8CAA8C;AAC9E;AACY,MAAC,eAAe,CAAC,YAAY,UAAU,GAAG,CAAC;AAC3C,MAAC,0BAA0B,CAAC,eAAe,UAAU,IAAI,CAAC;AAC1D,MAAC,gBAAgB,CAAC,MAAK,CAAE;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrganization.utils.C5C_r3Zp.js","sources":["../../src/components/organizations/CreateOrganization.utils.js"],"sourcesContent":["/**\n * Copyright 2023 Velocity Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { email, maxLength, required, regex } from 'react-admin';\nimport {\n validUrlRegexp,\n secureUrlRegexp,\n webSiteRegexp,\n webSiteHttpsRegexp,\n webSiteCleanPathRegexp,\n} from '../../utils/index.jsx';\n\nconst urlValidation = (value) => {\n if (!(value && validUrlRegexp.test(value.trim()))) {\n return 'Please type in a valid URL';\n }\n if (!(value && secureUrlRegexp.test(value.trim()))) {\n return `Invalid service endpoint url '${value}'. https is required`;\n }\n return undefined;\n};\n\nexport const validateWebsite = [\n regex(webSiteRegexp, 'Please type in a valid URL'),\n regex(webSiteHttpsRegexp, 'Https is required'),\n maxLength(1024),\n];\n\nexport const validateWebsiteStrict = [\n ...validateWebsite,\n regex(webSiteCleanPathRegexp, 'Website must not contain a path after domain'),\n];\nexport const validateName = [required(), maxLength(100)];\nexport const validateServiceEndpoint = [urlValidation, maxLength(1024)];\nexport const validateEmail = [email()];\n"],"names":["validUrlRegexp","secureUrlRegexp","regex","webSiteRegexp","webSiteHttpsRegexp","maxLength","webSiteCleanPathRegexp","required","email"],"mappings":";;;AAyBA,MAAM,gBAAgB,CAAC,UAAU;AAC/B,MAAI,EAAE,SAASA,qBAAe,KAAK,MAAM,KAAI,CAAE,IAAI;AACjD,WAAO;AAAA,EACT;AACA,MAAI,EAAE,SAASC,sBAAgB,KAAK,MAAM,KAAI,CAAE,IAAI;AAClD,WAAO,iCAAiC,KAAK;AAAA,EAC/C;AACA,SAAO;AACT;AAEY,MAAC,kBAAkB;AAAA,EAC7BC,WAAAA,MAAMC,MAAAA,eAAe,4BAA4B;AAAA,EACjDD,WAAAA,MAAME,MAAAA,oBAAoB,mBAAmB;AAAA,EAC7CC,WAAAA,UAAU,IAAI;AAChB;AAEY,MAAC,wBAAwB;AAAA,EACnC,GAAG;AAAA,EACHH,WAAAA,MAAMI,MAAAA,wBAAwB,8CAA8C;AAC9E;AACY,MAAC,eAAe,CAACC,WAAAA,YAAYF,WAAAA,UAAU,GAAG,CAAC;AAC3C,MAAC,0BAA0B,CAAC,eAAeA,WAAAA,UAAU,IAAI,CAAC;AAC1D,MAAC,gBAAgB,CAACG,WAAAA,MAAK,CAAE;;;;;;"}
|