♻️(frontend) refactor feedback redirect to global onDisconnect hook

Centralize disconnect handling to ensure all client-initiated disconnects
trigger feedback page navigation. More extensible for future disconnect
event routing needs, especially when errors happen.
This commit is contained in:
lebaudantoine
2025-07-17 11:35:39 +02:00
committed by aleb_the_flash
parent 6b3e5d747a
commit dac6bfe142
2 changed files with 7 additions and 5 deletions

View File

@@ -2,7 +2,7 @@ import { useEffect, useMemo, useState } from 'react'
import { useQuery } from '@tanstack/react-query'
import { useTranslation } from 'react-i18next'
import { LiveKitRoom } from '@livekit/components-react'
import { Room, RoomOptions } from 'livekit-client'
import { DisconnectReason, Room, RoomOptions } from 'livekit-client'
import { keys } from '@/api/queryKeys'
import { queryClient } from '@/api/queryClient'
import { Screen } from '@/layout/Screen'
@@ -17,6 +17,7 @@ import posthog from 'posthog-js'
import { css } from '@/styled-system/css'
import { BackgroundProcessorFactory } from '../livekit/components/blur'
import { LocalUserChoices } from '@/stores/userChoices'
import { navigateTo } from '@/navigation/navigateTo'
export const Conference = ({
roomId,
@@ -124,6 +125,11 @@ export const Conference = ({
className={css({
backgroundColor: 'primaryDark.50 !important',
})}
onDisconnected={(e) => {
if (e == DisconnectReason.CLIENT_INITIATED) {
navigateTo('feedback')
}
}}
>
<VideoConference />
{showInviteDialog && (

View File

@@ -1,6 +1,5 @@
import { useConnectionState, useRoomContext } from '@livekit/components-react'
import { Button } from '@/primitives'
import { navigateTo } from '@/navigation/navigateTo'
import { RiPhoneFill } from '@remixicon/react'
import { useTranslation } from 'react-i18next'
import { ConnectionState } from 'livekit-client'
@@ -21,9 +20,6 @@ export const LeaveButton = () => {
.catch((e) =>
console.error('An error occurred while disconnecting:', e)
)
.finally(() => {
navigateTo('feedback')
})
}}
data-attr="controls-leave"
>