|
7 | 7 | UpdateTrayMenus, |
8 | 8 | ShowMainWindow, |
9 | 9 | } from '@/bridge' |
10 | | -import { BuiltInOutbound } from '@/constant' |
11 | | -import { Theme, Color } from '@/enums/app' |
12 | | -import { ClashMode, ProxyGroupType } from '@/enums/kernel' |
| 10 | +import { ColorOptions, ThemeOptions } from '@/constant/app' |
| 11 | +import { BuiltInOutbound, ModeOptions } from '@/constant/kernel' |
| 12 | +import { ProxyGroupType } from '@/enums/kernel' |
13 | 13 | import i18n from '@/lang' |
14 | 14 | import { useAppSettingsStore, useKernelApiStore, useEnvStore, usePluginsStore } from '@/stores' |
15 | 15 | import { |
@@ -183,26 +183,12 @@ const getTrayMenus = () => { |
183 | 183 | type: 'item', |
184 | 184 | text: 'kernel.mode', |
185 | 185 | hidden: !kernelApiStore.running, |
186 | | - children: [ |
187 | | - { |
188 | | - type: 'item', |
189 | | - text: 'kernel.global', |
190 | | - checked: kernelApiStore.config.mode === ClashMode.Global, |
191 | | - event: () => handleChangeMode(ClashMode.Global), |
192 | | - }, |
193 | | - { |
194 | | - type: 'item', |
195 | | - text: 'kernel.rule', |
196 | | - checked: kernelApiStore.config.mode === ClashMode.Rule, |
197 | | - event: () => handleChangeMode(ClashMode.Rule), |
198 | | - }, |
199 | | - { |
200 | | - type: 'item', |
201 | | - text: 'kernel.direct', |
202 | | - checked: kernelApiStore.config.mode === ClashMode.Direct, |
203 | | - event: () => handleChangeMode(ClashMode.Direct), |
204 | | - }, |
205 | | - ], |
| 186 | + children: ModeOptions.map((mode) => ({ |
| 187 | + type: 'item', |
| 188 | + text: mode.label, |
| 189 | + checked: kernelApiStore.config.mode === mode.value, |
| 190 | + event: () => handleChangeMode(mode.value), |
| 191 | + })), |
206 | 192 | }, |
207 | 193 | { |
208 | 194 | type: 'item', |
@@ -283,74 +269,22 @@ const getTrayMenus = () => { |
283 | 269 | { |
284 | 270 | type: 'item', |
285 | 271 | text: 'settings.theme.name', |
286 | | - children: [ |
287 | | - { |
288 | | - type: 'item', |
289 | | - text: 'settings.theme.dark', |
290 | | - checked: appSettings.app.theme === Theme.Dark, |
291 | | - event: () => (appSettings.app.theme = Theme.Dark), |
292 | | - }, |
293 | | - { |
294 | | - type: 'item', |
295 | | - text: 'settings.theme.light', |
296 | | - checked: appSettings.app.theme === Theme.Light, |
297 | | - event: () => (appSettings.app.theme = Theme.Light), |
298 | | - }, |
299 | | - { |
300 | | - type: 'item', |
301 | | - text: 'settings.theme.auto', |
302 | | - checked: appSettings.app.theme === Theme.Auto, |
303 | | - event: () => (appSettings.app.theme = Theme.Auto), |
304 | | - }, |
305 | | - ], |
| 272 | + children: ThemeOptions.map((theme) => ({ |
| 273 | + type: 'item', |
| 274 | + text: theme.label, |
| 275 | + checked: appSettings.app.theme === theme.value, |
| 276 | + event: () => (appSettings.app.theme = theme.value), |
| 277 | + })), |
306 | 278 | }, |
307 | 279 | { |
308 | 280 | type: 'item', |
309 | 281 | text: 'settings.color.name', |
310 | | - children: [ |
311 | | - { |
312 | | - type: 'item', |
313 | | - text: 'settings.color.default', |
314 | | - checked: appSettings.app.color === Color.Default, |
315 | | - event: () => (appSettings.app.color = Color.Default), |
316 | | - }, |
317 | | - { |
318 | | - type: 'item', |
319 | | - text: 'settings.color.orange', |
320 | | - checked: appSettings.app.color === Color.Orange, |
321 | | - event: () => (appSettings.app.color = Color.Orange), |
322 | | - }, |
323 | | - { |
324 | | - type: 'item', |
325 | | - text: 'settings.color.pink', |
326 | | - checked: appSettings.app.color === Color.Pink, |
327 | | - event: () => (appSettings.app.color = Color.Pink), |
328 | | - }, |
329 | | - { |
330 | | - type: 'item', |
331 | | - text: 'settings.color.red', |
332 | | - checked: appSettings.app.color === Color.Red, |
333 | | - event: () => (appSettings.app.color = Color.Red), |
334 | | - }, |
335 | | - { |
336 | | - type: 'item', |
337 | | - text: 'settings.color.skyblue', |
338 | | - checked: appSettings.app.color === Color.Skyblue, |
339 | | - event: () => (appSettings.app.color = Color.Skyblue), |
340 | | - }, |
341 | | - { |
342 | | - type: 'item', |
343 | | - text: 'settings.color.green', |
344 | | - checked: appSettings.app.color === Color.Green, |
345 | | - event: () => (appSettings.app.color = Color.Green), |
346 | | - }, |
347 | | - { |
348 | | - type: 'item', |
349 | | - text: 'settings.color.purple', |
350 | | - checked: appSettings.app.color === Color.Purple, |
351 | | - event: () => (appSettings.app.color = Color.Purple), |
352 | | - }, |
353 | | - ], |
| 282 | + children: ColorOptions.map((color) => ({ |
| 283 | + type: 'item', |
| 284 | + text: color.label, |
| 285 | + checked: appSettings.app.color === color.value, |
| 286 | + event: () => (appSettings.app.color = color.value), |
| 287 | + })), |
354 | 288 | }, |
355 | 289 | { |
356 | 290 | type: 'item', |
|
0 commit comments