File tree Expand file tree Collapse file tree 3 files changed +38
-17
lines changed Expand file tree Collapse file tree 3 files changed +38
-17
lines changed Original file line number Diff line number Diff line change 48
48
</div >
49
49
50
50
<div
51
+ v-if =" enableDarkModeButton"
51
52
class =" section action dark-mode"
52
53
v-tooltip =" $t('components.status-bar.dark-mode')"
53
54
@click =" toggleDarkMode()"
@@ -87,6 +88,7 @@ import CONSOLE_LOG_ADDED from '../graphql/consoleLogAdded.gql'
87
88
import DARK_MODE_SET from ' ../graphql/darkModeSet.gql'
88
89
import PLUGIN_RESET_API from ' ../graphql/pluginResetApi.gql'
89
90
import { resetApollo } from ' ../vue-apollo'
91
+ import { getForcedTheme } from ' ../util/theme'
90
92
91
93
let lastRoute
92
94
@@ -96,7 +98,8 @@ export default {
96
98
data () {
97
99
return {
98
100
showLogs: false ,
99
- consoleLogLast: null
101
+ consoleLogLast: null ,
102
+ enableDarkModeButton: getForcedTheme () == null
100
103
}
101
104
},
102
105
@@ -114,10 +117,6 @@ export default {
114
117
}
115
118
},
116
119
117
- created () {
118
- this .loadDarkMode ()
119
- },
120
-
121
120
methods: {
122
121
onProjectClick () {
123
122
this .$emit (' project' )
@@ -159,11 +158,6 @@ export default {
159
158
win .focus ()
160
159
},
161
160
162
- loadDarkMode () {
163
- const raw = localStorage .getItem (' vue-ui-dark-mode' )
164
- this .applyDarkMode (raw === ' true' )
165
- },
166
-
167
161
async applyDarkMode (enabled ) {
168
162
localStorage .setItem (' vue-ui-dark-mode' , enabled .toString ())
169
163
await this .$apollo .mutate ({
Original file line number Diff line number Diff line change
1
+ let forcedTheme = null
2
+
3
+ {
4
+ const result = / \? t h e m e = ( \w + ) / . exec ( window . location . href )
5
+ if ( result ) forcedTheme = result [ 1 ]
6
+ }
7
+
8
+ console . log ( 'forced theme' , forcedTheme )
9
+
10
+ export function getForcedTheme ( ) {
11
+ return forcedTheme
12
+ }
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ import clientStateResolvers from './state/resolvers'
8
8
import CONNECTED_SET from './graphql/connectedSet.gql'
9
9
import LOADING_CHANGE from './graphql/loadingChange.gql'
10
10
import DARK_MODE_SET from './graphql/darkModeSet.gql'
11
+ import { getForcedTheme } from './util/theme'
11
12
12
13
// Install the vue plugin
13
14
Vue . use ( VueApollo )
@@ -68,13 +69,7 @@ export async function resetApollo () {
68
69
} catch ( e ) {
69
70
// Potential errors
70
71
}
71
- const raw = localStorage . getItem ( 'vue-ui-dark-mode' )
72
- apolloClient . mutate ( {
73
- mutation : DARK_MODE_SET ,
74
- variables : {
75
- enabled : raw === 'true'
76
- }
77
- } )
72
+ loadDarkMode ( )
78
73
}
79
74
80
75
/* Connected state */
@@ -96,3 +91,23 @@ wsClient.on('reconnected', async () => {
96
91
// Offline
97
92
wsClient . on ( 'disconnected' , ( ) => setConnected ( false ) )
98
93
wsClient . on ( 'error' , ( ) => setConnected ( false ) )
94
+
95
+ /* Dark mode */
96
+
97
+ function loadDarkMode ( ) {
98
+ let enabled , forcedTheme
99
+ if ( ( forcedTheme = getForcedTheme ( ) ) ) {
100
+ enabled = forcedTheme === 'dark'
101
+ } else {
102
+ const raw = localStorage . getItem ( 'vue-ui-dark-mode' )
103
+ enabled = raw === 'true'
104
+ }
105
+ apolloClient . mutate ( {
106
+ mutation : DARK_MODE_SET ,
107
+ variables : {
108
+ enabled
109
+ }
110
+ } )
111
+ }
112
+
113
+ loadDarkMode ( )
You can’t perform that action at this time.
0 commit comments