From 020e33f42b852706f37f071f65eb50220c476a93 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Tue, 28 Jun 2022 20:01:53 +0200 Subject: [PATCH] support light theme --- src/renderer/App.tsx | 17 ++++++- .../available-version-item.component.tsx | 2 +- .../modal-types/guard-modal.component.tsx | 6 +-- .../installation-folder-modal.component.tsx | 4 +- .../modal-types/login-modal.component.tsx | 12 ++--- .../modal-types/uninstall-modal.component.tsx | 4 +- .../components/modal/modal.component.tsx | 2 +- .../nav-bar/bs-version-item.component.tsx | 6 +-- .../components/nav-bar/nav-bar.component.tsx | 2 +- .../bsm-progress-bar.component.tsx | 22 +++------ .../setting-color-chooser.component.tsx | 2 +- .../settings/setting-container.component.tsx | 4 +- .../setting-radio-array.component.tsx | 8 ++-- .../shared/bsm-button.component.tsx | 4 +- .../shared/bsm-dropdown-button.component.tsx | 10 ++--- .../shared/tab-nav-bar.component.tsx | 2 +- .../title-bar/title-bar.component.tsx | 10 ++--- .../config/default-configuration.config.ts | 7 ++- .../pages/settings-page.component.tsx | 45 ++++++++++++------- .../pages/version-viewer.component.tsx | 18 ++++---- src/renderer/services/modale.service.ts | 1 + src/renderer/services/theme.service.ts | 35 +++++++++++++++ tailwind.config.js | 6 +++ 23 files changed, 143 insertions(+), 86 deletions(-) create mode 100644 src/renderer/services/theme.service.ts diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index 940723e8..506644cd 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -6,16 +6,29 @@ import { VersionViewer } from "./pages/version-viewer.component"; import { Modal } from "./components/modal/modal.component"; import { SettingsPage } from "./pages/settings-page.component"; import { BsmProgressBar } from "./components/progress-bar/bsm-progress-bar.component"; +import { useEffect } from "react"; +import { ThemeService } from "./services/theme.service"; +import { ThemeConfig } from "./config/default-configuration.config"; export default function App() { + const themeService = ThemeService.getInstance(); + + useEffect(() => { + themeService.theme$.subscribe(() => { + if(themeService.isDark || (themeService.isOS && window.matchMedia('(prefers-color-scheme: dark)').matches)){ document.documentElement.classList.add('dark'); } + else { document.documentElement.classList.remove('dark'); } + }); + }, []) + + return ( -