Skip to content

Commit

Permalink
♻️ update user brevo contact
Browse files Browse the repository at this point in the history
  • Loading branch information
paulsouche committed Jan 13, 2025
1 parent f10233e commit b61ac22
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Loader from '@/design-system/layout/Loader'
import Emoji from '@/design-system/utils/Emoji'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useFetchUserContact } from '@/hooks/users/useFetchUserContact'
import { useUpdateUserSettings } from '@/hooks/users/useUpdateUserSettings'
import { useUpdateUserContact } from '@/hooks/users/useUpdateUserContact'
import { useUser } from '@/publicodes-state'
import { formatEmail } from '@/utils/format/formatEmail'
import { useEffect, useRef, useState } from 'react'
Expand Down Expand Up @@ -63,10 +63,10 @@ export default function MesInformations() {
}, [userContact, setValue])

const {
mutateAsync: updateUserSettings,
mutateAsync: updateUserContact,
isPending,
isError,
} = useUpdateUserSettings({
} = useUpdateUserContact({
email: user?.email ?? '',
userId: user?.userId,
})
Expand All @@ -78,8 +78,7 @@ export default function MesInformations() {
}
try {
const formattedEmail = formatEmail(data.email)
await updateUserSettings({
name: data.name,
await updateUserContact({
email: formattedEmail,
newsletterIds,
})
Expand Down
8 changes: 4 additions & 4 deletions src/components/blog/NosGestesTransportsBanner.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Loader from '@/design-system/layout/Loader'
import Emoji from '@/design-system/utils/Emoji'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useFetchUserContact } from '@/hooks/users/useFetchUserContact'
import { useUpdateUserSettings } from '@/hooks/users/useUpdateUserSettings'
import { useUpdateUserContact } from '@/hooks/users/useUpdateUserContact'
import { useUser } from '@/publicodes-state'
import type { SubmitHandler } from 'react-hook-form'
import { useForm as useReactHookForm } from 'react-hook-form'
Expand All @@ -27,17 +27,17 @@ export default function NosGestesTransportsBanner() {
const { data: userContact } = useFetchUserContact(user?.email ?? '')

const {
mutateAsync: updateUserSettings,
mutateAsync: updateUserContact,
isPending,
isError,
isSuccess,
} = useUpdateUserSettings({
} = useUpdateUserContact({
email: user?.email ?? '',
userId: user?.userId,
})

const onSubmit: SubmitHandler<Inputs> = async (data) => {
await updateUserSettings({
await updateUserContact({
email: data.email,
newsletterIds: {
[LIST_NOS_GESTES_TRANSPORT_NEWSLETTER]: true,
Expand Down
9 changes: 4 additions & 5 deletions src/components/user/SaveSimulationForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Loader from '@/design-system/layout/Loader'
import Emoji from '@/design-system/utils/Emoji'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useFetchUserContact } from '@/hooks/users/useFetchUserContact'
import { useUpdateUserSettings } from '@/hooks/users/useUpdateUserSettings'
import { useUpdateUserContact } from '@/hooks/users/useUpdateUserContact'
import { useUser } from '@/publicodes-state'
import type { ReactNode } from 'react'
import { useEffect, useRef, useState } from 'react'
Expand Down Expand Up @@ -92,10 +92,10 @@ export default function UserInformationForm({
}, [userContact, setValue, defaultValues])

const {
mutateAsync: updateUserSettings,
mutateAsync: updateUserContact,
isPending,
isError,
} = useUpdateUserSettings({
} = useUpdateUserContact({
email: user?.email ?? '',
userId: user?.userId,
})
Expand All @@ -106,8 +106,7 @@ export default function UserInformationForm({
[LIST_NOS_GESTES_TRANSPORT_NEWSLETTER]: data['newsletter-transports'],
}

await updateUserSettings({
name: data.name,
await updateUserContact({
email: data.email,
newsletterIds,
})
Expand Down
7 changes: 3 additions & 4 deletions src/components/user/UserInformationForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { displayErrorToast } from '@/helpers/toasts/displayErrorToast'
import { displaySuccessToast } from '@/helpers/toasts/displaySuccessToast'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useFetchUserContact } from '@/hooks/users/useFetchUserContact'
import { useUpdateUserSettings } from '@/hooks/users/useUpdateUserSettings'
import { useUpdateUserContact } from '@/hooks/users/useUpdateUserContact'
import { useUser } from '@/publicodes-state'
import type { ReactNode } from 'react'
import { useEffect, useRef } from 'react'
Expand Down Expand Up @@ -101,7 +101,7 @@ export default function UserInformationForm({
)
}, [userContact, setValue, defaultValues])

const { mutateAsync: updateUserSettings, isPending } = useUpdateUserSettings({
const { mutateAsync: updateUserContact, isPending } = useUpdateUserContact({
email: user?.email ?? '',
userId: user?.userId,
})
Expand All @@ -114,8 +114,7 @@ export default function UserInformationForm({
}

try {
await updateUserSettings({
name: data.name,
await updateUserContact({
email: data.email,
newsletterIds,
})
Expand Down
34 changes: 34 additions & 0 deletions src/hooks/users/useUpdateUserContact.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { useMutation } from '@tanstack/react-query'
import axios from 'axios'
import { USER_URL } from '../../constants/urls'

type Props = {
email?: string
userId: string
}

type FuncProps = {
newsletterIds: Record<number, boolean>
email?: string
}

export function useUpdateUserContact({ email, userId }: Props) {
return useMutation({
mutationKey: ['userContact', userId],
mutationFn: async ({ newsletterIds, email: emailParam }: FuncProps) =>
axios.put(`${USER_URL}/${userId}/brevo-contact`, {
email: email || emailParam,
userId,
listIds: Object.entries(newsletterIds).reduce(
(acc: number[], [id, subscribed]) => {
if (subscribed) {
acc.push(+id)
}

return acc
},
[]
),
}),
})
}
27 changes: 0 additions & 27 deletions src/hooks/users/useUpdateUserSettings.ts

This file was deleted.

0 comments on commit b61ac22

Please sign in to comment.