diff --git a/app/soapbox/containers/soapbox.tsx b/app/soapbox/containers/soapbox.tsx index 54404b92a..ff4d442ae 100644 --- a/app/soapbox/containers/soapbox.tsx +++ b/app/soapbox/containers/soapbox.tsx @@ -17,7 +17,6 @@ import * as BuildConfig from 'soapbox/build_config'; import GdprBanner from 'soapbox/components/gdpr-banner'; import Helmet from 'soapbox/components/helmet'; import LoadingScreen from 'soapbox/components/loading-screen'; -import { AuthProvider, useAuth } from 'soapbox/contexts/auth-context'; import AuthLayout from 'soapbox/features/auth_layout'; import EmbeddedStatus from 'soapbox/features/embedded-status'; import PublicLayout from 'soapbox/features/public_layout'; @@ -41,7 +40,6 @@ import { } from 'soapbox/hooks'; import MESSAGES from 'soapbox/locales/messages'; import { queryClient } from 'soapbox/queries/client'; -import { useAxiosInterceptors } from 'soapbox/queries/client'; import { useCachedLocationHandler } from 'soapbox/utils/redirect'; import { generateThemeCss } from 'soapbox/utils/theme'; @@ -65,7 +63,7 @@ const loadInitial = () => { // @ts-ignore return async(dispatch, getState) => { // Await for authenticated fetch - const account = await dispatch(fetchMe()); + await dispatch(fetchMe()); // Await for feature detection await dispatch(loadInstance()); // Await for configuration @@ -78,8 +76,6 @@ const loadInitial = () => { if (pepeEnabled && !state.me) { await dispatch(fetchVerificationConfig()); } - - return account; }; }; @@ -209,9 +205,6 @@ interface ISoapboxLoad { /** Initial data loader. */ const SoapboxLoad: React.FC = ({ children }) => { const dispatch = useAppDispatch(); - const { setAccount, token, baseApiUri } = useAuth(); - - useAxiosInterceptors(token, baseApiUri); const me = useAppSelector(state => state.me); const account = useOwnAccount(); @@ -241,8 +234,7 @@ const SoapboxLoad: React.FC = ({ children }) => { // Load initial data from the API useEffect(() => { - dispatch(loadInitial()).then((account) => { - setAccount(account); + dispatch(loadInitial()).then(() => { setIsLoaded(true); }).catch(() => { setIsLoaded(true); @@ -301,15 +293,13 @@ const SoapboxHead: React.FC = ({ children }) => { const Soapbox: React.FC = () => { return ( - - - - - - - - - + + + + + + + ); }; diff --git a/app/soapbox/contexts/auth-context.tsx b/app/soapbox/contexts/auth-context.tsx deleted file mode 100644 index 7c023e92d..000000000 --- a/app/soapbox/contexts/auth-context.tsx +++ /dev/null @@ -1,77 +0,0 @@ - -import React, { - createContext, - useContext, - useEffect, - useMemo, - useState, -} from 'react'; - -import { localState } from 'soapbox/reducers/auth'; -import { parseBaseURL } from 'soapbox/utils/auth'; - -const AuthContext = createContext(null as any); - -interface IAccount { - acct: string - avatar: string - avatar_static: string - bot: boolean - created_at: string - discoverable: boolean - display_name: string - emojis: string[] - fields: any // not sure - followers_count: number - following_count: number - group: boolean - header: string - header_static: string - id: string - last_status_at: string - location: string - locked: boolean - note: string - statuses_count: number - url: string - username: string - verified: boolean - website: string -} - -export const AuthProvider: React.FC = ({ children }: { children: React.ReactNode }) => { - const [account, setAccount] = useState(); - const [token, setToken] = useState(); - const [baseApiUri, setBaseApiUri] = useState(); - - const value = useMemo(() => ({ - account, - baseApiUri, - setAccount, - token, - }), [account]); - - useEffect(() => { - const cachedAuth: any = localState?.toJS(); - - if (cachedAuth?.me) { - setToken(cachedAuth.users[cachedAuth.me].access_token); - setBaseApiUri(parseBaseURL(cachedAuth.users[cachedAuth.me].url)); - } - }, []); - - return ( - - {children} - - ); -}; - -interface IAuth { - account: IAccount - baseApiUri: string - setAccount(account: IAccount): void - token: string -} - -export const useAuth = (): IAuth => useContext(AuthContext); diff --git a/app/soapbox/queries/client.ts b/app/soapbox/queries/client.ts index dd9fafa46..a1b90ecf1 100644 --- a/app/soapbox/queries/client.ts +++ b/app/soapbox/queries/client.ts @@ -1,38 +1,4 @@ import { QueryClient } from '@tanstack/react-query'; -import axios, { AxiosRequestConfig } from 'axios'; - -import * as BuildConfig from 'soapbox/build_config'; -import { isURL } from 'soapbox/utils/auth'; - -const maybeParseJSON = (data: string) => { - try { - return JSON.parse(data); - } catch (Exception) { - return data; - } -}; - -const API = axios.create({ - transformResponse: [maybeParseJSON], -}); - -const useAxiosInterceptors = (token: string, baseApiUri: string) => { - API.interceptors.request.use( - async (config: AxiosRequestConfig) => { - if (token) { - config.baseURL = isURL(BuildConfig.BACKEND_URL) ? BuildConfig.BACKEND_URL : baseApiUri; - // eslint-disable-next-line no-param-reassign - config.headers = { - ...config.headers, - Authorization: (token ? `Bearer ${token}` : null) as string | number | boolean | string[] | undefined, - } as any; - } - - return config; - }, - (error) => Promise.reject(error), - ); -}; const queryClient = new QueryClient({ defaultOptions: { @@ -40,8 +6,9 @@ const queryClient = new QueryClient({ refetchOnWindowFocus: false, staleTime: 60000, // 1 minute cacheTime: Infinity, + retry: false, }, }, }); -export { API as default, queryClient, useAxiosInterceptors }; +export { queryClient };