From 80224017285ddb6291df7da0acf58fa66635cdea Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Wed, 24 Jun 2026 07:17:34 -0400 Subject: [PATCH] Fix import loop in web app --- web/src/components/Account.jsx | 2 +- web/src/components/AccountContext.js | 5 +++++ web/src/components/App.jsx | 5 ++--- web/src/components/Navigation.jsx | 2 +- web/src/components/Preferences.jsx | 2 +- web/src/components/PublishDialog.jsx | 2 +- web/src/components/SubscribeDialog.jsx | 2 +- web/src/components/SubscriptionPopup.jsx | 2 +- web/src/components/UpgradeDialog.jsx | 2 +- 9 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 web/src/components/AccountContext.js diff --git a/web/src/components/Account.jsx b/web/src/components/Account.jsx index b346892a..36446101 100644 --- a/web/src/components/Account.jsx +++ b/web/src/components/Account.jsx @@ -56,7 +56,7 @@ import accountApi, { LimitBasis, Role, SubscriptionInterval, SubscriptionStatus import { Pref, PrefGroup } from "./Pref"; import db from "../app/db"; import UpgradeDialog from "./UpgradeDialog"; -import { AccountContext } from "./App"; +import AccountContext from "./AccountContext"; import DialogFooter from "./DialogFooter"; import { Paragraph } from "./styles"; import { EmailPrimaryElsewhereError, IncorrectPasswordError, UnauthorizedError } from "../app/errors"; diff --git a/web/src/components/AccountContext.js b/web/src/components/AccountContext.js new file mode 100644 index 00000000..1bd3d724 --- /dev/null +++ b/web/src/components/AccountContext.js @@ -0,0 +1,5 @@ +import { createContext } from "react"; + +const AccountContext = createContext(null); + +export default AccountContext; diff --git a/web/src/components/App.jsx b/web/src/components/App.jsx index d386fedd..b6893f20 100644 --- a/web/src/components/App.jsx +++ b/web/src/components/App.jsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { createContext, Suspense, useContext, useEffect, useState, useMemo } from "react"; +import { Suspense, useContext, useEffect, useState, useMemo } from "react"; import { Box, Toolbar, CssBaseline, Backdrop, CircularProgress, useMediaQuery, ThemeProvider, createTheme } from "@mui/material"; import { useLiveQuery } from "dexie-react-hooks"; import { BrowserRouter, Outlet, Route, Routes, useParams } from "react-router-dom"; @@ -27,11 +27,10 @@ import initI18n from "../app/i18n"; // Translations! import prefs from "../app/Prefs"; import RTLCacheProvider from "./RTLCacheProvider"; import session from "../app/Session"; +import AccountContext from "./AccountContext"; initI18n(); -export const AccountContext = createContext(null); - const App = () => { const { i18n } = useTranslation(); const languageDir = i18n.dir(); diff --git a/web/src/components/Navigation.jsx b/web/src/components/Navigation.jsx index fdca9455..53e6aa6b 100644 --- a/web/src/components/Navigation.jsx +++ b/web/src/components/Navigation.jsx @@ -41,7 +41,7 @@ import config from "../app/config"; import session from "../app/Session"; import accountApi, { Permission, Role } from "../app/AccountApi"; import UpgradeDialog from "./UpgradeDialog"; -import { AccountContext } from "./App"; +import AccountContext from "./AccountContext"; import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite } from "./ReserveIcons"; import { SubscriptionPopup } from "./SubscriptionPopup"; import { useNotificationPermissionListener, useVersionChangeListener } from "./hooks"; diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 093cc775..1e68750b 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -41,7 +41,7 @@ import session from "../app/Session"; import routes from "./routes"; import accountApi, { Permission, Role } from "../app/AccountApi"; import { Pref, PrefGroup } from "./Pref"; -import { AccountContext } from "./App"; +import AccountContext from "./AccountContext"; import { Paragraph } from "./styles"; import prefs, { THEME } from "../app/Prefs"; import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite } from "./ReserveIcons"; diff --git a/web/src/components/PublishDialog.jsx b/web/src/components/PublishDialog.jsx index 6f6893ed..8b20e766 100644 --- a/web/src/components/PublishDialog.jsx +++ b/web/src/components/PublishDialog.jsx @@ -40,7 +40,7 @@ import session from "../app/Session"; import routes from "./routes"; import accountApi from "../app/AccountApi"; import { UnauthorizedError } from "../app/errors"; -import { AccountContext } from "./App"; +import AccountContext from "./AccountContext"; const PublishDialog = (props) => { const theme = useTheme(); diff --git a/web/src/components/SubscribeDialog.jsx b/web/src/components/SubscribeDialog.jsx index d0ceda61..bc8bbe2d 100644 --- a/web/src/components/SubscribeDialog.jsx +++ b/web/src/components/SubscribeDialog.jsx @@ -26,7 +26,7 @@ import session from "../app/Session"; import routes from "./routes"; import accountApi, { Permission, Role } from "../app/AccountApi"; import ReserveTopicSelect from "./ReserveTopicSelect"; -import { AccountContext } from "./App"; +import AccountContext from "./AccountContext"; import { TopicReservedError, UnauthorizedError } from "../app/errors"; import { ReserveLimitChip } from "./SubscriptionPopup"; import prefs from "../app/Prefs"; diff --git a/web/src/components/SubscriptionPopup.jsx b/web/src/components/SubscriptionPopup.jsx index a3bc05d9..59772979 100644 --- a/web/src/components/SubscriptionPopup.jsx +++ b/web/src/components/SubscriptionPopup.jsx @@ -39,7 +39,7 @@ import routes from "./routes"; import PopupMenu from "./PopupMenu"; import { formatShortDateTime, shuffle } from "../app/utils"; import api from "../app/Api"; -import { AccountContext } from "./App"; +import AccountContext from "./AccountContext"; import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; diff --git a/web/src/components/UpgradeDialog.jsx b/web/src/components/UpgradeDialog.jsx index 712c47ec..4cc8d1f0 100644 --- a/web/src/components/UpgradeDialog.jsx +++ b/web/src/components/UpgradeDialog.jsx @@ -28,7 +28,7 @@ import { Check, Close } from "@mui/icons-material"; import { NavLink } from "react-router-dom"; import { UnauthorizedError } from "../app/errors"; import { formatBytes, formatNumber, formatPrice, formatShortDate } from "../app/utils"; -import { AccountContext } from "./App"; +import AccountContext from "./AccountContext"; import routes from "./routes"; import session from "../app/Session"; import accountApi, { SubscriptionInterval } from "../app/AccountApi";