Use enum to identify routes.

This commit is contained in:
baldo 2022-08-23 15:07:37 +02:00
parent 68f893aa91
commit 4db53af7ce
5 changed files with 47 additions and 34 deletions
frontend/src/components

View file

@ -1,29 +1,25 @@
<script setup lang="ts">
import {computed, defineProps} from "vue";
import type {ComponentVariant, NodesFilter} from "@/types";
import type {RouteName} from "@/router";
import router, {route} from "@/router";
interface Props {
title: string;
icon: string;
variant: ComponentVariant;
value: number;
link: string;
route: RouteName;
filter?: NodesFilter;
}
const props = defineProps<Props>();
const linkTarget = computed(() => {
if (props.filter) {
return {
path: props.link,
query: {
filter: JSON.stringify(props.filter),
},
}
} else {
return props.link;
}
const query = props.filter && {
filter: JSON.stringify(props.filter),
};
return route(props.route, query);
});
</script>

View file

@ -1,5 +1,6 @@
<script setup lang="ts">
import { useConfigStore } from "@/stores/config";
import {route, RouteName} from "@/router";
const config = useConfigStore();
</script>
@ -7,7 +8,7 @@ const config = useConfigStore();
<template>
<header v-if="config.getConfig">
<nav>
<RouterLink class="logo" to="/">
<RouterLink class="logo" :to="route(RouteName.HOME)">
<img
src="/icon.svg"
alt="Symbol: Gelbes Zahnrad in zwei konzentrischen Kreisen (hellgrau und magenta)"
@ -16,13 +17,13 @@ const config = useConfigStore();
</RouterLink>
<h1>
<RouterLink to="/">
{{ config.getConfig.community.name }} Knotenverwaltung
<RouterLink :to="route(RouteName.HOME)">
</RouterLink>
</h1>
<RouterLink class="admin-link" to="/admin">
<i class="fa fa-wrench" aria-hidden="true" /> Admin-Panel
<RouterLink class="admin-link" :to="route(RouteName.ADMIN)">
<i class="fa fa-wrench" aria-hidden="true"/> Admin-Panel
</RouterLink>
</nav>
</header>