diff --git a/web/src/app.tsx b/web/src/app.tsx index 51d593f73c..fc82cc03d8 100644 --- a/web/src/app.tsx +++ b/web/src/app.tsx @@ -1,6 +1,7 @@ import { Suspense } from "react"; import Loading from "@reearth/beta/components/Loading"; +import GlobalModal from "@reearth/beta/features/GlobalModal"; import NotificationBanner from "@reearth/beta/features/Notification"; import { Provider as I18nProvider } from "@reearth/services/i18n"; @@ -17,6 +18,7 @@ export default function App() { }> + diff --git a/web/src/classic/components/organisms/GlobalModal/index.tsx b/web/src/beta/features/GlobalModal/index.tsx similarity index 79% rename from web/src/classic/components/organisms/GlobalModal/index.tsx rename to web/src/beta/features/GlobalModal/index.tsx index 850939bf07..f1994c0da6 100644 --- a/web/src/classic/components/organisms/GlobalModal/index.tsx +++ b/web/src/beta/features/GlobalModal/index.tsx @@ -1,6 +1,7 @@ import { useCallback, useEffect, useState } from "react"; import { useAuth } from "@reearth/services/auth"; +import { config } from "@reearth/services/config"; import { useLang as useCurrentLang } from "@reearth/services/i18n"; import { NotificationType, @@ -9,7 +10,8 @@ import { } from "@reearth/services/state"; const GlobalModal: React.FC = () => { - const extensions = window.REEARTH_CONFIG?.extensions?.globalModal; + const extensions = config()?.extensions?.globalModal; + const { getAccessToken, logout } = useAuth(); const currentLang = useCurrentLang(); const [currentTheme] = useCurrentTheme(); @@ -18,15 +20,15 @@ const GlobalModal: React.FC = () => { const [accessToken, setAccessToken] = useState(); useEffect(() => { + if (accessToken) return; getAccessToken().then(token => { setAccessToken(token); }); - }, [getAccessToken]); + }, [accessToken, getAccessToken]); const handleNotificationChange = useCallback( - (type: NotificationType, text: string, heading?: string) => { - setNotification({ type, text, heading }); - }, + (type: NotificationType, text: string, heading?: string) => + setNotification({ type, text, heading }), [setNotification], ); diff --git a/web/src/beta/pages/Page.tsx b/web/src/beta/pages/Page.tsx index 84e8beb096..696e3ca89d 100644 --- a/web/src/beta/pages/Page.tsx +++ b/web/src/beta/pages/Page.tsx @@ -1,6 +1,5 @@ import React, { ReactNode, useMemo } from "react"; -import GlobalModal from "@reearth/classic/components/organisms/GlobalModal"; // todo: migrate to beta import { useMeFetcher, useProjectFetcher, useSceneFetcher } from "@reearth/services/api"; import { AuthenticatedPage } from "@reearth/services/auth"; @@ -49,7 +48,6 @@ const PageWrapper: React.FC = ({ sceneId, projectId, workspaceId, renderI ) : ( <> - {renderItem({ sceneId, projectId: currentProjectId,