1
0
Fork 0
activist/src/router/index.ts

94 lines
2.1 KiB
TypeScript
Raw Normal View History

2024-11-16 11:40:53 -05:00
import { createRouter, createWebHistory } from 'vue-router'
import { useUserStore } from "@/stores/userStore";
2024-11-16 15:08:09 -05:00
import AboutView from '../views/AboutView.vue'
2024-11-21 19:34:28 -05:00
import HomeView from '../views/HomeView.vue'
2024-11-24 20:50:39 -05:00
import LoginView from '../views/LoginView.vue'
2024-11-21 19:34:28 -05:00
import ProfileView from '../views/ProfileView.vue'
import StickerBuilderView from '../views/StickerBuilderView.vue'
2024-11-25 20:06:22 -05:00
import StickerView from '../views/StickerView.vue'
import WelcomeView from '../views/WelcomeView.vue'
2024-11-16 11:40:53 -05:00
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
2024-11-21 19:34:28 -05:00
{
component: AboutView,
2024-11-21 19:34:28 -05:00
meta: {
title: 'About',
2024-11-21 19:34:28 -05:00
},
name: 'about',
path: '/about',
},
{
component: HomeView,
meta: {
title: 'Home',
},
name: 'home',
2024-11-26 16:06:53 -05:00
path: '/',
2024-11-21 19:34:28 -05:00
},
2024-11-16 11:40:53 -05:00
{
component: ProfileView,
2024-11-17 22:21:56 -05:00
meta: {
title: 'Profile',
2024-11-17 22:21:56 -05:00
},
name: 'profile',
2024-11-26 20:39:13 -05:00
path: '/profile/:username?',
2024-11-16 11:40:53 -05:00
},
2024-11-16 23:04:02 -05:00
{
component: StickerBuilderView,
2024-11-17 22:21:56 -05:00
meta: {
title: 'Sticker Builder',
2024-11-17 22:21:56 -05:00
},
name: 'stickerbuilder',
path: '/stickerbuilder',
2024-11-16 23:04:02 -05:00
},
2024-11-25 20:06:22 -05:00
{
component: StickerView,
meta: {
title: 'Sticker',
},
name: 'sticker',
path: '/:uuid([0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12})',
},
2024-11-24 20:50:39 -05:00
{
component: LoginView,
meta: {
title: 'Login',
},
name: 'login',
path: '/login',
},
{
component: WelcomeView,
meta: {
title: 'Welcome',
},
name: 'welcome',
path: '/welcome',
},
2024-11-16 11:40:53 -05:00
],
})
router.beforeEach((to, from) => {
const userStore= useUserStore();
if (userStore.isAnonymous && to.name == 'home') {
return {name: 'welcome'};
} else if (!userStore.isAnonymous && to.name == 'welcome') {
return {name: 'home'};
2024-11-26 20:39:13 -05:00
} else if (to.name == 'profile' && to.params.username == "") {
if (userStore.isAnonymous) {
return {name: 'home'};
} else {
// Send to "my" profile page.
return {name: 'profile', params: {
username: userStore.user.username,
}};
}
}
});
2024-11-16 11:40:53 -05:00
export default router