From 9a1ddc623baaa276924937a33849be05b1d50cf8 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Mon, 19 Feb 2024 17:34:30 +0800 Subject: [PATCH] :bug: Fix garfish cannot get provider --- pkg/view/src/index.tsx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/pkg/view/src/index.tsx b/pkg/view/src/index.tsx index 8386f00..3ebb100 100644 --- a/pkg/view/src/index.tsx +++ b/pkg/view/src/index.tsx @@ -33,8 +33,19 @@ const router = (basename?: string) => ( ); +declare const __GARFISH_EXPORTS__: { + provider: Object; + registerProvider?: (provider: any) => void; +}; + +declare global { + interface Window { + __GARFISH__: boolean; + } +} + export const provider = () => ({ - render: ({ dom, basename }: any) => { + render: ({ dom, basename }: { dom: any, basename: string }) => { render( () => router(basename), dom.querySelector("#root") @@ -44,7 +55,12 @@ export const provider = () => ({ } }); -// @ts-ignore if (!window.__GARFISH__) { render(router, root!); +} else if (typeof __GARFISH_EXPORTS__ === "object" && __GARFISH_EXPORTS__) { + if (__GARFISH_EXPORTS__.registerProvider) { + __GARFISH_EXPORTS__.registerProvider(provider); + } else { + __GARFISH_EXPORTS__.provider = provider; + } }