From 3bfb5ab1025ddf756fb72235d69aeb27c9b00198 Mon Sep 17 00:00:00 2001 From: notV4l Date: Fri, 29 Mar 2024 14:30:15 +0100 Subject: [PATCH] fix: handle init error --- .../src/hooks/useBurnerWindowObject.ts | 25 +++++++++++++------ .../src/hooks/usePredeployedWindowObject.ts | 24 ++++++++++++------ 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/packages/create-burner/src/hooks/useBurnerWindowObject.ts b/packages/create-burner/src/hooks/useBurnerWindowObject.ts index c40f8e7e..0de25cda 100644 --- a/packages/create-burner/src/hooks/useBurnerWindowObject.ts +++ b/packages/create-burner/src/hooks/useBurnerWindowObject.ts @@ -4,6 +4,8 @@ import { BurnerManager, DojoBurnerStarknetWindowObject } from ".."; export const useBurnerWindowObject = (burnerManager?: BurnerManager) => { const [isInitialized, setIsInitialized] = useState(false); + const [isError, setIsError] = useState(false); + const [error, setError] = useState(); useEffect(() => { const initAsync = async () => { @@ -12,20 +14,27 @@ export const useBurnerWindowObject = (burnerManager?: BurnerManager) => { return; } - await burnerManager.init(); + try { + await burnerManager.init(); - const starknetWindowObject = new DojoBurnerStarknetWindowObject( - burnerManager - ); - const key = `starknet_${starknetWindowObject.id}`; + const starknetWindowObject = new DojoBurnerStarknetWindowObject( + burnerManager + ); - (window as any)[key] = starknetWindowObject as StarknetWindowObject; + const key = `starknet_${starknetWindowObject.id}`; + (window as any)[key] = + starknetWindowObject as StarknetWindowObject; - setIsInitialized(true); + setIsInitialized(true); + } catch (e: any) { + console.log(e); + setIsError(true); + setError("failed to initialize burnerManager"); + } }; initAsync(); }, [burnerManager]); - return { isInitialized }; + return { isInitialized, isError, error }; }; diff --git a/packages/create-burner/src/hooks/usePredeployedWindowObject.ts b/packages/create-burner/src/hooks/usePredeployedWindowObject.ts index 73b4fdf5..0546b1a1 100644 --- a/packages/create-burner/src/hooks/usePredeployedWindowObject.ts +++ b/packages/create-burner/src/hooks/usePredeployedWindowObject.ts @@ -6,6 +6,8 @@ export const usePredeployedWindowObject = ( predeployedManager?: PredeployedManager ) => { const [isInitialized, setIsInitialized] = useState(false); + const [isError, setIsError] = useState(false); + const [error, setError] = useState(); useEffect(() => { const initAsync = async () => { @@ -14,20 +16,26 @@ export const usePredeployedWindowObject = ( return; } - await predeployedManager.init(); + try { + await predeployedManager.init(); - const starknetWindowObject = - new DojoPredeployedStarknetWindowObject(predeployedManager); - const key = `starknet_${starknetWindowObject.id}`; + const starknetWindowObject = + new DojoPredeployedStarknetWindowObject(predeployedManager); - (window as any)[key as string] = - starknetWindowObject as StarknetWindowObject; + const key = `starknet_${starknetWindowObject.id}`; + (window as any)[key as string] = + starknetWindowObject as StarknetWindowObject; - setIsInitialized(true); + setIsInitialized(true); + } catch (e: any) { + console.log(e); + setIsError(true); + setError("failed to initialize predeployedManager"); + } }; initAsync(); }, [predeployedManager]); - return { isInitialized }; + return { isInitialized, isError, error }; };