Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/apps/onboarding/src/components/DateInput/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ const DateInput: FC<DateInputProps> = (props: DateInputProps) => {
}}
onFocus={props.onFocus}
showYearDropdown
dropdownMode='select'
onCalendarOpen={() => setOpen(true)}
maxDate={
props.allowFutureDate ? null : moment()
Expand Down
42 changes: 28 additions & 14 deletions src/apps/onboarding/src/pages/open-to-work/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/* eslint-disable react/jsx-no-bind */
/* eslint-disable unicorn/no-null */
import { useNavigate } from 'react-router-dom'
import { FC, MutableRefObject, useEffect, useRef } from 'react'
import { FC, MutableRefObject, useEffect, useMemo, useRef } from 'react'
import classNames from 'classnames'
import { connect } from 'react-redux'

Expand Down Expand Up @@ -43,13 +43,33 @@ export const PageOpenToWorkContent: FC<{
shouldSavingData,
)

const availableForGigsValue: boolean | undefined = useMemo(() => {
if (!personalizationInfo || personalizationInfo.availableForGigs === undefined) {
return blankPersonalizationInfo.availableForGigs
}

return personalizationInfo.availableForGigs
}, [personalizationInfo])

useEffect(() => {
if (!loading && !shouldSavingData.current && !!shouldNavigateTo.current) {
navigate(shouldNavigateTo.current)
}
/* eslint-disable react-hooks/exhaustive-deps */
}, [loading])

function checkToNavigateNextPage(pageUrl: string): void {
if (!personalizationInfo || personalizationInfo.availableForGigs === undefined) {
shouldNavigateTo.current = pageUrl
setPersonalizationInfo({
...(personalizationInfo || blankPersonalizationInfo),
availableForGigs: blankPersonalizationInfo.availableForGigs,
})
} else {
navigate(pageUrl)
}
}

return (
<div className={classNames('d-flex flex-column', styles.container)}>
<h2>
Expand All @@ -68,15 +88,15 @@ export const PageOpenToWorkContent: FC<{
<div className='mt-26'>
<FormInputCheckboxMiddleware
label='Yes, I’m open to work'
checked={(personalizationInfo || blankPersonalizationInfo).availableForGigs}
checked={availableForGigsValue}
inline
onChange={(e: any) => {
setPersonalizationInfo({
...personalizationInfo,
...(personalizationInfo || blankPersonalizationInfo),
availableForGigs: e.target.checked,
})
}}
disabled={props.loadingMemberTraits}
disabled={props.loadingMemberTraits || loading}
/>
</div>
</div>
Expand All @@ -93,25 +113,19 @@ export const PageOpenToWorkContent: FC<{
size='lg'
secondary
iconToLeft
disabled={loading}
icon={IconBackGreen}
onClick={() => {
if (loading) {
shouldNavigateTo.current = '../skills'
} else {
navigate('../skills')
}
checkToNavigateNextPage('../skills')
}}
/>
<Button
size='lg'
primary
iconToLeft
disabled={loading}
onClick={() => {
if (loading) {
shouldNavigateTo.current = '../works'
} else {
navigate('../works')
}
checkToNavigateNextPage('../works')
}}
>
next
Expand Down
24 changes: 24 additions & 0 deletions src/apps/onboarding/src/redux/actions/member.ts
Original file line number Diff line number Diff line change
Expand Up @@ -245,13 +245,19 @@ export const updateMemberWorks: any = (works: WorkInfo[]) => async (dispatch: an
}

export const createMemberWorks: any = (works: WorkInfo[]) => async (dispatch: any) => {
let isCreatedSuccess = false
try {
const tokenInfo: TokenModel = await getAsyncToken()

await createMemberTraits(tokenInfo.handle || '', createWorksPayloadData(works))
isCreatedSuccess = true
dispatch(updateWorks(works))
} catch (error) {
}

if (!isCreatedSuccess) {
await dispatch(updateMemberWorks(works))
}
}

const createEducationsPayloadData: any = (educations: EducationInfo[]) => {
Expand Down Expand Up @@ -291,13 +297,19 @@ export const updateMemberEducations: any = (educations: EducationInfo[]) => asyn
}

export const createMemberEducations: any = (educations: EducationInfo[]) => async (dispatch: any) => {
let isCreatedSuccess = false
try {
const tokenInfo: TokenModel = await getAsyncToken()

await createMemberTraits(tokenInfo.handle || '', createEducationsPayloadData(educations))
isCreatedSuccess = true
dispatch(updateEducations(educations))
} catch (error) {
}

if (!isCreatedSuccess) {
await dispatch(updateMemberEducations(educations))
}
}

const createPersonalizationsPayloadData: any = (personalizations: PersonalizationInfo[]) => {
Expand Down Expand Up @@ -338,13 +350,19 @@ export const updateMemberPersonalizations: any = (personalizations: Personalizat
}

export const createMemberPersonalizations: any = (personalizations: PersonalizationInfo[]) => async (dispatch: any) => {
let isCreatedSuccess = false
try {
const tokenInfo: TokenModel = await getAsyncToken()

await createMemberTraits(tokenInfo.handle || '', createPersonalizationsPayloadData(personalizations))
isCreatedSuccess = true
dispatch(updatePersonalization(personalizations[0]))
} catch (error) {
}

if (!isCreatedSuccess) {
await dispatch(updateMemberPersonalizations(personalizations))
}
}

const createConnectInfosPayloadData: any = (connectInfos: ConnectInfo[]) => {
Expand Down Expand Up @@ -381,13 +399,19 @@ export const updateMemberConnectInfos: any = (connectInfos: ConnectInfo[]) => as
}

export const createMemberConnectInfos: any = (connectInfos: ConnectInfo[]) => async (dispatch: any) => {
let isCreatedSuccess = false
try {
const tokenInfo: TokenModel = await getAsyncToken()

await createMemberTraits(tokenInfo.handle || '', createConnectInfosPayloadData(connectInfos))
isCreatedSuccess = true
dispatch(updateConnectInfo(connectInfos[0]))
} catch (error) {
}

if (!isCreatedSuccess) {
await dispatch(updateMemberConnectInfos(connectInfos))
}
}

export const setMemberPhotoUrl: any = (photoUrl: string) => ({
Expand Down