vueless 0.0.500 → 0.0.502
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { nextTick } from "process";
|
|
2
|
+
import { DARK_MODE_SELECTOR } from "../constants.js";
|
|
3
|
+
import { onMounted, ref } from "vue";
|
|
4
|
+
|
|
5
|
+
export function useDarkMode() {
|
|
6
|
+
const isDarkMode = ref(false);
|
|
7
|
+
|
|
8
|
+
onMounted(() => {
|
|
9
|
+
nextTick(() => {
|
|
10
|
+
const isDarkModeClass = document.documentElement.classList.contains(DARK_MODE_SELECTOR);
|
|
11
|
+
const isDarkModeCache = Boolean(localStorage.getItem(DARK_MODE_SELECTOR));
|
|
12
|
+
|
|
13
|
+
isDarkMode.value = isDarkModeCache || isDarkModeClass;
|
|
14
|
+
|
|
15
|
+
window.addEventListener("darkModeChange", ((event: CustomEvent) => {
|
|
16
|
+
isDarkMode.value = Boolean(event.detail);
|
|
17
|
+
}) as EventListener);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
return { isDarkMode };
|
|
22
|
+
}
|
package/package.json
CHANGED
|
@@ -411,15 +411,15 @@ function shiftRangeNext(to: Date, from: Date, daysDifference: number) {
|
|
|
411
411
|
if (isPeriod.value.ownRange) {
|
|
412
412
|
const nextDate = {
|
|
413
413
|
title: "",
|
|
414
|
-
startRange: addDays(
|
|
415
|
-
endRange: addDays(
|
|
414
|
+
startRange: addDays(from, daysDifference),
|
|
415
|
+
endRange: addDays(to, daysDifference),
|
|
416
416
|
};
|
|
417
417
|
|
|
418
418
|
if (isDatePeriodOutOfRange(nextDate)) return;
|
|
419
419
|
|
|
420
420
|
localValue.value = {
|
|
421
421
|
from: nextDate.startRange,
|
|
422
|
-
to: nextDate.
|
|
422
|
+
to: nextDate.endRange,
|
|
423
423
|
};
|
|
424
424
|
|
|
425
425
|
return;
|
|
@@ -451,8 +451,8 @@ function shiftRangePrev(to: Date, from: Date, daysDifference: number) {
|
|
|
451
451
|
if (isPeriod.value.ownRange) {
|
|
452
452
|
const previousDate = {
|
|
453
453
|
title: "",
|
|
454
|
-
startRange: addDays(
|
|
455
|
-
endRange: addDays(
|
|
454
|
+
startRange: addDays(from, daysDifference * -1),
|
|
455
|
+
endRange: addDays(to, daysDifference * -1),
|
|
456
456
|
};
|
|
457
457
|
|
|
458
458
|
if (isDatePeriodOutOfRange(previousDate)) return;
|
package/utils/theme.ts
CHANGED
|
@@ -41,10 +41,10 @@ export function themeInit() {
|
|
|
41
41
|
|
|
42
42
|
const prefersColorSchemeDark = window.matchMedia("(prefers-color-scheme: dark)");
|
|
43
43
|
|
|
44
|
-
setTheme({ systemDarkMode: prefersColorSchemeDark.matches });
|
|
44
|
+
setTheme({ systemDarkMode: prefersColorSchemeDark.matches, darkMode: vuelessConfig.darkMode });
|
|
45
45
|
|
|
46
46
|
prefersColorSchemeDark.addEventListener("change", (event) =>
|
|
47
|
-
setTheme({ systemDarkMode: event.matches }),
|
|
47
|
+
setTheme({ systemDarkMode: event.matches, darkMode: vuelessConfig.darkMode }),
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -139,36 +139,15 @@ export function setTheme(config: InternalThemeConfig = {}) {
|
|
|
139
139
|
return rootVariables;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
// todo: need to be reactive same like loader state
|
|
143
|
-
export function getDarkMode() {
|
|
144
|
-
let isDarkMode = undefined;
|
|
145
|
-
let storedDarkMode = null;
|
|
146
|
-
|
|
147
|
-
if (isCSR) {
|
|
148
|
-
storedDarkMode = localStorage.getItem(DARK_MODE_SELECTOR);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
if (storedDarkMode !== null) {
|
|
152
|
-
isDarkMode = !!Number(storedDarkMode);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
return isDarkMode;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
142
|
function setDarkMode(config: InternalThemeConfig) {
|
|
159
143
|
config?.darkMode === undefined
|
|
160
144
|
? isCSR && localStorage.removeItem(DARK_MODE_SELECTOR)
|
|
161
145
|
: isCSR && localStorage.setItem(DARK_MODE_SELECTOR, Number(config?.darkMode).toString());
|
|
162
146
|
|
|
163
147
|
let storedDarkMode = null;
|
|
164
|
-
let darkModeAsClass = null;
|
|
165
148
|
|
|
166
149
|
if (isCSR) {
|
|
167
|
-
const classList = document.documentElement.classList;
|
|
168
|
-
|
|
169
150
|
storedDarkMode = localStorage.getItem(DARK_MODE_SELECTOR);
|
|
170
|
-
darkModeAsClass = classList.contains(DARK_MODE_SELECTOR) ? true : null;
|
|
171
|
-
darkModeAsClass = classList.contains(LIGHT_MODE_SELECTOR) ? false : null;
|
|
172
151
|
}
|
|
173
152
|
|
|
174
153
|
let isDarkMode = !!(config?.darkMode ?? vuelessConfig.darkMode ?? config?.systemDarkMode);
|
|
@@ -177,11 +156,9 @@ function setDarkMode(config: InternalThemeConfig) {
|
|
|
177
156
|
isDarkMode = !!Number(storedDarkMode);
|
|
178
157
|
}
|
|
179
158
|
|
|
180
|
-
if (darkModeAsClass !== null) {
|
|
181
|
-
isDarkMode = darkModeAsClass;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
159
|
if (isCSR) {
|
|
160
|
+
const darkModeChange = new CustomEvent("darkModeChange", { detail: isDarkMode });
|
|
161
|
+
|
|
185
162
|
if (isDarkMode) {
|
|
186
163
|
document.documentElement.classList.remove(LIGHT_MODE_SELECTOR);
|
|
187
164
|
document.documentElement.classList.add(DARK_MODE_SELECTOR);
|
|
@@ -189,6 +166,8 @@ function setDarkMode(config: InternalThemeConfig) {
|
|
|
189
166
|
document.documentElement.classList.remove(DARK_MODE_SELECTOR);
|
|
190
167
|
document.documentElement.classList.add(LIGHT_MODE_SELECTOR);
|
|
191
168
|
}
|
|
169
|
+
|
|
170
|
+
window.dispatchEvent(darkModeChange);
|
|
192
171
|
}
|
|
193
172
|
|
|
194
173
|
return isDarkMode;
|