import React, { Dispatch, SetStateAction, useEffect, useRef, useState, lazy } from "react"; import PageSpeedWidget from "app/dashboard/components/performance-widgets/PageSpeedWidget"; import LicenseWidget from "app/dashboard/components/LicenseWidget"; import UnusedCSSSummary from "app/dashboard/components/UnusedCSSSummary"; import CacheSummary from "app/dashboard/components/CacheSummary"; import CDNSummary from "app/dashboard/components/CDNSummary"; import OptimizerPagesTable from "app/dashboard/components/OptimizerPagesTable"; import GeneralSettings from "app/dashboard/components/GeneralSettings"; import Header from "app/page-optimizer/components/Header"; import { useDispatch, useSelector } from "react-redux"; import { useAppContext } from "../../context/app"; import { cn } from "lib/utils"; import Audit from "app/page-optimizer/components/audit/Audit"; import Footer from "app/page-optimizer/components/Footer"; import Loading from "components/loading"; import { optimizerData } from "../../store/app/appSelector"; import { ArrowLeftToLine, ArrowRightToLine, Circle, Loader, ThumbsUp } from "lucide-react"; import TooltipText from "components/ui/tooltip-text"; import { m, AnimatePresence } from "framer-motion"; import { ExclamationCircleIcon } from "@heroicons/react/20/solid"; import { Toaster } from "components/ui/toaster"; import usePerformanceColors from "hooks/usePerformanceColors"; import Indicator from "components/indicator"; import Performance from "app/page-optimizer/spaces/Performance"; import SpeedIndex from "app/page-optimizer/spaces/Metrics"; import TogglePerformance from "components/toggle-performance"; import useCommonDispatch from "hooks/useCommonDispatch"; import SlideUp from "components/animation/SlideUp"; import { JsonView } from "react-json-view-lite"; import ErrorFetch from "components/ErrorFetch"; import SpeedInsights from "../speed-popover/components/speed-insights"; import { ContentSelector } from "components/ui/content-selector"; import { AppAction, RootState } from "../../store/app/appTypes"; import { fetchPosts } from "../../store/app/appActions"; import { ThunkDispatch } from "redux-thunk"; import PerformanceGears from "./components/performance-widgets/PerformanceGears"; import PerformanceWidget from './components/performance-widgets/PerformanceWidget'; import PageSpeedCoach from './components/performance-widgets/PageSpeedCoach'; import AIBot from "./components/AIBot"; import DbUpdate from "./components/DbUpdate"; export interface AuditComponentRef { notifyHeightChange: () => void; } export default function Dashboard() { const { data, loading, error } = useSelector(optimizerData); const { license } = useSelector(optimizerData); const { options, savingData, togglePerformance, optimizerContainer, invalidatingCache } = useAppContext() const [open, setOpen] = useState({ dbUpdate: options?.db_to_be_updated === '1', }); let url = options?.optimizer_url; const dispatch: ThunkDispatch = useDispatch(); // TODO: temp fix for scroll view leakage useEffect(() => { if (savingData) { const content = document.getElementById('rapidload-page-optimizer-content'); content?.scrollTo(0, 0) } }, [savingData]) const handleOpenChange = (key: string, isOpen: boolean) => { setOpen(prev => ({ ...prev, [key]: isOpen })); }; return <> {/*{!license?.licensedDomain && (*/} {/*
*/} {/*)}*/}
{/*{(savingData || invalidatingCache) && (*/} {/* */} {/*
*/} {/* */} {/* {savingData && 'Saving Changes...'}*/} {/* {invalidatingCache && 'Flushing Cache...'}*/} {/*
*/} {/*
*/} {/*)}*/} {/* border-b border-brand-950 */} {/*
*/}
{/* Left Column */}
{/* Middle Column */}
{/* Right Column */}
handleOpenChange("dbUpdate", isOpen)} /> {/*{!error && (*/} {/*