2023-12-09 14:47:03 +00:00
|
|
|
<template>
|
|
|
|
<div class="bg-white">
|
|
|
|
<div class="flex bg-gray-50">
|
|
|
|
<div class="w-full md:w-4/5 lg:w-3/5 md:mx-auto md:max-w-4xl px-4">
|
|
|
|
<div class="pt-4 pb-0">
|
|
|
|
<div class="flex">
|
|
|
|
<h2 class="flex-grow text-gray-900">
|
|
|
|
My Account
|
|
|
|
</h2>
|
|
|
|
</div>
|
|
|
|
<ul class="flex text-gray-500">
|
|
|
|
<li>{{ user.email }}</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<div class="mt-4 border-b border-gray-200 dark:border-gray-700">
|
|
|
|
<ul class="flex flex-wrap -mb-px text-sm font-medium text-center">
|
|
|
|
<li v-for="(tab, i) in tabsList" :key="i+1" class="mr-6">
|
2023-12-22 09:24:51 +00:00
|
|
|
<NuxtLink :to="{ name: tab.route }"
|
2023-12-09 14:47:03 +00:00
|
|
|
class="hover:no-underline inline-block py-4 rounded-t-lg border-b-2 text-gray-500 hover:text-gray-600"
|
|
|
|
active-class="text-blue-600 hover:text-blue-900 dark:text-blue-500 dark:hover:text-blue-500 border-blue-600 dark:border-blue-500"
|
|
|
|
>
|
|
|
|
{{ tab.name }}
|
2023-12-22 09:24:51 +00:00
|
|
|
</NuxtLink>
|
2023-12-09 14:47:03 +00:00
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="flex bg-white">
|
|
|
|
<div class="w-full md:w-4/5 lg:w-3/5 md:mx-auto md:max-w-4xl px-4">
|
|
|
|
<div class="mt-8 pb-0">
|
|
|
|
<router-view v-slot="{ Component }">
|
|
|
|
<transition name="page" mode="out-in">
|
|
|
|
<component :is="Component" />
|
|
|
|
</transition>
|
|
|
|
</router-view>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import { computed } from 'vue'
|
|
|
|
import { useAuthStore } from '../../stores/auth'
|
|
|
|
|
|
|
|
export default {
|
|
|
|
middleware: 'auth',
|
|
|
|
|
|
|
|
setup () {
|
|
|
|
const authStore = useAuthStore()
|
|
|
|
return {
|
|
|
|
user: computed(() => authStore.user)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
data () {
|
|
|
|
return {
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
computed: {
|
|
|
|
tabsList () {
|
|
|
|
const tabs = [
|
|
|
|
{
|
|
|
|
name: 'Profile',
|
2023-12-22 09:24:51 +00:00
|
|
|
route: 'settings-profile'
|
2023-12-09 14:47:03 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Workspace Settings',
|
2023-12-22 09:24:51 +00:00
|
|
|
route: 'settings-workspace'
|
2023-12-09 14:47:03 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Password',
|
2023-12-22 09:24:51 +00:00
|
|
|
route: 'settings-password'
|
2023-12-09 14:47:03 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'Delete Account',
|
2023-12-22 09:24:51 +00:00
|
|
|
route: 'settings-account'
|
2023-12-09 14:47:03 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
if (this.user.is_subscribed) {
|
|
|
|
tabs.splice(1, 0, {
|
|
|
|
name: 'Billing',
|
2023-12-22 09:24:51 +00:00
|
|
|
route: 'settings-billing'
|
2023-12-09 14:47:03 +00:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.user.admin) {
|
|
|
|
tabs.push({
|
|
|
|
name: 'Admin',
|
2023-12-22 09:24:51 +00:00
|
|
|
route: 'settings-admin'
|
2023-12-09 14:47:03 +00:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
return tabs
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|