From d1d82f5b3c950a60845dfedb6b7672019fd461e9 Mon Sep 17 00:00:00 2001 From: Usman Baig Date: Sat, 21 Feb 2026 19:58:48 +0100 Subject: [PATCH] feat: refine data retention adjustment logic in SiteSettingsPage to snap to nearest valid option upon subscription load --- app/sites/[id]/settings/page.tsx | 5 +++-- lib/utils/privacySnippet.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/sites/[id]/settings/page.tsx b/app/sites/[id]/settings/page.tsx index 95ee5ce..778ea6b 100644 --- a/app/sites/[id]/settings/page.tsx +++ b/app/sites/[id]/settings/page.tsx @@ -109,7 +109,7 @@ export default function SiteSettingsPage() { } } - // * Clamp data_retention_months when subscription loads: if current value exceeds plan max, sync to max + // * Snap data_retention_months to nearest valid option when subscription loads useEffect(() => { if (!subscription) return const opts = getRetentionOptionsForPlan(subscription.plan_id) @@ -117,7 +117,8 @@ export default function SiteSettingsPage() { const maxVal = Math.max(...values) setFormData(prev => { if (values.includes(prev.data_retention_months)) return prev - return { ...prev, data_retention_months: Math.min(prev.data_retention_months, maxVal) } + const bestFit = values.filter(v => v <= prev.data_retention_months).pop() ?? maxVal + return { ...prev, data_retention_months: Math.min(bestFit, maxVal) } }) }, [subscription]) diff --git a/lib/utils/privacySnippet.ts b/lib/utils/privacySnippet.ts index ae4b1ed..36dad18 100644 --- a/lib/utils/privacySnippet.ts +++ b/lib/utils/privacySnippet.ts @@ -23,7 +23,7 @@ export function generatePrivacySnippet(site: Site): string { const screen = site.collect_screen_resolution ?? true const perf = site.enable_performance_insights ?? false const filterBots = site.filter_bots ?? true - const retentionMonths = site.data_retention_months ?? 12 + const retentionMonths = site.data_retention_months ?? 6 const parts: string[] = [] if (paths) parts.push('which pages are viewed')