1- import { FC , PropsWithChildren , useCallback , useEffect } from "react" ;
1+ import { FC , PropsWithChildren , useCallback , useEffect , useState } from "react" ;
22import { useTranslation } from "react-i18next" ;
33import useKonami from "react-use-konami" ;
44
@@ -7,6 +7,7 @@ import { extractFilename } from "../utils/url";
77import { WelcomeModal } from "../views/graphPage/modals/WelcomeModal" ;
88import { appearanceAtom } from "./appearance" ;
99import { parseAppearanceState } from "./appearance/utils" ;
10+ import { useBroadcast } from "./broadcast/useBroadcast" ;
1011import { useGraphDatasetActions , useImportActions } from "./context/dataContexts" ;
1112import { filtersAtom } from "./filters" ;
1213import { parseFiltersState } from "./filters/utils" ;
@@ -32,6 +33,8 @@ export const Initialize: FC<PropsWithChildren<unknown>> = ({ children }) => {
3233 const { openModal } = useModal ( ) ;
3334 const { importFile } = useImportActions ( ) ;
3435 const { resetGraph } = useGraphDatasetActions ( ) ;
36+ const [ broadcastID , setBroadcastID ] = useState < string | null > ( null ) ;
37+ useBroadcast ( broadcastID ) ;
3538
3639 useKonami (
3740 ( ) => {
@@ -82,17 +85,20 @@ export const Initialize: FC<PropsWithChildren<unknown>> = ({ children }) => {
8285 let graphFound = false ;
8386 let showWelcomeModal = true ;
8487 const url = new URL ( window . location . href ) ;
88+ const broadcastID = url . searchParams . get ( "broadcast" ) ;
89+ setBroadcastID ( broadcastID ) ;
8590
8691 // If query params has new
8792 // => empty graph & open welcome modal
88- if ( url . searchParams . has ( "new" ) ) {
93+ if ( url . searchParams . has ( "new" ) || broadcastID ) {
8994 resetGraph ( ) ;
9095 graphFound = true ;
9196 url . searchParams . delete ( "new" ) ;
9297 window . history . pushState ( { } , "" , url ) ;
98+ showWelcomeModal = false ;
9399 }
94100
95- // If query params has file (or gexf although it's deprecated)
101+ // If query params has file (or GEXF, although it's deprecated)
96102 // => try to load the file
97103 if ( ! graphFound && ( url . searchParams . has ( "file" ) || url . searchParams . has ( "gexf" ) ) ) {
98104 if ( ! url . searchParams . has ( "file" ) && url . searchParams . has ( "gexf" ) )
@@ -157,7 +163,15 @@ export const Initialize: FC<PropsWithChildren<unknown>> = ({ children }) => {
157163 * => run the initialize function
158164 */
159165 useEffect ( ( ) => {
160- initialize ( ) ;
166+ initialize ( ) . catch ( ( error ) => {
167+ console . error ( error ) ;
168+ notify ( {
169+ type : "error" ,
170+ title : t ( "error.title" ) ,
171+ message : t ( "error.message" ) ,
172+ } ) ;
173+ } ) ;
174+ // eslint-disable-next-line react-hooks/exhaustive-deps
161175 } , [ initialize ] ) ;
162176
163177 return (
0 commit comments