File tree 2 files changed +25
-3
lines changed
2 files changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -748,6 +748,8 @@ import socket from '@/socket';
748
748
import RestoreProjectForm from ' @/components/RestoreProjectForm.vue' ;
749
749
import YesNoDialog from ' @/components/YesNoDialog.vue' ;
750
750
751
+ const prefersDarkMode = window .matchMedia (' (prefers-color-scheme: dark)' );
752
+
751
753
const PROJECT_COLORS = [
752
754
' red' ,
753
755
' blue' ,
@@ -887,8 +889,10 @@ export default {
887
889
888
890
darkMode (val ) {
889
891
this .$vuetify .theme .dark = val;
890
- if (val) {
892
+ if (val && ! prefersDarkMode . matches ) {
891
893
localStorage .setItem (' darkMode' , ' 1' );
894
+ } else if (! val && prefersDarkMode .matches ) {
895
+ localStorage .setItem (' darkMode' , ' 0' );
892
896
} else {
893
897
localStorage .removeItem (' darkMode' );
894
898
}
@@ -931,8 +935,17 @@ export default {
931
935
},
932
936
933
937
async created () {
934
- if (localStorage .getItem (' darkMode' ) === ' 1' ) {
935
- this .darkMode = true ;
938
+ const isDarkMode = localStorage .getItem (' darkMode' );
939
+ if (isDarkMode !== null ) {
940
+ this .darkMode = isDarkMode === ' 1' ;
941
+ } else {
942
+ prefersDarkMode .addEventListener (' change' , (e ) => {
943
+ this .darkMode = e .matches ;
944
+ });
945
+
946
+ if (prefersDarkMode .matches && localStorage .getItem (' darkMode' ) !== ' 0' ) {
947
+ this .darkMode = true ;
948
+ }
936
949
}
937
950
938
951
try {
Original file line number Diff line number Diff line change 242
242
import axios from ' axios' ;
243
243
import { getErrorMessage } from ' @/lib/error' ;
244
244
245
+ const prefersDarkMode = window .matchMedia (' (prefers-color-scheme: dark)' );
246
+
245
247
export default {
246
248
data () {
247
249
return {
@@ -254,6 +256,7 @@ export default {
254
256
255
257
loginHelpDialog: null ,
256
258
259
+ darkMode: false ,
257
260
oidcProviders: [],
258
261
loginWithPassword: null ,
259
262
authMethods: {},
@@ -266,6 +269,12 @@ export default {
266
269
};
267
270
},
268
271
272
+ watch: {
273
+ darkMode (val ) {
274
+ this .$vuetify .theme .dark = val;
275
+ },
276
+ },
277
+
269
278
async created () {
270
279
const { status , verificationMethod } = await this .getAuthenticationStatus ();
271
280
You can’t perform that action at this time.
0 commit comments