From c00ffc5c31d729b50302fc5570819c4675aeab4a Mon Sep 17 00:00:00 2001 From: Greg Jordan Date: Fri, 7 Feb 2020 16:47:10 -0500 Subject: [PATCH] [RW-4159][risk=no] Terms of Service UI and cleanup of create-account flow. (#3075) --- ui/app.yaml | 2 +- ui/package.json | 3 +- ui/src/app/components/flex.tsx | 9 +- ui/src/app/pages/app/component.css | 4 + .../account-creation-options.tsx | 3 - .../account-creation-survey.tsx | 85 ++--- .../account-creation-tos.spec.tsx | 90 +++++ .../account-creation/account-creation-tos.tsx | 197 +++++++++++ .../account-creation.spec.tsx | 37 +- .../account-creation/account-creation.tsx | 227 ++++++------- .../app/pages/login/invitation-key.spec.tsx | 9 +- ui/src/app/pages/login/invitation-key.tsx | 32 +- ui/src/app/pages/login/login.tsx | 2 +- ui/src/app/pages/login/sign-in.spec.tsx | 84 ++++- ui/src/app/pages/login/sign-in.tsx | 316 +++++++++++------- ui/src/app/pages/login/signed-out-images.tsx | 15 - ui/src/app/pages/login/test-utils.ts | 31 ++ ui/src/app/pages/signed-in/component.css | 4 + ui/src/app/utils/index.tsx | 41 ++- .../documents/terms of service (draft).pdf | Bin 0 -> 185374 bytes ui/src/styles.css | 21 ++ ui/yarn.lock | 51 ++- 22 files changed, 873 insertions(+), 390 deletions(-) create mode 100644 ui/src/app/pages/login/account-creation/account-creation-tos.spec.tsx create mode 100644 ui/src/app/pages/login/account-creation/account-creation-tos.tsx delete mode 100644 ui/src/app/pages/login/signed-out-images.tsx create mode 100644 ui/src/app/pages/login/test-utils.ts create mode 100644 ui/src/assets/documents/terms of service (draft).pdf diff --git a/ui/app.yaml b/ui/app.yaml index 2aff32c6654..733c305d13f 100644 --- a/ui/app.yaml +++ b/ui/app.yaml @@ -4,7 +4,7 @@ threadsafe: true default_expiration: "2m" handlers: -- url: /(.*\.(css|eot|gz|html|ico|jpg|jpeg|js|map|mp4|png|svg|ttf|woff|woff2)) +- url: /(.*\.(css|eot|gz|html|ico|jpg|jpeg|js|map|mp4|pdf|png|svg|ttf|woff|woff2)) static_files: dist/\1 upload: dist/(.*) secure: always diff --git a/ui/package.json b/ui/package.json index 644df6dad6d..b67067cff77 100644 --- a/ui/package.json +++ b/ui/package.json @@ -124,7 +124,8 @@ "tslib": "^1.9.0", "validate.js": "^0.12.0", "yarn": "^1.21.1", - "zone.js": "0.8.26" + "zone.js": "0.8.26", + "react-pdf": "4.1.0" }, "devDependencies": { "@angular-devkit/build-angular": "~0.11.0", diff --git a/ui/src/app/components/flex.tsx b/ui/src/app/components/flex.tsx index 8b325c5b012..48cd1381c61 100644 --- a/ui/src/app/components/flex.tsx +++ b/ui/src/app/components/flex.tsx @@ -14,17 +14,20 @@ export const flexStyle = reactStyles({ export const FlexRow = (props) => { - return
+ const {style, ...other} = props; + return
{props.children}
; }; - +FlexRow.displayName = 'FlexRow'; export const FlexColumn = (props) => { - return
+ const {style, ...other} = props; + return
{props.children}
; }; +FlexColumn.displayName = 'FlexColumn'; export const FlexRowWrap = (props) => { return diff --git a/ui/src/app/pages/app/component.css b/ui/src/app/pages/app/component.css index 3c6ca324234..76c4037be1b 100644 --- a/ui/src/app/pages/app/component.css +++ b/ui/src/app/pages/app/component.css @@ -103,3 +103,7 @@ button.btn:focus { outline: none; } + +.create-account__degree-select .p-multiselect-header { + display: none; +} diff --git a/ui/src/app/pages/login/account-creation/account-creation-options.tsx b/ui/src/app/pages/login/account-creation/account-creation-options.tsx index d80d36e7528..b115eca532b 100644 --- a/ui/src/app/pages/login/account-creation/account-creation-options.tsx +++ b/ui/src/app/pages/login/account-creation/account-creation-options.tsx @@ -25,9 +25,6 @@ export const AccountCreationOptions = { {label: 'B.A.', value: Degree.BA}, {label: 'B.S.', value: Degree.BS}, {label: 'B.S.N.', value: Degree.BSN}, - // This label can have a space in it when the following issue is resolved: - // https://github.com/primefaces/primereact/issues/1137 - {label: 'None(blank)', value: Degree.NONE}, ], roles: [ {label: `Undergraduate (Bachelor level) student`, value: AcademicRole.UNDERGRADUATE}, diff --git a/ui/src/app/pages/login/account-creation/account-creation-survey.tsx b/ui/src/app/pages/login/account-creation/account-creation-survey.tsx index 2e0eff0513d..c9c64dd40e3 100644 --- a/ui/src/app/pages/login/account-creation/account-creation-survey.tsx +++ b/ui/src/app/pages/login/account-creation/account-creation-survey.tsx @@ -1,30 +1,22 @@ -import {ListPageHeader} from 'app/components/headers'; import * as fp from 'lodash/fp'; import {Dropdown} from 'primereact/dropdown'; import * as React from 'react'; +import * as validate from 'validate.js'; import {Button} from 'app/components/buttons'; import {FlexColumn, FlexRow} from 'app/components/flex'; +import {FormSection} from 'app/components/forms'; +import {ListPageHeader} from 'app/components/headers'; import {CheckBox, RadioButton} from 'app/components/inputs'; -import colors from 'app/styles/colors'; -import { - DataAccessLevel, - Profile, - Race, - SexAtBirth, -} from 'generated/fetch'; -import {Section, TextInputWithLabel} from './account-creation'; - import {TooltipTrigger} from 'app/components/popups'; -import {signedOutImages} from 'app/pages/login/signed-out-images'; -import { - profileApi -} from 'app/services/swagger-fetch-clients'; +import {SpinnerOverlay} from 'app/components/spinners'; +import {profileApi} from 'app/services/swagger-fetch-clients'; +import colors from 'app/styles/colors'; import {toggleIncludes} from 'app/utils'; -import * as validate from 'validate.js'; +import {Profile} from 'generated/fetch'; +import {Section, TextInputWithLabel} from './account-creation'; import {AccountCreationOptions} from './account-creation-options'; - const styles = { checkbox: {height: 17, width: 17, marginTop: '0.15rem'}, checkboxWrapper: {display: 'flex', alignItems: 'flex-start', width: '13rem', marginBottom: '0.5rem'}, @@ -54,8 +46,10 @@ export const DropDownSection = (props) => { export interface AccountCreationSurveyProps { invitationKey: string; + termsOfServiceVersion?: number; profile: Profile; - setProfile: Function; + onComplete: (profile: Profile) => void; + onPreviousClick: (profile: Profile) => void; } export interface AccountCreationState { @@ -68,45 +62,29 @@ export class AccountCreationSurvey extends React.Component { this.setState({profile: savedProfile, creatingAccount: false}); - setProfile(savedProfile, {stepName: 'accountCreationSuccess', backgroundImages: signedOutImages.login}); + onComplete(savedProfile); }).catch(error => { console.log(error); this.setState({creatingAccount: false}); + // TODO: we need to show some user-facing error message when this fails. }); } @@ -129,7 +107,7 @@ export class AccountCreationSurvey extends React.Component
; } } diff --git a/ui/src/app/pages/login/account-creation/account-creation-tos.spec.tsx b/ui/src/app/pages/login/account-creation/account-creation-tos.spec.tsx new file mode 100644 index 00000000000..52d26b4bb40 --- /dev/null +++ b/ui/src/app/pages/login/account-creation/account-creation-tos.spec.tsx @@ -0,0 +1,90 @@ +import {mount, ReactWrapper, shallow, ShallowWrapper} from 'enzyme'; +import * as React from 'react'; +import {Document, Page} from 'react-pdf'; +import AccountCreationTos, {AccountCreationTosProps} from './account-creation-tos'; + +type AnyWrapper = (ShallowWrapper|ReactWrapper); +const getPrivacyCheckbox = (wrapper: AnyWrapper): AnyWrapper => { + return wrapper.find('CheckBox[data-test-id="privacy-statement-check"]'); +}; +const getTosCheckbox = (wrapper: AnyWrapper): AnyWrapper => { + return wrapper.find('CheckBox[data-test-id="terms-of-service-check"]'); +}; +const getNextButton = (wrapper: AnyWrapper ): AnyWrapper => { + return wrapper.find('[data-test-id="next-button"]'); +}; + +let props: AccountCreationTosProps; +const onCompleteSpy = jest.fn(); + +beforeEach(() => { + jest.clearAllMocks(); + props = { + windowSize: {width: 1700, height: 0}, + onComplete: onCompleteSpy, + pdfPath: '/assets/documents/fake-document-path.pdf' + }; +}); + +it('should render', async() => { + const wrapper = mount(); + expect(wrapper.exists()).toBeTruthy(); +}); + +// TODO: this test is really about the PDF rendering, which should be bumped out when we encapsulate +// PDF rendering into its own component. +it('should load PDF pages', async() => { + const wrapper = shallow().shallow(); + + // Initially we should have a document and no pages. + expect(wrapper.find(Document).length).toEqual(1); + expect(wrapper.find(Page).length).toEqual(0); + + // Simulate the PDF document loading and calling the 'onLoadSuccess' prop to indicate we have + // 10 pages in the PDF. + const pdfDocument = wrapper.find(Document); + const onSuccess = pdfDocument.prop('onLoadSuccess') as (data: object) => {}; + onSuccess({numPages: 10}); + + // We should now be rendering a component for each of the pages. + expect(wrapper.find(Page).length).toEqual(10); +}); + +it('should enable checkboxes and next button with user input', async() => { + // Note: since AccountCreationTos is exported as withWindowSize(...), we need to shallow-render + // an extra time to get to the real AccountCreationTos component. + const wrapper = shallow().shallow(); + + expect(getPrivacyCheckbox(wrapper).prop('disabled')).toBeTruthy(); + expect(getTosCheckbox(wrapper).prop('disabled')).toBeTruthy(); + expect(getNextButton(wrapper).prop('disabled')).toBeTruthy(); + + // In the real world, the user can either click "Scroll to bottom" or scroll until the last page + // element is visible, at which point this state variable will be set to true. This behavior + // was extremely difficult to simulate in Jest, and will be better-suited to an end-to-end test. + // + // As a workaround, we manually set the state here to allow us to test the input enablement. + wrapper.setState({hasReadEntireTos: true}); + + expect(getPrivacyCheckbox(wrapper).prop('disabled')).toBeFalsy(); + expect(getTosCheckbox(wrapper).prop('disabled')).toBeFalsy(); + expect(getNextButton(wrapper).prop('disabled')).toBeTruthy(); + + // Now, simulate checking both boxes, which should enable the "next" button. + getPrivacyCheckbox(wrapper).simulate('change', {target: {checked: true}}); + getTosCheckbox(wrapper).simulate('change', {target: {checked: true}}); + + expect(getNextButton(wrapper).prop('disabled')).toBeFalsy(); +}); + +it('should call onComplete when next button is pressed', async() => { + const wrapper = shallow().shallow(); + + wrapper.setState({hasReadEntireTos: true}); + getPrivacyCheckbox(wrapper).simulate('change', {target: {checked: true}}); + getTosCheckbox(wrapper).simulate('change', {target: {checked: true}}); + + getNextButton(wrapper).simulate('click'); + + expect(onCompleteSpy).toHaveBeenCalled(); +}); diff --git a/ui/src/app/pages/login/account-creation/account-creation-tos.tsx b/ui/src/app/pages/login/account-creation/account-creation-tos.tsx new file mode 100644 index 00000000000..c6f840c8400 --- /dev/null +++ b/ui/src/app/pages/login/account-creation/account-creation-tos.tsx @@ -0,0 +1,197 @@ +import {Button} from 'app/components/buttons'; +import {FlexColumn, FlexRow} from 'app/components/flex'; +import {CheckBox} from 'app/components/inputs'; +import {SpinnerOverlay} from 'app/components/spinners'; +import colors from 'app/styles/colors'; +import {reactStyles, withWindowSize} from 'app/utils'; +import * as React from 'react'; +import {Document, Page} from 'react-pdf'; + +const baseCheckboxLabelStyle = { + color: colors.primary, + fontFamily: 'Montserrat', + fontSize: '14px', + fontWeight: 400, + paddingLeft: '0.25rem', + paddingRight: '0.5rem', +}; + +const styles = reactStyles({ + checkbox: { + marginRight: '.31667rem', zoom: '1.5', + }, + checkboxLabel: baseCheckboxLabelStyle, + // We add opacity to make disabled controls even more obvious (classic CSS trick). + disabledCheckboxLabel: { + ...baseCheckboxLabelStyle, + opacity: '0.5', + }, + noticeText: { + fontSize: 14, + fontWeight: 600, + color: colors.primary, + }, +}); + +export interface AccountCreationTosProps { + windowSize: { width: number, height: number }; + // Callback which will be called by this component when the user clicks "Next". + onComplete: () => void; + // Path to the Terms of Service PDF file to be displayed. + pdfPath: string; +} + +interface AccountCreationTosState { + hasReadEntireTos: boolean; + hasAckedPrivacyStatement: boolean; + hasAckedTermsOfService: boolean; + // Whether the PDF document is currently being loaded. A spinner will show while true. + loadingPdf: boolean; + // Once the PDF has been loaded, this value contains the number of pages in the PDF document. + numPages: number; +} + +export const AccountCreationTos = withWindowSize()( + class extends React.Component { + + // Tracks whether this component has created an intersection observer to track the last page + // visibility yet. + hasCreatedIntersectionObserver = false; + // Once the last page has been loaded, this contains a reference to the page's DOM element. + lastPage: HTMLElement; + + constructor(props: AccountCreationTosProps) { + super(props); + this.state = { + hasReadEntireTos: false, + hasAckedPrivacyStatement: false, + hasAckedTermsOfService: false, + loadingPdf: true, + numPages: 0, + }; + } + + /** + * Handles the onRenderSuccess callback from the Page element at the end of the document. + * This sets up the intersection listener which will change state when the user scrolls to the + * end of the document. + */ + private handleLastPageRender() { + if (this.hasCreatedIntersectionObserver) { + return; + } + this.hasCreatedIntersectionObserver = true; + const intersectionCallback: IntersectionObserverCallback = ( + entries: IntersectionObserverEntry[], unusedObserver: IntersectionObserver) => { + for (const entry of entries) { + if (entry.isIntersecting) { + this.setState({hasReadEntireTos: true}); + } + } + }; + const observer = new IntersectionObserver(intersectionCallback); + observer.observe(this.lastPage); + } + + /** + * Attempts to scroll the last page of the PDF document into view. + */ + private scrollToBottom() { + if (this.lastPage) { + this.lastPage.scrollIntoView({block: 'end'}); + } else { + throw new Error('Last page has not yet loaded.'); + } + } + + render() { + const {numPages, loadingPdf, hasReadEntireTos, hasAckedTermsOfService, hasAckedPrivacyStatement} = this.state; + + return + {/* TODO: all of this PDF rendering stuff should be broken out into a separate component. */} +
+ {loadingPdf && } + this.setState( + {numPages: data.numPages, loadingPdf: false})} + > + { + Array.from( + new Array(numPages), + (el, index) => ( + // We can't set inline styles on the react-pdf Page element, so instead we set a + // className and specify some style overrides in src/styles.css + { + this.lastPage = ref; + } : undefined} + onRenderSuccess={index === numPages - 1 ? () => this.handleLastPageRender() : + undefined} + /> + ), + ) + } + +
+ +
+
+ By clicking here and moving to the Registration step, you acknowledge that you + understand the terms of this agreement and agree to abide by them. + {!hasReadEntireTos &&
+ this.scrollToBottom()} + >Scroll to bottom
} +
+
+ this.setState({hasAckedPrivacyStatement: true})} + style={styles.checkbox} + labelStyle={hasReadEntireTos ? + styles.checkboxLabel : + styles.disabledCheckboxLabel} + wrapperStyle={{marginBottom: '0.5rem'}} + label={ + I have read and understand the All of Us Research Program Privacy Statement.} + />
+
+ this.setState({hasAckedTermsOfService: true})} + style={styles.checkbox} + labelStyle={hasReadEntireTos ? + styles.checkboxLabel : + styles.disabledCheckboxLabel} + wrapperStyle={{marginBottom: '0.5rem'}} + label={ + I have read and understand the All of Us Research Program Terms of Use described above.} + />
+
+ + + +
+
; + } + }); + +export default AccountCreationTos; diff --git a/ui/src/app/pages/login/account-creation/account-creation.spec.tsx b/ui/src/app/pages/login/account-creation/account-creation.spec.tsx index 3a7dea5844c..d54b1c01ca8 100644 --- a/ui/src/app/pages/login/account-creation/account-creation.spec.tsx +++ b/ui/src/app/pages/login/account-creation/account-creation.spec.tsx @@ -2,16 +2,11 @@ import {mount} from 'enzyme'; import * as fp from 'lodash/fp'; import * as React from 'react'; -import { - AccountCreation, - AccountCreationProps, - AccountCreationState -} from './account-creation'; -import {DataAccessLevel} from 'generated/fetch'; +import {AccountCreation, AccountCreationProps, AccountCreationState} from './account-creation'; import {AccountCreationOptions} from './account-creation-options'; -import {environment} from 'environments/environment'; import {serverConfigStore} from 'app/utils/navigation'; - +import {getEmptyProfile} from 'app/pages/login/test-utils'; +import {Profile} from 'generated/fetch'; let props: AccountCreationProps; const component = () => { @@ -25,31 +20,9 @@ const defaultConfig = {gsuiteDomain: 'researchallofus.org', enableNewAccountCrea beforeEach(() => { serverConfigStore.next(defaultConfig); props = { - profile: {username: '', - dataAccessLevel: DataAccessLevel.Unregistered, - givenName: '', - familyName: '', - contactEmail: '', - currentPosition: '', - organization: '', - areaOfResearch: '', - address: { - streetAddress1: '', - streetAddress2: '', - city: '', - state: '', - country: '', - zipCode: '', - }, - institutionalAffiliations: [ - { - institution: "institution", - nonAcademicAffiliation: undefined, - role: undefined - } - ]}, + profile: getEmptyProfile(), invitationKey: '', - setProfile: () => {}, + onComplete: (profile: Profile) => {}, }; }); diff --git a/ui/src/app/pages/login/account-creation/account-creation.tsx b/ui/src/app/pages/login/account-creation/account-creation.tsx index 560e88e97c6..f82082dfabb 100644 --- a/ui/src/app/pages/login/account-creation/account-creation.tsx +++ b/ui/src/app/pages/login/account-creation/account-creation.tsx @@ -7,7 +7,7 @@ import { } from 'app/components/icons'; import { - Error, + Error as ErrorDiv, ErrorMessage, RadioButton, styles as inputStyles, @@ -24,12 +24,9 @@ import { } from 'app/services/swagger-fetch-clients'; import {FlexColumn, FlexRow, flexStyle} from 'app/components/flex'; -import {signedOutImages} from 'app/pages/login/signed-out-images'; import {AoUTitle} from 'app/pages/profile/data-use-agreement-styles'; import colors, {colorWithWhiteness} from 'app/styles/colors'; import { - DataAccessLevel, - Degree, EducationalRole, IndustryRole, InstitutionalAffiliation, @@ -50,32 +47,6 @@ function isBlank(s: string) { return (!s || /^\s*$/.test(s)); } - -export interface AccountCreationProps { - profile: Profile; - invitationKey: string; - setProfile: Function; -} - -export interface AccountCreationState { - creatingAccount: boolean; - errors: any; - invalidEmail: boolean; - rolesOptions: any; - profile: Profile; - showAllFieldsRequiredError: boolean; - showInstitution: boolean; - showNonAcademicAffiliationRole: boolean; - showNonAcademicAffiliationOther: boolean; - usernameCheckInProgress: boolean; - usernameConflictError: boolean; - institutionName: string; - institutionRole: string; - nonAcademicAffiliation: string; - nonAcademicAffiliationRole: string; - nonAcademicAffiliationOther: string; -} - const styles = reactStyles({ asideContainer: { backgroundColor: colorWithWhiteness(colors.primary, 0.85), @@ -166,7 +137,8 @@ export const MultiSelectWithLabel = (props) => { return - @@ -175,45 +147,64 @@ export const MultiSelectWithLabel = (props) => { ; }; +export interface AccountCreationProps { + profile: Profile; + invitationKey: string; + onComplete: (profile: Profile) => void; +} + +export interface AccountCreationState { + creatingAccount: boolean; + errors: any; + invalidEmail: boolean; + rolesOptions: any; + profile: Profile; + showAllFieldsRequiredError: boolean; + showInstitution: boolean; + showNonAcademicAffiliationRole: boolean; + showNonAcademicAffiliationOther: boolean; + usernameCheckInProgress: boolean; + usernameConflictError: boolean; + institutionName: string; + institutionRole: string; + nonAcademicAffiliation: string; + nonAcademicAffiliationRole: string; + nonAcademicAffiliationOther: string; +} + export class AccountCreation extends React.Component { private usernameCheckTimeout: NodeJS.Timer; constructor(props: AccountCreationProps) { + // What's going on with this assertion: the account creation form only edits a single + // institutional affiliation entry, even though it's a repeated field. This component has + // a convention of requiring the Profile set in props to have a single, empty institutional + // affiliation already populated, for editing by this form. See sign-in.tsx where the "empty" + // profile object is created. + if (props.profile.institutionalAffiliations.length !== 1) { + throw new Error('Profile must be pre-allocated with 1 institutional affiliation.'); + } super(props); - this.state = { + this.state = this.createInitialState(); + + } + + componentDidMount() { + this.updateNonAcademicAffiliationRoles( + this.state.profile.institutionalAffiliations[0].nonAcademicAffiliation); + this.selectNonAcademicAffiliationRoles( + this.state.profile.institutionalAffiliations[0].role); + } + + createInitialState(): AccountCreationState { + const state: AccountCreationState = { errors: undefined, - profile: { - // Note: We abuse the "username" field here by omitting "@domain.org". After - // profile creation, this field is populated with the full email address. - username: '', - dataAccessLevel: DataAccessLevel.Unregistered, - givenName: '', - familyName: '', - contactEmail: '', - currentPosition: '', - organization: '', - areaOfResearch: '', - address: { - streetAddress1: '', - streetAddress2: '', - city: '', - state: '', - country: '', - zipCode: '', - }, - institutionalAffiliations: [ - { - institution: undefined, - nonAcademicAffiliation: undefined, - role: undefined - } - ], - degrees: [] as Degree[] - }, + profile: this.props.profile, usernameCheckInProgress: false, usernameConflictError: false, creatingAccount: false, showAllFieldsRequiredError: false, + // showInstitution defaults to true, since we expect most users coming in will be academics. showInstitution: true, showNonAcademicAffiliationRole: false, showNonAcademicAffiliationOther: false, @@ -225,27 +216,18 @@ export class AccountCreation extends React.Component { this.setState({profile: savedProfile, creatingAccount: false}); - setProfile(savedProfile, {stepName: 'accountCreationSuccess', backgroundImages: signedOutImages.login}); }) + onComplete(savedProfile); + }) .catch(error => { console.log(error); this.setState({creatingAccount: false}); @@ -343,17 +326,8 @@ export class AccountCreation extends React.Component 0) { - profile.institutionalAffiliations[0][attribute] = value; - } else { - const institutionalAffiliation = {} as InstitutionalAffiliation; - institutionalAffiliation[attribute] = value; - profile.institutionalAffiliations = [institutionalAffiliation]; - } - this.setState({profile: profile}); + this.setState(fp.set(['profile', 'institutionalAffiliations', '0', attribute], value)); } showFreeTextField(option) { @@ -362,10 +336,12 @@ export class AccountCreation extends React.Component 0 ? institutionalAffiliations[0][property] : ''; + return this.state.profile.institutionalAffiliations[0][property]; } - render() { const { profile: { @@ -490,6 +457,8 @@ export class AccountCreation extends React.ComponentNew Username @@ -504,6 +473,7 @@ export class AccountCreation extends React.Component; const errors = this.validateAccountCreation(); + return
@@ -531,13 +501,13 @@ export class AccountCreation extends React.Component {this.state.usernameConflictError &&
- + Username is already taken. -
} +
} {this.usernameInvalidError() && -
+
{username} is not a valid username. -
} +
}
About you Publicly displayed}> @@ -565,13 +535,14 @@ export class AccountCreation extends React.Component this.updateProfileObject('contactEmail', v)}/> {this.state.invalidEmail && - + Contact Email is invalid - } - } + this.updateProfileObject('degrees', e.value)}/> + labelText='Your degrees (optional)' + onChange={(e) => this.setState(fp.set(['profile', 'degrees'], e.value))} + />
@@ -635,25 +606,25 @@ export class AccountCreation extends React.Component
- {this.clearInstitutionAffiliation(); this.setState({showInstitution: true}); }} - checked={this.state.showInstitution} style={{marginRight: '0.5rem'}}/> -
{this.state.showInstitution && - this.updateInstitutionAffiliation('institution', value)} /> @@ -705,7 +676,7 @@ export class AccountCreation extends React.Component} disabled={!errors}> @@ -738,7 +709,7 @@ export class AccountCreation extends React.Component 80} + invalid={String(givenName.length > 80)} style={{width: '16rem'}} onChange={v => this.updateProfileToBeDeleted('givenName', v)}/> {givenName.length > 80 && @@ -749,7 +720,7 @@ export class AccountCreation extends React.Component 80} + invalid={String(familyName.length > 80)} style={{width: '16rem'}} onChange={v => this.updateProfileToBeDeleted('familyName', v)}/> {familyName.length > 80 && @@ -764,9 +735,9 @@ export class AccountCreation extends React.Component this.updateProfileToBeDeleted('contactEmail', v)}/> {this.state.invalidEmail && - + Contact Email Id is invalid - } + }
{this.state.usernameConflictError && - + Username is already taken. - } + } {this.usernameInvalidError() && - + Username is not a valid username. - } + }
@@ -845,9 +816,9 @@ export class AccountCreation extends React.Component } {!enableNewAccountCreation && this.state.showAllFieldsRequiredError && - + All fields are required. - } + } ; } } diff --git a/ui/src/app/pages/login/invitation-key.spec.tsx b/ui/src/app/pages/login/invitation-key.spec.tsx index c9990345bfb..02f0f4f5c3f 100644 --- a/ui/src/app/pages/login/invitation-key.spec.tsx +++ b/ui/src/app/pages/login/invitation-key.spec.tsx @@ -13,15 +13,14 @@ import {ProfileApiStub} from 'testing/stubs/profile-api-stub'; describe('InvitationKeyComponent', () => { let props: InvitationKeyProps; - const onInvitationKeyVerify = jest.fn(); - + const onInvitationKeyVerified = jest.fn(); const component = () => mount(); beforeEach(() => { - props = {onInvitationKeyVerify}; + props = {onInvitationKeyVerified}; registerApiClient(ProfileApi, new ProfileApiStub()); - onInvitationKeyVerify.mockClear(); + onInvitationKeyVerified.mockClear(); }); it('should display required error message if Invitation key is blank', () => { @@ -54,6 +53,6 @@ describe('InvitationKeyComponent', () => { await nextButton.simulate('click'); wrapper.update(); - expect(onInvitationKeyVerify).toHaveBeenCalled(); + expect(onInvitationKeyVerified).toHaveBeenCalled(); }); }); diff --git a/ui/src/app/pages/login/invitation-key.tsx b/ui/src/app/pages/login/invitation-key.tsx index e5c007af6c6..2b02e241247 100644 --- a/ui/src/app/pages/login/invitation-key.tsx +++ b/ui/src/app/pages/login/invitation-key.tsx @@ -5,6 +5,7 @@ import {TextInput} from 'app/components/inputs'; import {profileApi} from 'app/services/swagger-fetch-clients'; +import {SpinnerOverlay} from 'app/components/spinners'; import * as React from 'react'; function isBlank(s: string) { @@ -16,12 +17,13 @@ function isValidKeyFormat(k: string): boolean { } export interface InvitationKeyProps { - onInvitationKeyVerify: (invitationKey: any) => void; + onInvitationKeyVerified: (invitationKey: any) => void; } interface InvitationKeyState { invitationKey: string; - invitationKeyReq: boolean; + loading: boolean; + invitationKeyRequired: boolean; invitationKeyInvalid: boolean; } @@ -34,14 +36,16 @@ export class InvitationKey extends React.Component { - this.props.onInvitationKeyVerify(this.state.invitationKey); + this.setState({loading: false}); + this.props.onInvitationKeyVerified(this.state.invitationKey); }) .catch(error => { this.setState({ + loading: false, invitationKeyInvalid: true }); }); @@ -79,28 +85,29 @@ export class InvitationKey extends React.Component
Enter your Invitation Key: - this.keyPressed(event.key)} style={{width: '16rem'}} placeholder='Invitation Key' onChange={v => this.setState({invitationKey: v})} ref={this.inputElement} autoFocus/> - {this.state.invitationKeyReq && + {invitationKeyRequired &&
Invitation Key is required.
} - {this.state.invitationKeyInvalid && + {invitationKeyInvalid &&
Invitation Key is not Valid. @@ -109,11 +116,12 @@ export class InvitationKey extends React.Component
+ {loading && } ; } } diff --git a/ui/src/app/pages/login/login.tsx b/ui/src/app/pages/login/login.tsx index f95e05470e6..4c283d03fb4 100644 --- a/ui/src/app/pages/login/login.tsx +++ b/ui/src/app/pages/login/login.tsx @@ -48,7 +48,7 @@ export const styles = reactStyles({ export const LoginReactComponent: React.FunctionComponent<{ signIn: Function, onCreateAccount: Function }> = ({ signIn, onCreateAccount}) => { - return
+ return
Already have an account? diff --git a/ui/src/app/pages/login/sign-in.spec.tsx b/ui/src/app/pages/login/sign-in.spec.tsx index bfbaa7429be..969179e3e61 100644 --- a/ui/src/app/pages/login/sign-in.spec.tsx +++ b/ui/src/app/pages/login/sign-in.spec.tsx @@ -1,10 +1,17 @@ import {Button} from 'app/components/buttons'; -import {mount} from 'enzyme'; +import {mount, shallow} from 'enzyme'; import * as React from 'react'; -import SignInReact, {SignInProps} from './sign-in'; -import {signedOutImages} from './signed-out-images'; +import {AccountCreation} from 'app/pages/login/account-creation/account-creation'; +import {AccountCreationSuccess} from 'app/pages/login/account-creation/account-creation-success'; +import {AccountCreationSurvey} from 'app/pages/login/account-creation/account-creation-survey'; +import AccountCreationTos from 'app/pages/login/account-creation/account-creation-tos'; +import InvitationKey from 'app/pages/login/invitation-key'; +import LoginReactComponent from 'app/pages/login/login'; +import {getEmptyProfile} from 'app/pages/login/test-utils'; +import {serverConfigStore} from 'app/utils/navigation'; +import {SignInProps, SignInReact, StepToImageConfig} from './sign-in'; describe('SignInReact', () => { let props: SignInProps; @@ -13,30 +20,34 @@ describe('SignInReact', () => { const component = () => mount(); + const defaultConfig = {gsuiteDomain: 'researchallofus.org', enableNewAccountCreation: false}; + beforeEach(() => { props = { onInit: () => {}, signIn: signIn, - windowSize: {width: 1700, height: 0} - } as SignInProps; + windowSize: {width: 1700, height: 0}, + serverConfig: defaultConfig + }; + serverConfigStore.next(defaultConfig); }); it('should display login background image and directive by default', () => { const wrapper = component(); - const templateImage = wrapper.find('[data-test-id="template"]'); + const templateImage = wrapper.find('[data-test-id="sign-in-page"]').hostNodes(); const backgroundImage = templateImage.prop('style').backgroundImage; - expect(backgroundImage).toBe('url(\'' + signedOutImages.login.backgroundImgSrc + '\')'); + expect(backgroundImage).toBe('url(\'' + '/assets/images/login-group.png' + '\')'); expect(wrapper.exists('[data-test-id="login"]')).toBeTruthy(); }); it('should display small background image when window width is moderately sized', () => { props.windowSize.width = 999; const wrapper = component(); - const templateImage = wrapper.find('[data-test-id="template"]'); + const templateImage = wrapper.find('[data-test-id="sign-in-page"]').hostNodes(); const backgroundImage = templateImage.prop('style').backgroundImage; expect(backgroundImage) - .toBe('url(\'' + signedOutImages.login.smallerBackgroundImgSrc + '\')'); + .toBe('url(\'' + '/assets/images/login-standing.png' + '\')'); expect(wrapper.exists('[data-test-id="login"]')).toBeTruthy(); }); @@ -45,7 +56,7 @@ describe('SignInReact', () => { const createAccountButton = wrapper.find(Button).find({type: 'secondary'}); createAccountButton.simulate('click'); wrapper.update(); - const templateImage = wrapper.find('[data-test-id="template"]'); + const templateImage = wrapper.find('[data-test-id="sign-in-page"]').hostNodes(); const backgroundImage = templateImage.prop('style').backgroundImage; expect(wrapper.exists('[data-test-id="invitationKey"]')).toBeTruthy(); @@ -57,6 +68,57 @@ describe('SignInReact', () => { const createAccountButton = wrapper.find(Button).find({type: 'secondary'}); createAccountButton.simulate('click'); wrapper.update(); - const templateImage = wrapper.find('[data-test-id="template"]'); + const templateImage = wrapper.find('[data-test-id="sign-in-page"]'); + }); + + it('should handle sign-up flow for legacy account creation', () => { + // To correctly shallow-render this component wrapped by two HOCs, we need to add two extra + // .shallow() calls at the end. + const wrapper = shallow().shallow().shallow(); + + // To start, the landing page / login component should be shown. + expect(wrapper.exists(LoginReactComponent)).toBeTruthy(); + // Simulate the "create account" button being clicked by firing the callback method. + wrapper.find(LoginReactComponent).props().onCreateAccount(); + + // Invitation key step is next. + expect(wrapper.exists(InvitationKey)).toBeTruthy(); + wrapper.find(InvitationKey).props().onInvitationKeyVerified('asdf'); + + expect(wrapper.exists(AccountCreation)).toBeTruthy(); + wrapper.find(AccountCreation).props().onComplete(getEmptyProfile()); + + // Success! + expect(wrapper.exists(AccountCreationSuccess)).toBeTruthy(); + }); + + it('should handle sign-up flow for new account creation', () => { + props.serverConfig = {...defaultConfig, enableNewAccountCreation: true}; + + // To correctly shallow-render this component wrapped by two HOCs, we need to add two extra + // .shallow() calls at the end. + const wrapper = shallow().shallow().shallow(); + + // To start, the landing page / login component should be shown. + expect(wrapper.exists(LoginReactComponent)).toBeTruthy(); + // Simulate the "create account" button being clicked by firing the callback method. + wrapper.find(LoginReactComponent).props().onCreateAccount(); + + // Invitation key step is next. + expect(wrapper.exists(InvitationKey)).toBeTruthy(); + wrapper.find(InvitationKey).props().onInvitationKeyVerified('asdf'); + + // Terms of Service is part of the new-style flow. + expect(wrapper.exists(AccountCreationTos)).toBeTruthy(); + wrapper.find(AccountCreationTos).props().onComplete(); + + expect(wrapper.exists(AccountCreation)).toBeTruthy(); + wrapper.find(AccountCreation).props().onComplete(getEmptyProfile()); + + // Account Creation Survey (e.g. demographics) is part of the new-style flow. + expect(wrapper.exists(AccountCreationSurvey)).toBeTruthy(); + wrapper.find(AccountCreationSurvey).props().onComplete(getEmptyProfile()); + + expect(wrapper.exists(AccountCreationSuccess)).toBeTruthy(); }); }); diff --git a/ui/src/app/pages/login/sign-in.tsx b/ui/src/app/pages/login/sign-in.tsx index 66e26d5712e..81a4bf9e5e1 100644 --- a/ui/src/app/pages/login/sign-in.tsx +++ b/ui/src/app/pages/login/sign-in.tsx @@ -1,104 +1,181 @@ import {Component} from '@angular/core'; import {Router} from '@angular/router'; +import * as fp from 'lodash/fp'; +import {AccountCreation} from 'app/pages/login/account-creation/account-creation'; import {AccountCreationSuccess} from 'app/pages/login/account-creation/account-creation-success'; +import {AccountCreationSurvey} from 'app/pages/login/account-creation/account-creation-survey'; +import {AccountCreationTos} from 'app/pages/login/account-creation/account-creation-tos'; import {InvitationKey} from 'app/pages/login/invitation-key'; import {LoginReactComponent} from 'app/pages/login/login'; import {SignInService} from 'app/services/sign-in.service'; import colors from 'app/styles/colors'; -import {ReactWrapperBase, withWindowSize} from 'app/utils'; -import {AccountCreation} from './account-creation/account-creation'; +import { + reactStyles, + ReactWrapperBase, ServerConfigProps, + WindowSizeProps, + withServerConfig, + withWindowSize, +} from 'app/utils'; -import {Profile} from 'generated/fetch'; +import {DataAccessLevel, Degree, Profile} from 'generated/fetch'; import {FlexColumn} from 'app/components/flex'; -import {SignedOutImages, signedOutImages} from 'app/pages/login/signed-out-images'; import * as React from 'react'; -import {AccountCreationSurvey} from './account-creation/account-creation-survey'; - - -interface Step { - stepName: string; - backgroundImages?: SignedOutImages; -} - -export interface SignInProps { - onInit: () => void; - signIn: () => void; - windowSize: { width: number, height: number }; -} - -interface SignInState { - currentStep: Step; - invitationKey: string; - profile: Profile; -} - -const styles = { - template: (windowSize, images: SignedOutImages) => { - // Lower bounds to prevent the small and large images from covering the - // creation controls, respectively. - const bgWidthMinPx = 900; - const bgWidthSmallLimitPx = 1600; - - return { - backgroundImage: calculateImage(), - backgroundColor: colors.light, - backgroundRepeat: 'no-repeat', - width: '100%', - minHeight: '100vh', - backgroundSize: windowSize.width <= bgWidthMinPx ? '0% 0%' : 'contain', - backgroundPosition: calculateBackgroundPosition() - }; - - function calculateImage() { - if (images === undefined) { - return null; - } - let imageUrl = 'url(\'' + images.backgroundImgSrc + '\')'; - if (windowSize.width > bgWidthMinPx && windowSize.width <= bgWidthSmallLimitPx) { - imageUrl = 'url(\'' + images.smallerBackgroundImgSrc + '\')'; - } - return imageUrl; +// A template function which returns the appropriate style config based on window size and +// background images. +const backgroundStyleTemplate = (windowSize, imageConfig?: BackgroundImageConfig) => { + // Lower bounds to prevent the small and large images from covering the + // creation controls, respectively. + const bgWidthMinPx = 900; + const bgWidthSmallLimitPx = 1600; + + return { + backgroundImage: calculateImage(), + backgroundColor: colors.light, + backgroundRepeat: 'no-repeat', + flex: 1, + width: '100%', + backgroundSize: windowSize.width <= bgWidthMinPx ? '0% 0%' : 'contain', + backgroundPosition: calculateBackgroundPosition() + }; + + function calculateImage() { + if (!imageConfig) { + return null; + } + let imageUrl = 'url(\'' + imageConfig.backgroundImgSrc + '\')'; + if (windowSize.width > bgWidthMinPx && windowSize.width <= bgWidthSmallLimitPx) { + imageUrl = 'url(\'' + imageConfig.smallerBackgroundImgSrc + '\')'; } + return imageUrl; + } - function calculateBackgroundPosition() { - let position = 'bottom right -1rem'; - if (windowSize.width > bgWidthMinPx && windowSize.width <= bgWidthSmallLimitPx) { - position = 'bottom right'; - } - return position; + function calculateBackgroundPosition() { + let position = 'bottom right -1rem'; + if (windowSize.width > bgWidthMinPx && windowSize.width <= bgWidthSmallLimitPx) { + position = 'bottom right'; } - }, - signedInContainer: { + return position; + } +}; + +const styles = reactStyles({ + signInContainer: { backgroundSize: 'contain', backgroundRepeat: 'no-repeat', backgroundPosition: 'center', - display: 'flex', justifyContent: 'space-around', alignItems: 'flex-start', - width: 'auto' + width: 'auto', + minHeight: '100vh' }, +}); + +// Tracks each major stage in the sign-in / sign-up flow. Most of the steps are related to new +// account creation. +enum SignInStep { + // Landing page. User can choose to sign in or create an account. + LANDING, + // Interstitial step, where a user must enter their invitation key. + // + // TODO: this needs to be controllable per-environment before beta launch! + INVITATION_KEY, + // Terms of Service page. User must read and acknowledge the privacy statement & TOS. + TERMS_OF_SERVICE, + // Basic account creation page. User chooses a username and provides basic name / address info. + ACCOUNT_CREATION, + // Optional demographic survey. Completion of this step triggers actual user creation. + DEMOGRAPHIC_SURVEY, + // Account creation success page. + SUCCESS_PAGE +} -}; - - +interface BackgroundImageConfig { + backgroundImgSrc: string; + smallerBackgroundImgSrc: string; +} +export const StepToImageConfig: Map = new Map([ + [SignInStep.LANDING, { + backgroundImgSrc: '/assets/images/login-group.png', + smallerBackgroundImgSrc: '/assets/images/login-standing.png' + }], + [SignInStep.SUCCESS_PAGE, { + backgroundImgSrc: '/assets/images/congrats-female.png', + smallerBackgroundImgSrc: 'assets/images/congrats-female-standing.png' + }]] +); + +const HEADER_IMAGE = '/assets/images/logo-registration-non-signed-in.svg'; + +export interface SignInProps extends ServerConfigProps, WindowSizeProps { + initialStep?: SignInStep; + onInit: () => void; + signIn: () => void; +} -const headerImg = '/assets/images/logo-registration-non-signed-in.svg'; +interface SignInState { + currentStep: SignInStep; + // Tracks the invitation key provided by the user. This is a required parameter in the createUser + // API call. + invitationKey: string; + profile: Profile; + // Tracks the Terms of Service version that was viewed and acknowledged by the user. + // This is an optional parameter in the createUser API call. + termsOfServiceVersion?: number; +} -export const SignInReact = withWindowSize()( +export const SignInReact = fp.flow(withServerConfig(), withWindowSize())( class extends React.Component { constructor(props: SignInProps) { super(props); this.state = { - currentStep: {stepName: 'login', backgroundImages: signedOutImages.login}, - invitationKey: '', - profile: {} as Profile + currentStep: props.initialStep ? props.initialStep : SignInStep.LANDING, + invitationKey: null, + termsOfServiceVersion: null, + // This defines the profile state for a new user flow. This will get passed to each + // step component as a prop. When each sub-step completes, it will pass the updated Profile + // data in its onComplete callback. + profile: this.createEmptyProfile() + }; + } + + createEmptyProfile(): Profile { + return { + // Note: We abuse the "username" field here by omitting "@domain.org". After + // profile creation, this field is populated with the full email address. + username: '', + dataAccessLevel: DataAccessLevel.Unregistered, + givenName: '', + familyName: '', + contactEmail: '', + currentPosition: '', + organization: '', + areaOfResearch: '', + address: { + streetAddress1: '', + streetAddress2: '', + city: '', + state: '', + country: '', + zipCode: '', + }, + institutionalAffiliations: [ + // We only allow entering a single institutional affiliation from the create account + // page, so we pre-fill a single empty entry which will be bound to the AccountCreation + // form. + { + institution: undefined, + nonAcademicAffiliation: undefined, + role: undefined, + }, + ], + demographicSurvey: {}, + degrees: [] as Degree[], }; - this.setProfile = this.setProfile.bind(this); } componentDidMount() { @@ -106,64 +183,67 @@ export const SignInReact = withWindowSize()( this.props.onInit(); } - nextDirective(index: string) { - switch (index) { - case 'login': + renderSignInStep(currentStep: SignInStep) { + const {enableNewAccountCreation} = this.props.serverConfig; + + switch (currentStep) { + case SignInStep.LANDING: return - this.setCurrentStep({stepName: 'invitationKey'})}/>; - case 'invitationKey': - return this.onKeyVerified(key)}/>; - case 'accountCreation': - return this.setProfile(profile, nextStep)}/>; - case 'accountCreationSurvey': - return this.setProfile(profile, nextStep)}/>; - case 'accountCreationSuccess': + this.setState({ + currentStep: SignInStep.INVITATION_KEY + })}/>; + case SignInStep.INVITATION_KEY: + return this.setState({ + invitationKey: key, + // We skip over TERMS_OF_SERVICE if new-style account creation isn't enabled. + currentStep: enableNewAccountCreation ? SignInStep.TERMS_OF_SERVICE : SignInStep.ACCOUNT_CREATION + })}/>; + case SignInStep.TERMS_OF_SERVICE: + return this.setState({ + termsOfServiceVersion: 1, + currentStep: SignInStep.ACCOUNT_CREATION + })}/>; + case SignInStep.ACCOUNT_CREATION: + return this.setState({ + profile: profile, + // Skip over the demographic survey if new-style form isn't enabled. + currentStep: enableNewAccountCreation ? SignInStep.DEMOGRAPHIC_SURVEY : + SignInStep.SUCCESS_PAGE + })}/>; + case SignInStep.DEMOGRAPHIC_SURVEY: + return this.setState({ + profile: profile, + currentStep: SignInStep.SUCCESS_PAGE + })} + onPreviousClick={(profile: Profile) => this.setState({ + profile: profile, + currentStep: SignInStep.ACCOUNT_CREATION + })}/>; + case SignInStep.SUCCESS_PAGE: return ; default: return; } } - setCurrentStep(nextStep: Step) { - this.setState({ - currentStep: nextStep - }); - } - - onKeyVerified(invitationKey: string) { - this.setState({ - invitationKey: invitationKey, - currentStep: {stepName: 'accountCreation'} - }); - } - - setProfile(profile, currentStep) { - this.setState({ - profile: profile, - currentStep: currentStep - }); - } - - - render() { - const {stepName, backgroundImages} = this.state.currentStep; - const maxWidth = backgroundImages === undefined ? '100%' : '41.66667%'; - return
- -
- -
- {this.nextDirective(stepName)} -
-
+ const backgroundImages = StepToImageConfig.get(this.state.currentStep); + return + +
+ {this.renderSignInStep(this.state.currentStep)}
-
; + ; } }); diff --git a/ui/src/app/pages/login/signed-out-images.tsx b/ui/src/app/pages/login/signed-out-images.tsx deleted file mode 100644 index 1ee48a6df8a..00000000000 --- a/ui/src/app/pages/login/signed-out-images.tsx +++ /dev/null @@ -1,15 +0,0 @@ -export interface SignedOutImages { - backgroundImgSrc: string; - smallerBackgroundImgSrc: string; -} - -export const signedOutImages = { - login: { - backgroundImgSrc: '/assets/images/login-group.png', - smallerBackgroundImgSrc: '/assets/images/login-standing.png' - }, - accountCreationSuccess: { - backgroundImgSrc: '/assets/images/congrats-female.png', - smallerBackgroundImgSrc: 'assets/images/congrats-female-standing.png' - } -}; diff --git a/ui/src/app/pages/login/test-utils.ts b/ui/src/app/pages/login/test-utils.ts new file mode 100644 index 00000000000..98ad5998d15 --- /dev/null +++ b/ui/src/app/pages/login/test-utils.ts @@ -0,0 +1,31 @@ +import {DataAccessLevel, Profile} from 'generated/fetch'; + +export const getEmptyProfile = (): Profile => { + return { + username: '', + dataAccessLevel: DataAccessLevel.Unregistered, + givenName: '', + familyName: '', + contactEmail: '', + currentPosition: '', + organization: '', + areaOfResearch: '', + address: { + streetAddress1: '', + streetAddress2: '', + city: '', + state: '', + country: '', + zipCode: '', + }, + institutionalAffiliations: [ + { + institution: undefined, + nonAcademicAffiliation: undefined, + role: undefined + } + ], + demographicSurvey: {}, + degrees: [] + }; +}; diff --git a/ui/src/app/pages/signed-in/component.css b/ui/src/app/pages/signed-in/component.css index ef44400fba1..a43fa991dfd 100644 --- a/ui/src/app/pages/signed-in/component.css +++ b/ui/src/app/pages/signed-in/component.css @@ -31,3 +31,7 @@ body { padding-left: 0; padding-right: 0; } + +.create-account__degree-select .p-multiselect-header { + display: none; +} diff --git a/ui/src/app/utils/index.tsx b/ui/src/app/utils/index.tsx index 7e8263727f2..f51ecd9d539 100644 --- a/ui/src/app/utils/index.tsx +++ b/ui/src/app/utils/index.tsx @@ -9,11 +9,16 @@ import { globalErrorStore, queryParamsStore, routeConfigDataStore, + serverConfigStore, urlParamsStore, userProfileStore } from 'app/utils/navigation'; import {DataAccessLevel, Domain} from 'generated'; -import {DataAccessLevel as FetchDataAccessLevel, Domain as FetchDomain} from 'generated/fetch'; +import { + ConfigResponse, + DataAccessLevel as FetchDataAccessLevel, + Domain as FetchDomain, +} from 'generated/fetch'; import * as fp from 'lodash/fp'; import * as React from 'react'; import * as ReactDOM from 'react-dom'; @@ -93,13 +98,23 @@ window.addEventListener('resize', throttleAnimation(() => { window.dispatchEvent(new CustomEvent('resizeAnimation')); })); -const getWindowSize = () => { +export interface WindowSize { + height: number; + width: number; +} +// Components using withWindowSize can use this props interface to ensure they are including the +// correctly-named props, e.g. "interface MyClassProps extends WindowSizeProps". +export interface WindowSizeProps { + windowSize: WindowSize; +} + +const getWindowSize = (): WindowSize => { return {height: window.innerHeight, width: window.innerWidth}; }; export const withWindowSize = () => WrappedComponent => { class Wrapper extends React.Component { + { windowSize: WindowSize }> { constructor(props) { super(props); this.state = {windowSize: getWindowSize()}; @@ -129,7 +144,7 @@ export const withWindowSize = () => WrappedComponent => { } } - return Wrapper as any; + return Wrapper; }; export const nextSort = ({field, direction}, newField) => { @@ -258,7 +273,8 @@ export const summarizeErrors = errors => { } }; -export const connectBehaviorSubject = (subject: BehaviorSubject, name: string) => { +export const connectBehaviorSubject = ( + subject: BehaviorSubject, name: string, preventRenderUntilDataIsPresent: boolean = false) => { return (WrappedComponent) => { class Wrapper extends React.Component { static displayName = 'connectBehaviorSubject()'; @@ -283,6 +299,9 @@ export const connectBehaviorSubject = (subject: BehaviorSubject const {value} = this.state; // We allow overriding of the currentValue, for reuse of the same // logic outside of the scope of a current workspace. + if (preventRenderUntilDataIsPresent && value == null) { + return null; + } return ; } } @@ -369,6 +388,18 @@ export const withQueryParams = () => { return connectBehaviorSubject(queryParamsStore, 'queryParams'); }; +// A HOC that provides a 'serverConfig' prop, +// For similar reasons to the withCdrVersions store above, we want the serverConfig HOC to not +// render child components until the store has a non-empty value. +// See discussion on https://github.com/all-of-us/workbench/pull/2603/ for details on the type of +// bugs that motivated this approach. +export const withServerConfig = () => { + return connectBehaviorSubject(serverConfigStore, 'serverConfig', /* preventRenderUntilValuePresent */ true); +}; +export interface ServerConfigProps { + serverConfig: ConfigResponse; +} + // Temporary method for converting generated/models/Domain to generated/models/fetch/Domain export function generateDomain(domain: FetchDomain): Domain { const d = fp.capitalize(FetchDomain[domain]); diff --git a/ui/src/assets/documents/terms of service (draft).pdf b/ui/src/assets/documents/terms of service (draft).pdf new file mode 100644 index 0000000000000000000000000000000000000000..aceebde8ec61abdb1df38ae24dd31d656812e662 GIT binary patch literal 185374 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 d|Ivl&?PKZX component doesn't support inline styles, so we need to use a + * CSS class and specify style overrides here. + */ +.tos-pdf-page { + margin-bottom: 1rem; +} + +.tos-pdf-page > canvas { + margin: auto; +} diff --git a/ui/yarn.lock b/ui/yarn.lock index cd9d7eabbfc..f14e8048786 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -281,6 +281,13 @@ version "7.7.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.2.tgz#ea8334dc77416bfd9473eb470fd00d8245b3943b" +"@babel/runtime@^7.0.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" + integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== + dependencies: + regenerator-runtime "^0.13.2" + "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2": version "7.7.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" @@ -5496,9 +5503,10 @@ loader-utils@1.1.0: emojis-list "^2.0.0" json5 "^0.5.0" -loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@^1.0.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: big.js "^5.2.2" emojis-list "^2.0.0" @@ -5653,6 +5661,11 @@ make-error@1.x, make-error@^1.1.1: version "1.3.5" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" +make-event-props@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/make-event-props/-/make-event-props-1.2.0.tgz#96b87d88919533b8f8934b58b4c3d5679459a0cf" + integrity sha512-BmWFkm/jZzVH9A0tEBdkjAARUz/eha+5IRyfOndeSMKRadkgR5DawoBHoRwLxkYmjJOI5bHkXKpaZocxj+dKgg== + make-fetch-happen@^4.0.1, make-fetch-happen@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz#2d156b11696fb32bffbafe1ac1bc085dd6c78a79" @@ -6063,6 +6076,11 @@ nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" +node-ensure@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz#ecae764150de99861ec5c810fd5d096b183932a7" + integrity sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc= + node-fetch-npm@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" @@ -6788,6 +6806,14 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pdfjs-dist@2.1.266: + version "2.1.266" + resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-2.1.266.tgz#cded02268b389559e807f410d2a729db62160026" + integrity sha512-Jy7o1wE3NezPxozexSbq4ltuLT0Z21ew/qrEiAEeUZzHxMHGk4DUV1D7RuCXg5vJDvHmjX1YssN+we9QfRRgXQ== + dependencies: + node-ensure "^0.0.0" + worker-loader "^2.0.0" + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -7261,6 +7287,18 @@ react-paginating@^1.0.3-react16.0: dependencies: paging-algorithm "^1.0.1" +react-pdf@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/react-pdf/-/react-pdf-4.1.0.tgz#fcb874f28050fe9593c4e04652c7bff94bb1acf9" + integrity sha512-SYwkWc+vRQHfrpDls3DOgn4G+wT0mYGJRor20e28GPRW8VB+6o8WqZ4QZxsl50z+dKM7UscXFnK/02eN3NXi2g== + dependencies: + "@babel/runtime" "^7.0.0" + lodash.once "^4.1.1" + make-event-props "^1.1.0" + merge-class-names "^1.1.1" + pdfjs-dist "2.1.266" + prop-types "^15.6.2" + react-select@^3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.0.8.tgz#06ff764e29db843bcec439ef13e196865242e0c1" @@ -7729,9 +7767,10 @@ schema-utils@^0.3.0: dependencies: ajv "^5.0.0" -schema-utils@^0.4.4, schema-utils@^0.4.5: +schema-utils@^0.4.0, schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" @@ -9323,6 +9362,14 @@ worker-farm@^1.5.2: dependencies: errno "~0.1.7" +worker-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac" + integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== + dependencies: + loader-utils "^1.0.0" + schema-utils "^0.4.0" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"