Add following relation to frontend state when redeeming invites

This commit is contained in:
Maximilian Harz 2025-12-04 01:03:56 +01:00
parent f85ce81e30
commit e3e495dbcb

View File

@ -3,6 +3,7 @@ import { useNavigate, useParams } from 'react-router-dom'
import { toast } from 'react-toastify'
import { useAuth } from '#components/Auth/useAuth'
import { useUpdateItem } from '#components/Map/hooks/useItems'
import { useMyProfile } from '#components/Map/hooks/useMyProfile'
import { MapOverlayPage } from '#components/Templates/MapOverlayPage'
@ -22,6 +23,7 @@ export function InvitePage({ inviteApi, itemsApi }: Props) {
const { isAuthenticated, isInitialized: isAuthenticationInitialized } = useAuth()
const { id } = useParams<{ id: string }>()
const navigate = useNavigate()
const updateItem = useUpdateItem()
const { myProfile, isMyProfileLoaded, createEmptyProfile } = useMyProfile()
@ -57,8 +59,26 @@ export function InvitePage({ inviteApi, itemsApi }: Props) {
return
}
if (!invitingProfile) {
toast.error('Inviting profile not found')
return
}
await redeemInvite(id, myActualProfile.id)
// Add new relation to local state
updateItem({
...myActualProfile,
relations: [
...(myActualProfile.relations ?? []),
{
type: 'is_following',
direction: 'outgoing',
related_items_id: invitingProfile.id,
},
],
})
setRedeemingDone(true)
}