From 31471792f896bcac6b912d664dfa3a409da1729c Mon Sep 17 00:00:00 2001 From: Usman Baig Date: Mon, 23 Mar 2026 11:58:09 +0100 Subject: [PATCH] feat(pagespeed): move frequency selector to site settings Revert inline frequency toggle from pagespeed page. Add PageSpeed Monitoring section to site settings under the Data tab with a Select dropdown for Daily/Weekly/Monthly. Shows "Not enabled" when PSI is off. --- app/sites/[id]/pagespeed/page.tsx | 29 +------------------- app/sites/[id]/settings/page.tsx | 45 ++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/app/sites/[id]/pagespeed/page.tsx b/app/sites/[id]/pagespeed/page.tsx index 71d3265..6ff082c 100644 --- a/app/sites/[id]/pagespeed/page.tsx +++ b/app/sites/[id]/pagespeed/page.tsx @@ -471,34 +471,7 @@ export default function PageSpeedPage() { )} - {/* Frequency selector */} - {canEdit && config && ( -
- {(['daily', 'weekly', 'monthly'] as const).map(f => ( - - ))} -
- )} - {!canEdit && config?.frequency && ( + {config?.frequency && ( {config.frequency} diff --git a/app/sites/[id]/settings/page.tsx b/app/sites/[id]/settings/page.tsx index 6e1520f..3b2d05d 100644 --- a/app/sites/[id]/settings/page.tsx +++ b/app/sites/[id]/settings/page.tsx @@ -21,7 +21,8 @@ import { Select, Modal, Button } from '@ciphera-net/ui' import { APP_URL } from '@/lib/api/client' import { generatePrivacySnippet } from '@/lib/utils/privacySnippet' import { useUnsavedChanges } from '@/lib/hooks/useUnsavedChanges' -import { useSite, useGoals, useReportSchedules, useAlertSchedules, useSubscription, useGSCStatus, useBunnyStatus, useSessions, useBotFilterStats } from '@/lib/swr/dashboard' +import { useSite, useGoals, useReportSchedules, useAlertSchedules, useSubscription, useGSCStatus, useBunnyStatus, useSessions, useBotFilterStats, usePageSpeedConfig } from '@/lib/swr/dashboard' +import { updatePageSpeedConfig } from '@/lib/api/pagespeed' import { getRetentionOptionsForPlan, formatRetentionMonths } from '@/lib/plans' import { motion, AnimatePresence } from 'framer-motion' import { useAuth } from '@/lib/auth/context' @@ -130,6 +131,7 @@ export default function SiteSettingsPage() { const [gscConnecting, setGscConnecting] = useState(false) const [gscDisconnecting, setGscDisconnecting] = useState(false) const { data: bunnyStatus, mutate: mutateBunnyStatus } = useBunnyStatus(siteId) + const { data: psiConfig, mutate: mutatePSIConfig } = usePageSpeedConfig(siteId) const [bunnyApiKey, setBunnyApiKey] = useState('') const [bunnyPullZones, setBunnyPullZones] = useState([]) const [bunnySelectedZone, setBunnySelectedZone] = useState(null) @@ -1345,6 +1347,47 @@ export default function SiteSettingsPage() { + {/* PageSpeed Monitoring */} +
+

PageSpeed Monitoring

+
+
+
+

Check frequency

+

+ How often PageSpeed Insights runs automated checks on your site. +

+
+ {psiConfig?.enabled ? ( +