diff --git a/app/sites/[id]/settings/page.tsx b/app/sites/[id]/settings/page.tsx index fefa324..2d6e11e 100644 --- a/app/sites/[id]/settings/page.tsx +++ b/app/sites/[id]/settings/page.tsx @@ -73,6 +73,8 @@ export default function SiteSettingsPage() { enable_performance_insights: false, // Bot and noise filtering filter_bots: true, + // Hide unknown locations + hide_unknown_locations: false, // Data retention (6 = free-tier max; safe default) data_retention_months: 6 }) @@ -146,6 +148,8 @@ export default function SiteSettingsPage() { enable_performance_insights: data.enable_performance_insights ?? false, // Bot and noise filtering (default to true) filter_bots: data.filter_bots ?? true, + // Hide unknown locations (default to false) + hide_unknown_locations: data.hide_unknown_locations ?? false, // Data retention (default 6 = free-tier max; avoids flash-then-clamp for existing sites) data_retention_months: data.data_retention_months ?? 6 }) @@ -161,6 +165,7 @@ export default function SiteSettingsPage() { collect_screen_resolution: data.collect_screen_resolution ?? true, enable_performance_insights: data.enable_performance_insights ?? false, filter_bots: data.filter_bots ?? true, + hide_unknown_locations: data.hide_unknown_locations ?? false, data_retention_months: data.data_retention_months ?? 6 }) if (data.has_password) { @@ -277,6 +282,8 @@ export default function SiteSettingsPage() { enable_performance_insights: formData.enable_performance_insights, // Bot and noise filtering filter_bots: formData.filter_bots, + // Hide unknown locations + hide_unknown_locations: formData.hide_unknown_locations, // Data retention data_retention_months: formData.data_retention_months }) @@ -293,6 +300,7 @@ export default function SiteSettingsPage() { collect_screen_resolution: formData.collect_screen_resolution, enable_performance_insights: formData.enable_performance_insights, filter_bots: formData.filter_bots, + hide_unknown_locations: formData.hide_unknown_locations, data_retention_months: formData.data_retention_months }) loadSite() @@ -360,6 +368,7 @@ export default function SiteSettingsPage() { collect_screen_resolution: formData.collect_screen_resolution, enable_performance_insights: formData.enable_performance_insights, filter_bots: formData.filter_bots, + hide_unknown_locations: formData.hide_unknown_locations, data_retention_months: formData.data_retention_months }) !== initialFormRef.current @@ -885,6 +894,25 @@ export default function SiteSettingsPage() { +
+
+
+

Hide unknown locations

+

+ Exclude entries where geographic data could not be resolved from location stats +

+
+ +
+
{/* Performance Insights Toggle */} diff --git a/lib/api/sites.ts b/lib/api/sites.ts index 75157cf..e17d886 100644 --- a/lib/api/sites.ts +++ b/lib/api/sites.ts @@ -21,6 +21,8 @@ export interface Site { enable_performance_insights?: boolean // Bot and noise filtering filter_bots?: boolean + // Hide unknown locations from stats + hide_unknown_locations?: boolean // Data retention (months); 0 = keep forever data_retention_months?: number created_at: string @@ -49,6 +51,8 @@ export interface UpdateSiteRequest { enable_performance_insights?: boolean // Bot and noise filtering filter_bots?: boolean + // Hide unknown locations from stats + hide_unknown_locations?: boolean // Data retention (months); 0 = keep forever data_retention_months?: number }