diff --git a/components/admin/nav/web-selector/WebSelector.tsx b/components/admin/nav/web-selector/WebSelector.tsx index 1faefa27..52eca676 100644 --- a/components/admin/nav/web-selector/WebSelector.tsx +++ b/components/admin/nav/web-selector/WebSelector.tsx @@ -23,8 +23,6 @@ const WebSelector = () => { const { permissions } = usePermissions() const { ownerships } = useMyOwnerships() - console.log({ webs, ownerships }) - const allUniqueWebIds = useMemo(() => { if (!permissions && !ownerships) { return [] diff --git a/store/StoreProvider.tsx b/store/StoreProvider.tsx index 9d80f959..2776f715 100644 --- a/store/StoreProvider.tsx +++ b/store/StoreProvider.tsx @@ -2,6 +2,7 @@ import { useEffect, useState, useMemo } from 'react' import useLocalStorage from 'use-local-storage' import { useMediaQuerySSR } from '@hooks/application' import { AppContext } from '@store/AppContext' +import { useWebs } from '@hooks/webs' const DEFAULT_SELECTED_WEB = 'cambridge-city' @@ -12,9 +13,10 @@ const StoreProvider = ({ children }) => { 'selected-web', DEFAULT_SELECTED_WEB, ) - const [webs, setWebs] = useState([]) const [subdomain, setSubdomain] = useState() + const { webs } = useWebs() + useEffect(() => { const hostname = window.location.hostname if (!hostname.includes('.')) { @@ -29,22 +31,6 @@ const StoreProvider = ({ children }) => { setIsAdminMode(isAdminMode) }, []) - async function fetchWebs() { - const response = await fetch('/api/webs') - - if (response.status === 200) { - const data = await response.json() - const { webs } = data - setWebs(webs) - } else { - console.error('Failed to fetch webs in StoreProvider') - } - } - - useEffect(() => { - void fetchWebs() - }, []) - useEffect(() => { if (subdomain && subdomain !== 'resilienceweb') { setSelectedWebSlug(subdomain) @@ -57,20 +43,26 @@ const StoreProvider = ({ children }) => { } }, [selectedWebSlug, webs]) - return ( - - {children} - + const value = useMemo( + () => ({ + isAdminMode, + isMobile, + selectedWebSlug, + setSelectedWebSlug, + selectedWebId, + webs, + }), + [ + isAdminMode, + isMobile, + selectedWebId, + selectedWebSlug, + setSelectedWebSlug, + webs, + ], ) + + return {children} } export default StoreProvider