Skip to content

Commit ef67b54

Browse files
committed
TAL-93 - update member profiles to use member.availableForGigs
1 parent 2195252 commit ef67b54

File tree

4 files changed

+14
-46
lines changed

4 files changed

+14
-46
lines changed

src/apps/profiles/src/member-profile/profile-header/OpenForGigs/OpenForGigs.tsx

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { Dispatch, FC, SetStateAction, useEffect, useMemo, useState } from 'react'
1+
import { Dispatch, FC, SetStateAction, useEffect, useState } from 'react'
22
import { useSearchParams } from 'react-router-dom'
3-
import { KeyedMutator } from 'swr'
43
import classNames from 'classnames'
54

6-
import { useMemberTraits, UserProfile, UserTrait, UserTraitIds, UserTraits } from '~/libs/core'
5+
import { UserProfile } from '~/libs/core'
76

87
import { EditMemberPropertyBtn } from '../../../components'
98
import { OpenForGigsModifyModal } from '../OpenForGigsModifyModal'
@@ -26,24 +25,15 @@ const OpenForGigs: FC<OpenForGigsProps> = (props: OpenForGigsProps) => {
2625
const [isEditMode, setIsEditMode]: [boolean, Dispatch<SetStateAction<boolean>>]
2726
= useState<boolean>(false)
2827

28+
const openForWork = props.profile.availableForGigs
29+
2930
useEffect(() => {
3031
if (props.authProfile && editMode === profileEditModes.openForWork) {
3132
setIsEditMode(true)
3233
}
3334
// eslint-disable-next-line react-hooks/exhaustive-deps
3435
}, [props.authProfile])
3536

36-
const { data: memberPersonalizationTraits, mutate: mutateTraits }: {
37-
data: UserTraits[] | undefined,
38-
mutate: KeyedMutator<any>,
39-
}
40-
= useMemberTraits(props.profile.handle, { traitIds: UserTraitIds.personalization })
41-
42-
const openForWork: UserTrait | undefined
43-
= useMemo(() => memberPersonalizationTraits?.[0]?.traits?.data?.find(
44-
(trait: UserTrait) => trait.availableForGigs !== undefined,
45-
), [memberPersonalizationTraits])
46-
4737
function handleModifyOpenForWorkClick(): void {
4838
setIsEditMode(true)
4939
}
@@ -55,16 +45,15 @@ const OpenForGigs: FC<OpenForGigsProps> = (props: OpenForGigsProps) => {
5545
function handleModifyOpenForWorkSave(): void {
5646
setTimeout(() => {
5747
setIsEditMode(false)
58-
mutateTraits()
5948
props.refreshProfile(props.profile.handle)
6049
triggerSurvey()
6150
}, 1000)
6251
}
6352

6453
return props.canEdit || openForWork ? (
6554
<div className={styles.container}>
66-
<p className={classNames('body-main-bold', !openForWork?.availableForGigs ? styles.notOopenToWork : '')}>
67-
{openForWork?.availableForGigs ? 'open to work' : 'not open to work'}
55+
<p className={classNames('body-main-bold', !openForWork ? styles.notOopenToWork : '')}>
56+
{openForWork ? 'open to work' : 'not open to work'}
6857
</p>
6958
{
7059
props.canEdit && (
@@ -78,8 +67,7 @@ const OpenForGigs: FC<OpenForGigsProps> = (props: OpenForGigsProps) => {
7867
<OpenForGigsModifyModal
7968
onClose={handleModifyOpenForWorkClose}
8069
onSave={handleModifyOpenForWorkSave}
81-
openForWork={openForWork?.availableForGigs || false}
82-
memberPersonalizationTraitsFullData={memberPersonalizationTraits?.[0]?.traits?.data}
70+
openForWork={openForWork ?? false}
8371
profile={props.profile}
8472
/>
8573
)

src/apps/profiles/src/member-profile/profile-header/OpenForGigsModifyModal/OpenForGigsModifyModal.tsx

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
11
import { Dispatch, FC, SetStateAction, useEffect, useState } from 'react'
22
import { toast } from 'react-toastify'
3-
import { reject } from 'lodash'
43

54
import { BaseModal, Button, InputText } from '~/libs/ui'
6-
import {
7-
updateOrCreateMemberTraitsAsync,
8-
UserProfile,
9-
UserTrait,
10-
UserTraitCategoryNames,
11-
UserTraitIds,
12-
} from '~/libs/core'
5+
import { updateMemberProfileAsync, UserProfile } from '~/libs/core'
136

147
import styles from './OpenForGigsModifyModal.module.scss'
158

169
interface OpenForGigsModifyModalProps {
1710
onClose: () => void
1811
onSave: () => void
1912
openForWork: boolean
20-
memberPersonalizationTraitsFullData: UserTrait[] | undefined
2113
profile: UserProfile
2214
}
2315

@@ -35,24 +27,10 @@ const OpenForGigsModifyModal: FC<OpenForGigsModifyModalProps> = (props: OpenForG
3527
function handleOpenForWorkSave(): void {
3628
setIsSaving(true)
3729

38-
const updatedPersonalizationTraits: UserTrait[]
39-
= reject(
40-
props.memberPersonalizationTraitsFullData,
41-
(trait: UserTrait) => trait.availableForGigs !== undefined,
42-
)
43-
44-
updateOrCreateMemberTraitsAsync(props.profile.handle, [{
45-
categoryName: UserTraitCategoryNames.personalization,
46-
traitId: UserTraitIds.personalization,
47-
traits: {
48-
data: [
49-
...(updatedPersonalizationTraits || []),
50-
{
51-
availableForGigs: openForWork,
52-
},
53-
],
54-
},
55-
}])
30+
updateMemberProfileAsync(
31+
props.profile.handle,
32+
{ availableForGigs: openForWork },
33+
)
5634
.then(() => {
5735
toast.success('Work availability updated successfully.', { position: toast.POSITION.BOTTOM_RIGHT })
5836
props.onSave()

src/libs/core/lib/profile/modify-user-profile.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export interface UpdateProfileRequest {
88
streetAddr2?: string
99
zip?: string
1010
}>
11+
availableForGigs?: boolean,
1112
competitionCountryCode?: string
1213
homeCountryCode?: string
1314
firstName?: string

src/libs/core/lib/profile/user-profile.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export interface UserProfile {
1010
streetAddr2?: string
1111
zip?: string
1212
}>
13+
availableForGigs: boolean
1314
competitionCountryCode: string
1415
createdAt: number
1516
description: string

0 commit comments

Comments
 (0)