1- import { useEffect , useState } from 'react' ;
1+ import { useCallback , useEffect , useState } from 'react' ;
22import { ConnectionDetails } from '@/app/api/connection-details/route' ;
33
4- export default function useConnectionDetails ( autoRefresh = false ) {
4+ export default function useConnectionDetails ( ) {
55 // Generate room connection details, including:
66 // - A random Room name
77 // - A random Participant name
@@ -13,7 +13,8 @@ export default function useConnectionDetails(autoRefresh = false) {
1313
1414 const [ connectionDetails , setConnectionDetails ] = useState < ConnectionDetails | null > ( null ) ;
1515
16- const fetchConnectionDetails = ( ) => {
16+ const fetchConnectionDetails = useCallback ( ( ) => {
17+ setConnectionDetails ( null ) ;
1718 const url = new URL (
1819 process . env . NEXT_PUBLIC_CONN_DETAILS_ENDPOINT ?? '/api/connection-details' ,
1920 window . location . origin
@@ -27,17 +28,11 @@ export default function useConnectionDetails(autoRefresh = false) {
2728 console . error ( 'Error fetching connection details:' , error ) ;
2829 alert ( error . message ) ;
2930 } ) ;
30- } ;
31+ } , [ ] ) ;
3132
3233 useEffect ( ( ) => {
33- if ( autoRefresh ) {
34- const interval = setInterval ( ( ) => {
35- fetchConnectionDetails ( ) ;
36- } , 10000 ) ;
37- return ( ) => clearInterval ( interval ) ;
38- }
3934 fetchConnectionDetails ( ) ;
40- } , [ autoRefresh ] ) ;
35+ } , [ fetchConnectionDetails ] ) ;
4136
42- return connectionDetails ;
37+ return { connectionDetails, refreshConnectionDetails : fetchConnectionDetails } ;
4338}
0 commit comments