import { createRouter, createWebHistory } from 'vue-router'
import LoginForm from '@/components/LoginForm'
import Quotes from '@/components/quotes'
import Pages from '@/components/pages'
import PagesEdit from '@/components/pages/edit'
import ProjectsList from '@/components/projects'
import ProjectsDetails from '@/components/projects/ProjectDetails'
import ProfileView from '@/components/users/ProfileView'
import NotFound from '@/components/NotFound'

const routes = [
	{
		path: '/',
		name: 'Home',
		component: Quotes
	},
	{
		path: '/form_login',
		name: 'LoginForm',
		component: LoginForm
	},
	{
		path: '/projects',
		name: 'Projects',
		component: ProjectsList
	},
	{
		path: '/projects/:id',
		name: 'ProjectDetails',
		component: ProjectsDetails
	},
	{
		path: '/pages/:slug',
		name: 'Pages',
		component: Pages,
		props: true
	},
	{
		path: '/pages/edit/:slug',
		component: PagesEdit,
		meta: { requiredAuth: true }
	},
	{
		path: '/profile/:username?',
		name: 'Profile',
		component: ProfileView
	},
	{
		path: '/:pathMatch(.*)*',
		name: 'NotFound',
		component: NotFound
	}
]

const router = createRouter({
	history: createWebHistory(),
	routes
})

/* eslint-disable */
router.beforeEach((to) => {
	if (to.meta.requiredAuth && !window.user) {
		return { name: 'LoginForm' }
	}
})
export default router