Skip to content

Commit 96d541d

Browse files
update @livekit/components-react
1 parent c7a679a commit 96d541d

File tree

3 files changed

+20
-14
lines changed

3 files changed

+20
-14
lines changed

components/app/app.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,18 @@ import { RoomAudioRenderer, StartAudio } from '@livekit/components-react';
44
import type { AppConfig } from '@/app-config';
55
import { ViewController } from '@/components/app/view-controller';
66
import { Toaster } from '@/components/livekit/toaster';
7+
import { useAgentErrors } from '@/hooks/useAgentErrors';
78
import { ConnectionProvider } from '@/hooks/useConnection';
9+
import { useDebugMode } from '@/hooks/useDebug';
10+
11+
const IN_DEVELOPMENT = process.env.NODE_ENV !== 'production';
12+
13+
function AppSetup() {
14+
useDebugMode({ enabled: IN_DEVELOPMENT });
15+
useAgentErrors();
16+
17+
return null;
18+
}
819

920
interface AppProps {
1021
appConfig: AppConfig;
@@ -13,6 +24,7 @@ interface AppProps {
1324
export function App({ appConfig }: AppProps) {
1425
return (
1526
<ConnectionProvider appConfig={appConfig}>
27+
<AppSetup />
1628
<main className="grid h-svh grid-cols-1 place-content-center">
1729
<ViewController appConfig={appConfig} />
1830
</main>

components/app/view-controller.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@ import { AnimatePresence, type AnimationDefinition, motion } from 'motion/react'
55
import type { AppConfig } from '@/app-config';
66
import { SessionView } from '@/components/app/session-view';
77
import { WelcomeView } from '@/components/app/welcome-view';
8-
import { useAgentErrors } from '@/hooks/useAgentErrors';
98
import { useConnection } from '@/hooks/useConnection';
10-
import { useDebugMode } from '@/hooks/useDebug';
11-
12-
const IN_DEVELOPMENT = process.env.NODE_ENV !== 'production';
139

1410
const MotionWelcomeView = motion.create(WelcomeView);
1511
const MotionSessionView = motion.create(SessionView);
@@ -39,9 +35,6 @@ interface ViewControllerProps {
3935
export function ViewController({ appConfig }: ViewControllerProps) {
4036
const { isConnectionActive, connect, onDisconnectTransitionComplete } = useConnection();
4137

42-
useDebugMode({ enabled: IN_DEVELOPMENT });
43-
useAgentErrors();
44-
4538
const handleAnimationComplete = useCallback(
4639
(definition: AnimationDefinition) => {
4740
// manually end the session when the exit animation completes

hooks/useConnection.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,22 +71,23 @@ export function ConnectionProvider({ appConfig, children }: ConnectionProviderPr
7171
appConfig.agentName ? { agentName: appConfig.agentName } : undefined
7272
);
7373

74-
const value = useMemo(
75-
() => ({
74+
const { start: startSession, end: endSession } = session;
75+
76+
const value = useMemo(() => {
77+
return {
7678
isConnectionActive,
7779
connect: () => {
7880
setIsConnectionActive(true);
79-
session.start();
81+
startSession();
8082
},
8183
startDisconnectTransition: () => {
8284
setIsConnectionActive(false);
8385
},
8486
onDisconnectTransitionComplete: () => {
85-
session.end();
87+
endSession();
8688
},
87-
}),
88-
[session, isConnectionActive]
89-
);
89+
};
90+
}, [startSession, endSession, isConnectionActive]);
9091

9192
return (
9293
<SessionProvider session={session}>

0 commit comments

Comments
 (0)