From b4c2270973407a6aa00a34413c6e2db3556a2c59 Mon Sep 17 00:00:00 2001 From: jtricerolph Date: Tue, 25 Aug 2026 11:26:50 +0000 Subject: [PATCH] Fix "Configured" badge for secret-less integrations (hotel_location) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit isConfigured only checked integration.secrets for a MASKED value, so any integration with zero secretFields (hotel_location: lat/lon only, no secrets) could never show "Configured" even with valid values saved — same edge case hosted_tables already needed a special-case for. Add the matching special-case for hotel_location. Also add proper FIELD_LABELS entries for latitude/longitude instead of showing the raw field name. Co-Authored-By: Claude Sonnet 5 --- src/pages/AdminSettings.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/AdminSettings.tsx b/src/pages/AdminSettings.tsx index 2d9a46c..5c581ad 100644 --- a/src/pages/AdminSettings.tsx +++ b/src/pages/AdminSettings.tsx @@ -39,6 +39,7 @@ const FIELD_LABELS: Record = { email: 'Email', sync_hours: 'Sync Interval (hours)', user: 'Username', pass: 'Password', location_id: 'Default Location', from: 'From Address', reply_to: 'Reply-To Address', backup_path: 'Backup Directory', site_url: 'Site URL', + latitude: 'Latitude', longitude: 'Longitude', } interface AppRow { @@ -241,6 +242,7 @@ function IntegrationCard({ integration, onSaved }: { integration: Integration; o const isConfigured = Object.values(integration.secrets).some(v => v === MASKED) || (integration.slug === 'hosted_tables' && !!integration.config.site_url) + || (integration.slug === 'hotel_location' && !!integration.config.latitude && !!integration.config.longitude) return (