mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-06-13 02:49:37 +00:00
58838f225c
Rewrite of the UI using Typescript, Vue3, Windicss and Vite. The design should be close to the current one with some changes: - latest pipeline in a sidebar on the right - secrets and registry as part of the repo-settings (secrets and registry entries shouldn't be used as much so they can be "hidden" under settings IMO) - start page shows list of active repositories with button to enable / add new ones (currently you see all repositories and in most cases you only add new repositories once in a while)
44 lines
1 KiB
TypeScript
44 lines
1 KiB
TypeScript
import { computed, ref, watch } from 'vue';
|
|
|
|
const LS_DARK_MODE = 'woodpecker:dark-mode';
|
|
const isDarkModeActive = ref(false);
|
|
|
|
watch(isDarkModeActive, (isActive) => {
|
|
if (isActive) {
|
|
document.documentElement.classList.remove('light');
|
|
document.documentElement.classList.add('dark');
|
|
} else {
|
|
document.documentElement.classList.remove('dark');
|
|
document.documentElement.classList.add('light');
|
|
}
|
|
});
|
|
|
|
function setDarkMode(isActive: boolean) {
|
|
isDarkModeActive.value = isActive;
|
|
localStorage.setItem(LS_DARK_MODE, isActive ? 'dark' : 'light');
|
|
}
|
|
|
|
function load() {
|
|
const isActive = localStorage.getItem(LS_DARK_MODE) as 'dark' | 'light' | null;
|
|
if (isActive === null) {
|
|
setDarkMode(window.matchMedia('(prefers-color-scheme: dark)').matches);
|
|
} else {
|
|
setDarkMode(isActive === 'dark');
|
|
}
|
|
}
|
|
|
|
load();
|
|
|
|
export function useDarkMode() {
|
|
return {
|
|
darkMode: computed({
|
|
get() {
|
|
return isDarkModeActive.value;
|
|
},
|
|
set(isActive: boolean) {
|
|
setDarkMode(isActive);
|
|
},
|
|
}),
|
|
};
|
|
}
|