Use enum to identify routes.
This commit is contained in:
parent
68f893aa91
commit
4db53af7ce
5 changed files with 47 additions and 34 deletions
frontend/src/components
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue