Skip to content

Commit efc2d12

Browse files
committed
Minor bug fix
1 parent b24e435 commit efc2d12

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

exec/java-exec/src/main/resources/webapp/src/pages/DashboardViewPage.tsx

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ import html2canvas from 'html2canvas';
5858
import { jsPDF } from 'jspdf';
5959
import { getDashboard, updateDashboard, getFavorites, toggleFavorite, uploadImage } from '../api/dashboards';
6060
import { getVisualizations } from '../api/visualizations';
61-
import { DashboardPanelCard, DashboardSettingsDrawer, DEFAULT_THEME } from '../components/dashboard';
61+
import { DashboardPanelCard, DashboardSettingsDrawer, DEFAULT_THEME, DARK_THEME } from '../components/dashboard';
62+
import { useTheme } from '../hooks/useTheme';
6263
import type { DashboardPanel, DashboardTab, DashboardTheme } from '../types';
6364

6465
import 'react-grid-layout/css/styles.css';
@@ -83,10 +84,14 @@ export default function DashboardViewPage() {
8384
const queryClient = useQueryClient();
8485
const gridRef = useRef<HTMLDivElement>(null);
8586

87+
const { isDark } = useTheme();
88+
const globalDefaultTheme = isDark ? DARK_THEME : DEFAULT_THEME;
89+
8690
const [editMode, setEditMode] = useState(false);
8791
const [panels, setPanels] = useState<DashboardPanel[]>([]);
8892
const [tabs, setTabs] = useState<DashboardTab[]>([]);
89-
const [theme, setTheme] = useState<DashboardTheme>(DEFAULT_THEME);
93+
const [theme, setTheme] = useState<DashboardTheme>(globalDefaultTheme);
94+
const [hasCustomTheme, setHasCustomTheme] = useState(false);
9095
const [panelsInitialized, setPanelsInitialized] = useState(false);
9196
const [refreshInterval, setRefreshInterval] = useState(0);
9297
const [addPanelVisible, setAddPanelVisible] = useState(false);
@@ -135,11 +140,20 @@ export default function DashboardViewPage() {
135140
if (dashboard && !panelsInitialized) {
136141
setPanels(dashboard.panels || []);
137142
setTabs(dashboard.tabs || []);
138-
setTheme(dashboard.theme || DEFAULT_THEME);
143+
const savedTheme = dashboard.theme;
144+
setHasCustomTheme(!!savedTheme);
145+
setTheme(savedTheme || globalDefaultTheme);
139146
setRefreshInterval(dashboard.refreshInterval || 0);
140147
setPanelsInitialized(true);
141148
}
142-
}, [dashboard, panelsInitialized]);
149+
}, [dashboard, panelsInitialized, globalDefaultTheme]);
150+
151+
// When global dark mode changes, update dashboards that use the default theme
152+
useEffect(() => {
153+
if (panelsInitialized && !hasCustomTheme) {
154+
setTheme(globalDefaultTheme);
155+
}
156+
}, [globalDefaultTheme, panelsInitialized, hasCustomTheme]);
143157

144158
// Fetch available visualizations for "Add panel" modal
145159
const { data: visualizations } = useQuery({
@@ -283,12 +297,13 @@ export default function DashboardViewPage() {
283297
if (dashboard) {
284298
setPanels(dashboard.panels || []);
285299
setTabs(dashboard.tabs || []);
286-
setTheme(dashboard.theme || DEFAULT_THEME);
300+
setTheme(dashboard.theme || globalDefaultTheme);
301+
setHasCustomTheme(!!dashboard.theme);
287302
setRefreshInterval(dashboard.refreshInterval || 0);
288303
}
289304
}
290305
setEditMode(!editMode);
291-
}, [editMode, dashboard]);
306+
}, [editMode, dashboard, globalDefaultTheme]);
292307

293308
// Save and exit edit mode
294309
const handleSave = useCallback(() => {
@@ -449,7 +464,7 @@ export default function DashboardViewPage() {
449464
{tab.name}
450465
{editMode && (
451466
<CloseOutlined
452-
style={{ marginLeft: 8, fontSize: 10, color: '#999' }}
467+
style={{ marginLeft: 8, fontSize: 10, color: 'var(--color-text-tertiary)' }}
453468
onClick={(e) => {
454469
e.stopPropagation();
455470
handleDeleteTab(tab.id);
@@ -635,7 +650,7 @@ export default function DashboardViewPage() {
635650
open={settingsOpen}
636651
theme={theme}
637652
onClose={() => setSettingsOpen(false)}
638-
onThemeChange={setTheme}
653+
onThemeChange={(t) => { setTheme(t); setHasCustomTheme(true); }}
639654
/>
640655

641656
{/* Add Panel Modal */}

0 commit comments

Comments
 (0)