From 3a4dccd9f0947d0d16034a845d1ac30e5eea1cfd Mon Sep 17 00:00:00 2001 From: paul Date: Sun, 20 Jul 2025 21:00:43 +0200 Subject: [PATCH] fix: resolve production UI and API issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixed backend version endpoint by adding retry logic import - Gallery login page improvements: * Increased title size from text-xl to text-2xl (responsive scaling) * Title now uses event's custom primary color (var(--color-primary)) * Removed event category badge from login page - Fixed Umami analytics configuration check: * Added proper enabled state tracking * Warning now only shows when Umami is explicitly not configured * Checks both admin settings and environment variables properly These changes improve user experience and fix false warnings in production. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- backend/src/routes/adminSystem.js | 2 +- frontend/src/pages/GalleryPage.tsx | 11 +---------- frontend/src/pages/admin/AnalyticsPage.tsx | 17 ++++++++++++----- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/backend/src/routes/adminSystem.js b/backend/src/routes/adminSystem.js index e56407d..c726ddd 100644 --- a/backend/src/routes/adminSystem.js +++ b/backend/src/routes/adminSystem.js @@ -1,5 +1,5 @@ const express = require('express'); -const { db } = require('../database/db'); +const { db, withRetry } = require('../database/db'); const { adminAuth } = require('../middleware/auth-enhanced-v2'); const fs = require('fs').promises; const path = require('path'); diff --git a/frontend/src/pages/GalleryPage.tsx b/frontend/src/pages/GalleryPage.tsx index 693f7d6..dbc7497 100644 --- a/frontend/src/pages/GalleryPage.tsx +++ b/frontend/src/pages/GalleryPage.tsx @@ -289,18 +289,9 @@ export const GalleryPage: React.FC = () => { alt={settingsData?.branding_company_name || 'PicPeak'} className="h-12 sm:h-16 lg:h-20 w-auto object-contain mx-auto mb-3 sm:mb-4" /> -

+

{galleryInfo?.event_name}

- {galleryInfo?.event_type && ( -
- - - {t(`events.types.${galleryInfo.event_type}`)} - - -
- )} {/* Expiration Warning */} diff --git a/frontend/src/pages/admin/AnalyticsPage.tsx b/frontend/src/pages/admin/AnalyticsPage.tsx index 926113d..be7993b 100644 --- a/frontend/src/pages/admin/AnalyticsPage.tsx +++ b/frontend/src/pages/admin/AnalyticsPage.tsx @@ -53,7 +53,7 @@ export const AnalyticsPage: React.FC = () => { const [isEmbedMode, setIsEmbedMode] = useState(false); // Check if Umami is configured from settings or environment - const [umamiConfig, setUmamiConfig] = useState<{ url?: string; shareUrl?: string }>({}); + const [umamiConfig, setUmamiConfig] = useState<{ url?: string; shareUrl?: string; enabled?: boolean }>({}); // Fetch analytics data from backend const { data: apiData, isLoading, refetch } = useQuery({ @@ -82,7 +82,8 @@ export const AnalyticsPage: React.FC = () => { if (settings.umami_enabled && settings.umami_url && settings.umami_website_id) { setUmamiConfig({ url: settings.umami_url, - shareUrl: settings.umami_share_url + shareUrl: settings.umami_share_url, + enabled: true }); } else { // Fall back to environment variables if they exist @@ -92,8 +93,11 @@ export const AnalyticsPage: React.FC = () => { if (envUrl && envWebsiteId) { setUmamiConfig({ url: envUrl, - shareUrl: import.meta.env.VITE_UMAMI_SHARE_URL + shareUrl: import.meta.env.VITE_UMAMI_SHARE_URL, + enabled: true }); + } else { + setUmamiConfig({ enabled: false }); } } } catch (error) { @@ -105,8 +109,11 @@ export const AnalyticsPage: React.FC = () => { if (envUrl && envWebsiteId) { setUmamiConfig({ url: envUrl, - shareUrl: import.meta.env.VITE_UMAMI_SHARE_URL + shareUrl: import.meta.env.VITE_UMAMI_SHARE_URL, + enabled: true }); + } else { + setUmamiConfig({ enabled: false }); } } }; @@ -450,7 +457,7 @@ export const AnalyticsPage: React.FC = () => { {/* Configuration Notice */} - {!umamiConfig.url && ( + {umamiConfig.enabled === false && (