Skip to content

Commit 1b2a170

Browse files
committed
refactor(router): replace string literals with RouterName constants for improved maintainability
1 parent 0f5b770 commit 1b2a170

5 files changed

Lines changed: 31 additions & 24 deletions

File tree

src/renderer/components/editor/header/Header.vue

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<script setup lang="ts">
22
import { useApp, useSnippets, useSnippetUpdate } from '@/composables'
33
import { i18n } from '@/electron'
4+
import { router, RouterName } from '@/router'
5+
46
import {
57
Code,
68
Eye,
@@ -10,7 +12,6 @@ import {
1012
Presentation,
1113
Type,
1214
} from 'lucide-vue-next'
13-
import { useRouter } from 'vue-router'
1415
1516
const {
1617
selectedSnippet,
@@ -29,8 +30,6 @@ const {
2930
} = useApp()
3031
const { addToUpdateQueue } = useSnippetUpdate()
3132
32-
const router = useRouter()
33-
3433
const isShowDescription = ref(false)
3534
3635
const name = computed({
@@ -77,7 +76,7 @@ function onMarkdownPresentationToggle() {
7776
isShowCodePreview.value = false
7877
isShowCodeImage.value = false
7978
80-
router.push({ name: 'markdown-presentation' })
79+
router.push({ name: RouterName.markdownPresentation })
8180
}
8281
8382
function onMindmapToggle() {

src/renderer/components/editor/markdown/Presentation.vue

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script setup lang="ts">
22
import { useApp, useSnippets } from '@/composables'
3+
import { router, RouterName } from '@/router'
34
import { useFullscreen, useMagicKeys } from '@vueuse/core'
45
import {
56
ArrowLeft,
@@ -10,7 +11,6 @@ import {
1011
Plus,
1112
X,
1213
} from 'lucide-vue-next'
13-
import { useRouter } from 'vue-router'
1414
import { useMarkdown } from './composables'
1515
1616
const { isShowMarkdownPresentation } = useApp()
@@ -20,8 +20,6 @@ const { scaleToShow, onZoom } = useMarkdown()
2020
const { isFullscreen, toggle } = useFullscreen()
2121
const { left, right, escape } = useMagicKeys()
2222
23-
const router = useRouter()
24-
2523
const mdSnippetIds = computed(() => {
2624
return displayedSnippets.value
2725
?.filter(s => s.contents[0].language === 'markdown')
@@ -35,7 +33,7 @@ const currentIndex = computed(
3533
3634
function onClose() {
3735
isShowMarkdownPresentation.value = false
38-
router.push({ name: 'main' })
36+
router.push({ name: RouterName.main })
3937
}
4038
4139
function onPrevNext(direction: 'prev' | 'next') {

src/renderer/ipc/listeners/main-menu.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { useApp, useFolders, useSnippets } from '@/composables'
22
import { ipc } from '@/electron'
3-
import { router } from '@/router'
3+
import { router, RouterName } from '@/router'
44

55
const { createSnippetAndSelect, addFragment } = useSnippets()
66
const { createFolderAndSelect } = useFolders()
77
const { isShowMarkdown, isShowMindmap, isShowCodePreview } = useApp()
88

99
export function registerMainMenuListeners() {
1010
ipc.on('main-menu:goto-preferences', () => {
11-
router.push({ name: 'preferences/storage' })
11+
router.push({ name: RouterName.preferences })
1212
})
1313

1414
ipc.on('main-menu:new-snippet', () => {

src/renderer/router/index.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,51 @@
11
import { createRouter, createWebHashHistory } from 'vue-router'
22

3+
export const RouterName = {
4+
main: 'main',
5+
preferences: 'preferences',
6+
preferencesStorage: 'preferences/storage',
7+
preferencesLanguage: 'preferences/language',
8+
preferencesAppearance: 'preferences/appearance',
9+
preferencesEditor: 'preferences/editor',
10+
markdownPresentation: 'markdown-presentation',
11+
}
12+
313
const routes = [
414
{
515
path: '/',
6-
name: 'main',
16+
name: RouterName.main,
717
component: () => import('@/views/Main.vue'),
818
},
919
{
1020
path: '/preferences',
11-
name: 'preferences',
21+
name: RouterName.preferences,
1222
component: () => import('@/views/Preferences.vue'),
1323
children: [
1424
{
1525
path: 'storage',
16-
name: 'preferences/storage',
26+
name: RouterName.preferencesStorage,
1727
component: () => import('@/components/preferences/Storage.vue'),
1828
},
1929
{
2030
path: 'language',
21-
name: 'preferences/language',
31+
name: RouterName.preferencesLanguage,
2232
component: () => import('@/components/preferences/Language.vue'),
2333
},
2434
{
2535
path: 'appearance',
26-
name: 'preferences/appearance',
36+
name: RouterName.preferencesAppearance,
2737
component: () => import('@/components/preferences/Appearance.vue'),
2838
},
2939
{
3040
path: 'editor',
31-
name: 'preferences/editor',
41+
name: RouterName.preferencesEditor,
3242
component: () => import('@/components/preferences/Editor.vue'),
3343
},
3444
],
3545
},
3646
{
3747
path: '/markdown-presentation',
38-
name: 'markdown-presentation',
48+
name: RouterName.markdownPresentation,
3949
component: () => import('@/views/MarkdownPresentation.vue'),
4050
},
4151
]

src/renderer/views/Preferences.vue

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<script setup lang="ts">
22
import { i18n } from '@/electron'
3-
import { RouterLink, useRoute, useRouter } from 'vue-router'
3+
import { router, RouterName } from '@/router'
4+
import { RouterLink, useRoute } from 'vue-router'
45
5-
const router = useRouter()
66
const route = useRoute()
77
88
const isActiveRoute = computed(() => {
@@ -12,27 +12,27 @@ const isActiveRoute = computed(() => {
1212
const nav = [
1313
{
1414
label: i18n.t('preferences:storage.label'),
15-
name: 'preferences/storage',
15+
name: RouterName.preferencesStorage,
1616
},
1717
{
1818
label: i18n.t('preferences:editor.label'),
19-
name: 'preferences/editor',
19+
name: RouterName.preferencesEditor,
2020
},
2121
{
2222
label: i18n.t('preferences:language.label'),
23-
name: 'preferences/language',
23+
name: RouterName.preferencesLanguage,
2424
},
2525
{
2626
label: i18n.t('preferences:appearance.label'),
27-
name: 'preferences/appearance',
27+
name: RouterName.preferencesAppearance,
2828
},
2929
]
3030
</script>
3131

3232
<template>
3333
<LayoutTwoColumn
3434
:title="i18n.t('preferences:label')"
35-
@back="() => router.push({ name: 'main' })"
35+
@back="() => router.push({ name: RouterName.main })"
3636
>
3737
<template #left>
3838
<PerfectScrollbar class="h-full px-2">

0 commit comments

Comments
 (0)