Skip to content

Commit 62447ba

Browse files
authored
Merge branch 'dev' into CORE-96
2 parents c99f8bf + ec43301 commit 62447ba

File tree

156 files changed

+2350
-3291
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+2350
-3291
lines changed

.circleci/config.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -257,10 +257,6 @@ workflows:
257257
branches:
258258
only:
259259
- dev
260-
- justin_fixes
261-
- talent_search_fixes
262-
- feature/standardized-skills
263-
- CORE-96
264260

265261
- deployQa:
266262
context: org-global

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
"react-responsive-modal": "^6.2.0",
9595
"react-router-dom": "^6.4.2",
9696
"react-scripts": "5.0.1",
97-
"react-select": "^5.5.0",
97+
"react-select": "^5.8.0",
9898
"react-spinners": "^0.13.6",
9999
"react-stickynode": "^1.4.1",
100100
"react-toastify": "^9.0.8",

src/apps/onboarding/src/config/index.ts

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,4 @@
1-
export const ACTIONS: {
2-
MEMBER: {
3-
GET_MEMBER: string;
4-
UPDATE_MEMBER_PHOTO_URL: string;
5-
SET_WORKS: string;
6-
SET_EDUCATIONS: string;
7-
SET_PERSONALIZATIONS: string;
8-
SET_ADDRESS: string;
9-
SET_CONNECT_INFO: string;
10-
SET_DESCRIPTION: string;
11-
SET_LOADING_MEMBER_TRAITS: string;
12-
SET_LOADING_MEMBER_INFO: string;
13-
};
14-
} = {
1+
export const ACTIONS = {
152
MEMBER: {
163
GET_MEMBER: 'GET_MEMBER',
174
SET_ADDRESS: 'SET_ADDRESS',
@@ -20,6 +7,7 @@ export const ACTIONS: {
207
SET_EDUCATIONS: 'SET_EDUCATIONS',
218
SET_LOADING_MEMBER_INFO: 'SET_LOADING_MEMBER_INFO',
229
SET_LOADING_MEMBER_TRAITS: 'SET_LOADING_MEMBER_TRAITS',
10+
SET_OPEN_FOR_WORK: 'SET_OPEN_FOR_WORK',
2311
SET_PERSONALIZATIONS: 'SET_PERSONALIZATIONS',
2412
SET_WORKS: 'SET_WORKS',
2513
UPDATE_MEMBER_PHOTO_URL: 'UPDATE_MEMBER_PHOTO_URL',

src/apps/onboarding/src/models/MemberInfo.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default interface MemberInfo {
1515
maxRating: MemberMaxRating
1616
skills: Array<UserSkill>
1717
stats: Array<MemberStats>
18+
availableForGigs: boolean
1819
addresses?: MemberAddress[]
1920
country: string
2021
photoURL: string

src/apps/onboarding/src/models/PersonalizationInfo.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ export default interface PersonalizationInfo {
22
referAs?: string
33
profileSelfTitle?: string
44
shortBio?: string
5-
availableForGigs?: boolean
65
}
76

87
export const emptyPersonalizationInfo: () => PersonalizationInfo = () => ({
9-
availableForGigs: true,
108
profileSelfTitle: '',
119
referAs: '',
1210
shortBio: '',

src/apps/onboarding/src/pages/onboarding/index.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import classNames from 'classnames'
55

66
import { routerContext, RouterContextData } from '~/libs/core'
77
import { Member } from '~/apps/talent-search/src/lib/models'
8+
import { SharedSwrConfig } from '~/libs/shared'
89
import { EnvironmentConfig } from '~/config'
910

1011
import { onboardRouteId } from '../../onboarding.routes'
@@ -52,11 +53,13 @@ const OnboardingContent: FC<{
5253
}
5354

5455
export const OnboardingWrapper: FC<{}> = () => (
55-
<div className={classNames(styles.blockWrapper, 'd-flex flex-column align-items-center')}>
56-
<Provider store={store}>
57-
<OnboardingContent />
58-
</Provider>
59-
</div>
56+
<SharedSwrConfig>
57+
<div className={classNames(styles.blockWrapper, 'd-flex flex-column align-items-center')}>
58+
<Provider store={store}>
59+
<OnboardingContent />
60+
</Provider>
61+
</div>
62+
</SharedSwrConfig>
6063
)
6164

6265
export default OnboardingWrapper

src/apps/onboarding/src/pages/open-to-work/index.tsx

Lines changed: 27 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,51 @@
11
import { useNavigate } from 'react-router-dom'
2-
import { FC, MutableRefObject, useEffect, useMemo, useRef } from 'react'
2+
import { FC, MutableRefObject, useEffect, useRef, useState } from 'react'
33
import { connect } from 'react-redux'
4+
import { pick } from 'lodash'
45
import classNames from 'classnames'
56

67
import { Button, IconOutline, PageDivider } from '~/libs/ui'
78
import { FormInputCheckbox } from '~/apps/self-service/src/components/form-elements'
89

9-
import { createMemberPersonalizations, updateMemberPersonalizations } from '../../redux/actions/member'
1010
import { ProgressBar } from '../../components/progress-bar'
11-
import { useAutoSavePersonalization, useAutoSavePersonalizationType } from '../../hooks/useAutoSavePersonalization'
12-
import PersonalizationInfo, { emptyPersonalizationInfo } from '../../models/PersonalizationInfo'
11+
import { updateMemberOpenForWork } from '../../redux/actions/member'
1312

1413
import styles from './styles.module.scss'
1514

1615
const FormInputCheckboxMiddleware: any = FormInputCheckbox as any
1716

18-
const blankPersonalizationInfo: PersonalizationInfo = emptyPersonalizationInfo()
19-
20-
interface PageOpenToWorkContentReduxProps {
21-
reduxPersonalizations: PersonalizationInfo[] | undefined
22-
loadingMemberTraits: boolean
23-
}
24-
25-
interface PageOpenToWorkContentProps extends PageOpenToWorkContentReduxProps {
26-
updateMemberPersonalizations: (infos: PersonalizationInfo[]) => void
27-
createMemberPersonalizations: (infos: PersonalizationInfo[]) => void
17+
interface PageOpenToWorkContentProps {
18+
availableForGigs: boolean
19+
updateMemberOpenForWork: (isOpenForWork: boolean) => void
2820
}
2921

3022
export const PageOpenToWorkContent: FC<PageOpenToWorkContentProps> = props => {
3123
const navigate: any = useNavigate()
3224

25+
const [loading, setLoading] = useState<boolean>(false)
26+
3327
const shouldSavingData: MutableRefObject<boolean> = useRef<boolean>(false)
3428
const shouldNavigateTo: MutableRefObject<string> = useRef<string>('')
3529

36-
const {
37-
loading,
38-
personalizationInfo,
39-
setPersonalizationInfo,
40-
}: useAutoSavePersonalizationType = useAutoSavePersonalization(
41-
props.reduxPersonalizations,
42-
['availableForGigs'],
43-
props.updateMemberPersonalizations,
44-
props.createMemberPersonalizations,
45-
shouldSavingData,
46-
)
47-
48-
const availableForGigsValue: boolean | undefined = useMemo(() => {
49-
if (!personalizationInfo || personalizationInfo.availableForGigs === undefined) {
50-
return blankPersonalizationInfo.availableForGigs
51-
}
52-
53-
return personalizationInfo.availableForGigs
54-
}, [personalizationInfo])
55-
5630
useEffect(() => {
5731
if (!loading && !shouldSavingData.current && !!shouldNavigateTo.current) {
5832
navigate(shouldNavigateTo.current)
5933
}
6034
/* eslint-disable react-hooks/exhaustive-deps */
6135
}, [loading])
6236

63-
function checkToNavigateNextPage(pageUrl: string): void {
64-
if (!personalizationInfo || personalizationInfo.availableForGigs === undefined) {
65-
shouldNavigateTo.current = pageUrl
66-
setPersonalizationInfo({
67-
...(personalizationInfo || {}),
68-
availableForGigs: blankPersonalizationInfo.availableForGigs,
69-
})
70-
} else {
71-
navigate(pageUrl)
72-
}
37+
function goToPreviousStep(): void {
38+
navigate('../skills')
39+
}
40+
41+
function goToNextStep(): void {
42+
navigate('../works')
43+
}
44+
45+
async function handleSaveAvailableForGigs(e: any): Promise<void> {
46+
setLoading(true)
47+
await props.updateMemberOpenForWork(e.target.checked)
48+
setLoading(false)
7349
}
7450

7551
return (
@@ -90,15 +66,10 @@ export const PageOpenToWorkContent: FC<PageOpenToWorkContentProps> = props => {
9066
<div className='mt-26'>
9167
<FormInputCheckboxMiddleware
9268
label='Yes, I’m open to work'
93-
checked={availableForGigsValue}
69+
checked={props.availableForGigs}
9470
inline
95-
onChange={function onChange(e: any) {
96-
setPersonalizationInfo({
97-
...(personalizationInfo || {}),
98-
availableForGigs: e.target.checked,
99-
})
100-
}}
101-
disabled={props.loadingMemberTraits || loading}
71+
onChange={handleSaveAvailableForGigs}
72+
disabled={loading}
10273
/>
10374
</div>
10475
</div>
@@ -117,18 +88,14 @@ export const PageOpenToWorkContent: FC<PageOpenToWorkContentProps> = props => {
11788
iconToLeft
11889
disabled={loading}
11990
icon={IconOutline.ChevronLeftIcon}
120-
onClick={function previousPage() {
121-
checkToNavigateNextPage('../skills')
122-
}}
91+
onClick={goToPreviousStep}
12392
/>
12493
<Button
12594
size='lg'
12695
primary
12796
iconToLeft
12897
disabled={loading}
129-
onClick={function nextPage() {
130-
checkToNavigateNextPage('../works')
131-
}}
98+
onClick={goToNextStep}
13299
>
133100
next
134101
</Button>
@@ -137,22 +104,10 @@ export const PageOpenToWorkContent: FC<PageOpenToWorkContentProps> = props => {
137104
)
138105
}
139106

140-
const mapStateToProps: (state: any) => PageOpenToWorkContentReduxProps
141-
= (state: any): PageOpenToWorkContentReduxProps => {
142-
const {
143-
loadingMemberTraits,
144-
personalizations,
145-
}: any = state.member
146-
147-
return {
148-
loadingMemberTraits,
149-
reduxPersonalizations: personalizations,
150-
}
151-
}
107+
const mapStateToProps: any = (state: any) => pick(state.member, 'availableForGigs')
152108

153109
const mapDispatchToProps: any = {
154-
createMemberPersonalizations,
155-
updateMemberPersonalizations,
110+
updateMemberOpenForWork,
156111
}
157112

158113
export const PageOpenToWork: any = connect(mapStateToProps, mapDispatchToProps)(PageOpenToWorkContent)

src/apps/onboarding/src/redux/actions/member.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import _ from 'lodash'
22

3-
import { TokenModel, UserTraitCategoryNames, UserTraitIds } from '~/libs/core'
3+
import { TokenModel, updateMemberProfileAsync, UserTraitCategoryNames, UserTraitIds } from '~/libs/core'
44
import { getAsync as getAsyncToken } from '~/libs/core/lib/auth/token-functions/token.functions'
55
import {
66
createMemberTraits,
@@ -396,6 +396,11 @@ export const setMemberPhotoUrl: any = (photoUrl: string) => ({
396396
type: ACTIONS.MEMBER.UPDATE_MEMBER_PHOTO_URL,
397397
})
398398

399+
export const setMemberOpenForWork: any = (isOpenForWork: boolean) => ({
400+
payload: isOpenForWork,
401+
type: ACTIONS.MEMBER.SET_OPEN_FOR_WORK,
402+
})
403+
399404
export const updateMemberHomeAddresss: any = (addresses: MemberAddress[]) => async (dispatch: any) => {
400405
try {
401406
const tokenInfo: TokenModel = await getAsyncToken()
@@ -436,3 +441,16 @@ export const updateMemberPhotoUrl: any = (photoURL: string) => async (dispatch:
436441
} catch (error) {
437442
}
438443
}
444+
445+
export const updateMemberOpenForWork: any = (isOpenForWork: boolean) => async (dispatch: any) => {
446+
try {
447+
const tokenInfo: TokenModel = await getAsyncToken()
448+
449+
await updateMemberProfileAsync(
450+
tokenInfo.handle || '',
451+
{ availableForGigs: isOpenForWork },
452+
)
453+
dispatch(setMemberOpenForWork(isOpenForWork))
454+
} catch (error) {
455+
}
456+
}

src/apps/onboarding/src/redux/reducers/member.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* eslint-disable complexity */
12
import _ from 'lodash'
23

34
import { notifyUniNavi } from '~/apps/profiles/src/lib'
@@ -19,6 +20,7 @@ const initialState: {
1920
connectInfo?: ConnectInfo
2021
loadingMemberTraits?: boolean
2122
loadingMemberInfo?: boolean
23+
availableForGigs?: boolean
2224
} = {
2325
}
2426

@@ -35,6 +37,11 @@ const memberReducer: any = (
3537
...state,
3638
memberInfo: action.payload,
3739
}
40+
case ACTIONS.MEMBER.SET_OPEN_FOR_WORK:
41+
return {
42+
...state,
43+
availableForGigs: action.payload,
44+
}
3845
case ACTIONS.MEMBER.SET_WORKS:
3946
return {
4047
...state,

src/apps/profiles/src/components/AssemblyDetailsModal/AssemblyDetailsModal.module.scss

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)