Now the sidebar, header, and footer are in the App.vue

This commit is contained in:
Diyar Akhgar 2025-05-31 17:49:08 +03:30
parent b8985e7f96
commit a6f9ac7e44
12 changed files with 158 additions and 188 deletions

View File

@ -1,26 +1,43 @@
<template> <template>
<div id="app"> <div id="app">
<!-- Main App Layout --> <!-- Dashboard LayOut -->
<template v-if="isDashboardLayout">
<SidebarMenu />
<div class="dashboard-page">
<div class="content">
<AppHeader :pageTitle="$route.meta.title" />
<router-view></router-view>
</div>
</div>
</template>
<!-- Sample LayOut for SignUp .... -->
<template v-else>
<router-view></router-view>
</template>
<Footer />
<!-- The router-view here will display the active route's component -->
<router-view></router-view>
</div> </div>
<Footer />
</template> </template>
<script> <script>
import Footer from '@/components/Footer.vue' import AppHeader from '@/components/Header.vue';
import SidebarMenu from '@/components/SidebarMenu.vue';
import Footer from '@/components/Footer.vue';
export default { export default {
name: 'App', name: 'App',
components: { components: {
Footer Footer,
} SidebarMenu,
} AppHeader,
},
computed: {
isDashboardLayout() {
return this.$route.meta.requiresAuth === true;
},
},
};
</script> </script>
<style scoped> <style scoped>
@ -35,12 +52,6 @@ body {
} }
/* Styling for the header */
header {
background-color: #4A90E2; /* Blue color */
padding: 20px;
text-align: center;
}
.app-title { .app-title {
color: white; color: white;
@ -60,6 +71,12 @@ router-view {
flex-grow: 1; flex-grow: 1;
padding: 20px; padding: 20px;
} }
</style> </style>
@ -75,4 +92,22 @@ router-view {
* { * {
font-family: 'IRANSans', sans-serif !important; font-family: 'IRANSans', sans-serif !important;
} }
.dashboard-page {
margin-right: 20rem;
padding: 20px;
direction: rtl;
font-family: IRANSansXFaNum, sans-serif;
}
.content {
background-color: #f8f9fa;
border-radius: 20px;
padding: 35px 80px !important;
display: flex;
flex-direction: column;
gap: 32px;
}
</style> </style>

View File

@ -209,6 +209,11 @@ export default {
this.$emit('upload-success'); this.$emit('upload-success');
this.$emit('close'); this.$emit('close');
alert('فایل با موفقیت آپلود شد'); alert('فایل با موفقیت آپلود شد');
// بررسی مسیر فعلی و هدایت به /dashboard/files در صورت نیاز
if (this.$route.path !== '/dashboard/files') {
this.$router.push('/dashboard/files');
}
} catch (error) { } catch (error) {
console.error('Error uploading file:', error); console.error('Error uploading file:', error);
alert('خطا در آپلود فایل'); alert('خطا در آپلود فایل');

View File

@ -1,25 +1,21 @@
<template> <template>
<SidebarMenu />
<div class="dashboard-page"> <div style="gap: 1.5rem;display: flex;flex-direction: column;">
<div class="content"> <div style="gap: 1.5rem;display: flex;flex-direction: column;">
<!-- Header -->
<AppHeader pageTitle="انتخاب آواتار" />
<div class="page-title"> آواتار خود را انتخاب کنید</div>
<div class="page-title"> آواتار خود را انتخاب کنید</div> <h5>
نحوه ظاهر شدن خود را در طول جلسات در XRoom را سفارشی سازی کنید.
<h5> نگران نباشید، شما می توانید ان را در هر زمان دیگری تغییر دهید.
نحوه ظاهر شدن خود را در طول جلسات در XRoom را سفارشی سازی کنید. </h5>
نگران نباشید، شما می توانید ان را در هر زمان دیگری تغییر دهید.
</h5>
<router-link to="/dashboard/readyplayer">ساخت آواتار به دلخواه </router-link>
<router-link to="/dashboard/readyplayer">ساخت آواتار به دلخواه </router-link>
</div>
<div class="avatar-selection-container"> <div class="avatar-selection-container">
<!-- Left Column - Women Models --> <!-- Left Column - Women Models -->
<div class="gender-column"> <div class="gender-column">
<h3 class="text-center mb-4">آواتارهای زنانه</h3> <h3 class="mb-4 text-center">آواتارهای زنانه</h3>
<div class="avatar-grid"> <div class="avatar-grid">
<div v-for="(avatar, index) in femaleAvatars" :key="'female-' + index" class="avatar-card"> <div v-for="(avatar, index) in femaleAvatars" :key="'female-' + index" class="avatar-card">
<div class="model-preview-container"> <div class="model-preview-container">
@ -47,7 +43,7 @@
<!-- Right Column - Men Models --> <!-- Right Column - Men Models -->
<div class="gender-column"> <div class="gender-column">
<h3 class="text-center mb-4">آواتارهای مردانه</h3> <h3 class="mb-4 text-center">آواتارهای مردانه</h3>
<div class="avatar-grid"> <div class="avatar-grid">
<div v-for="(avatar, index) in maleAvatars" :key="'male-' + index" class="avatar-card"> <div v-for="(avatar, index) in maleAvatars" :key="'male-' + index" class="avatar-card">
<div class="model-preview-container"> <div class="model-preview-container">
@ -74,20 +70,15 @@
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue'
import axios from '@/axios'; import axios from '@/axios';
import { ref } from 'vue'; import { ref } from 'vue';
import AppHeader from '@/components/Header.vue';
export default { export default {
name: 'ChangeAvatar', name: 'ChangeAvatar',
components: { components: {
SidebarMenu,
AppHeader,
}, },
data() { data() {
return { return {
@ -271,21 +262,6 @@ export default {
<style scoped> <style scoped>
.dashboard-page {
margin-right: 360px;
padding: 20px;
direction: rtl;
font-family: IRANSansXFaNum, sans-serif;
}
.content {
background-color: #f8f9fa;
border-radius: 20px;
padding: 35px 80px;
display: flex;
flex-direction: column;
gap: 32px;
}
.page-title { .page-title {
font-size: 22px; font-size: 22px;
font-weight: bold; font-weight: bold;
@ -431,8 +407,11 @@ body, html {
/* Each gender column */ /* Each gender column */
.gender-column { .gender-column {
flex: 1; /* Each column takes equal width */ flex: 1;
min-width: 0; /* Prevent flex items from overflowing */ min-width: 0;
gap: 1rem;
display: flex;
flex-direction: column;
} }
/* Grid layout inside each column */ /* Grid layout inside each column */

View File

@ -1,8 +1,5 @@
<template> <template>
<div>
<SidebarMenu />
<div class="dashboard-page">
<div class="content">
<!-- Top Header --> <!-- Top Header -->
<AppHeader pageTitle="دانلود ها" /> <AppHeader pageTitle="دانلود ها" />
@ -43,19 +40,13 @@
برای دستورالعملهای نصب ، حتماً از <router-link to="/dashboard/download" style="color: #3A57E8;">پایگاه دانش ما</router-link> دیدن کنید. برای دستورالعملهای نصب ، حتماً از <router-link to="/dashboard/download" style="color: #3A57E8;">پایگاه دانش ما</router-link> دیدن کنید.
</span> </span>
</div> </div>
</div>
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue'
import AppHeader from '@/components/Header.vue';
export default { export default {
name: 'DashboardPage', name: 'DashboardPage',
components: { components: {
SidebarMenu,
AppHeader,
}, },
data () { data () {
@ -83,7 +74,7 @@ export default {
<style scoped> <style scoped>
.dashboard-page { /* .dashboard-page {
margin-right: 360px; margin-right: 360px;
padding: 20px; padding: 20px;
direction: rtl; direction: rtl;
@ -97,7 +88,7 @@ export default {
flex-direction: column; flex-direction: column;
gap: 32px; gap: 32px;
} }
*/
.section-title { .section-title {
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
@ -124,6 +115,7 @@ export default {
.chose-device { .chose-device {
margin-top: 2rem; margin-top: 2rem;
margin-bottom: 2rem;
} }
.cards { .cards {
@ -237,7 +229,6 @@ export default {
} }
.instructions-text { .instructions-text {
margin-top: 1.5rem;
font-size: 15px; font-size: 15px;
font-weight: 600; font-weight: 600;
color: #4F5A69; color: #4F5A69;

View File

@ -1,12 +1,5 @@
<template> <template>
<SidebarMenu /> <div>
<div class="dashboard-page">
<div class="content">
<!-- Header -->
<AppHeader pageTitle="ویرایش پروفایل" />
<!-- Two-Column Form Layout --> <!-- Two-Column Form Layout -->
<div class="profile-edit-container"> <div class="profile-edit-container">
@ -96,19 +89,14 @@
</div> </div>
</div>
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue'
import axios from '@/axios'; import axios from '@/axios';
import AppHeader from '@/components/Header.vue';
export default { export default {
name: 'EditProfile', name: 'EditProfile',
components: { components: {
SidebarMenu,
AppHeader,
}, },
data() { data() {
@ -209,7 +197,7 @@ export default {
<style scoped> <style scoped>
.dashboard-page { /* .dashboard-page {
margin-right: 360px; margin-right: 360px;
padding: 20px; padding: 20px;
direction: rtl; direction: rtl;
@ -223,7 +211,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 32px; gap: 32px;
} } */
.page-title { .page-title {
font-size: 22px; font-size: 22px;
font-weight: bold; font-weight: bold;

View File

@ -1,11 +1,5 @@
<template> <template>
<SidebarMenu /> <div>
<div class="dashboard-page">
<div class="content">
<!-- Top Header -->
<AppHeader pageTitle="جلسات" />
<!-- Description --> <!-- Description -->
<div class="section-description"> <div class="section-description">
<div class="section-title">مدیریت جلسات</div> <div class="section-title">مدیریت جلسات</div>
@ -133,19 +127,14 @@
@close="showModal = false" @close="showModal = false"
/> />
</div> </div>
</div>
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue';
import AppHeader from '@/components/Header.vue';
import CreateMeetingModal from '@/components/CreateMeetingModal.vue'; import CreateMeetingModal from '@/components/CreateMeetingModal.vue';
export default { export default {
name: 'DashboardPage', name: 'DashboardPage',
components: { components: {
SidebarMenu,
AppHeader,
CreateMeetingModal, CreateMeetingModal,
}, },
data() { data() {
@ -222,7 +211,7 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
.dashboard-page { /* .dashboard-page {
margin-right: 360px; margin-right: 360px;
padding: 20px; padding: 20px;
direction: rtl; direction: rtl;
@ -236,7 +225,7 @@ export default {
flex-direction: column; flex-direction: column;
gap: 32px; gap: 32px;
} }
*/
.section-title { .section-title {
font-size: 20px; font-size: 20px;

View File

@ -1,8 +1,5 @@
<template> <template>
<SidebarMenu /> <div>
<div class="dashboard-page">
<div class="content">
<!-- Top Header --> <!-- Top Header -->
<AppHeader pageTitle="فضاها" /> <AppHeader pageTitle="فضاها" />
@ -48,7 +45,6 @@
<p>هیچ فضایی با فیلترهای انتخابشده یافت نشد.</p> <p>هیچ فضایی با فیلترهای انتخابشده یافت نشد.</p>
</div> </div>
</div> </div>
</div>
@ -65,8 +61,6 @@
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue';
import AppHeader from '@/components/Header.vue';
import CreateSpaceModal from '@/components/CreateSpaceModal.vue'; import CreateSpaceModal from '@/components/CreateSpaceModal.vue';
import { Swiper, SwiperSlide } from 'swiper/vue'; import { Swiper, SwiperSlide } from 'swiper/vue';
import 'swiper/css'; import 'swiper/css';
@ -76,8 +70,6 @@ import axios from 'axios';
export default { export default {
name: 'DashboardPage', name: 'DashboardPage',
components: { components: {
SidebarMenu,
AppHeader,
CreateSpaceModal, CreateSpaceModal,
Swiper, Swiper,
SwiperSlide, SwiperSlide,
@ -175,7 +167,7 @@ export default {
</style> </style>
<style scoped> <style scoped>
.dashboard-page { /* .dashboard-page {
margin-right: 360px; margin-right: 360px;
padding: 20px; padding: 20px;
direction: rtl; direction: rtl;
@ -188,7 +180,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 32px; gap: 32px;
} } */
.section-title { .section-title {
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;

View File

@ -1,9 +1,7 @@
<template> <template>
<SidebarMenu /> <div class="ef">
<div class="dashboard-page">
<div class="content">
<!-- Top Header --> <!-- Top Header -->
<AppHeader pageTitle="فایل‌ها" />
<!-- Description --> <!-- Description -->
<div class="section-description"> <div class="section-description">
@ -64,7 +62,17 @@
:key="`${section.type}-${index}`" :key="`${section.type}-${index}`"
@click="openPreviewDialog(section.type, index, getFullFileUrl(file[section.type]), file.id)" @click="openPreviewDialog(section.type, index, getFullFileUrl(file[section.type]), file.id)"
> >
<img :src="getFilePreviewImage(section.type, file)" class="file-image" /> <img
:src="getFilePreviewImage(section.type, file)"
:class="[
{
'file-image': section.type === 'image',
'file-pdf': section.type === 'pdf',
'file-video': section.type === 'video',
'file-glb': section.type === 'glb'
}
]"
/>
<div class="file-card-info"> <div class="file-card-info">
<div class="file-title">{{ file.name }}</div> <div class="file-title">{{ file.name }}</div>
<div class="file-meta"> <div class="file-meta">
@ -130,22 +138,17 @@
@close="closePreviewDialog" @close="closePreviewDialog"
@delete-success="fetchUserData" @delete-success="fetchUserData"
/> />
</div>
</template> </template>
<script> <script>
import '@google/model-viewer'; import '@google/model-viewer';
import SidebarMenu from '@/components/SidebarMenu.vue';
import axios from 'axios'; import axios from 'axios';
import AppHeader from '@/components/Header.vue';
import NewFileDialog from '@/components/NewFileDialog.vue'; import NewFileDialog from '@/components/NewFileDialog.vue';
import FilePreviewDialog from '@/components/FilePreviewDialog.vue'; import FilePreviewDialog from '@/components/FilePreviewDialog.vue';
export default { export default {
name: 'DashboardPage', name: 'DashboardPage',
components: { components: {
SidebarMenu,
AppHeader,
NewFileDialog, NewFileDialog,
FilePreviewDialog, FilePreviewDialog,
}, },
@ -423,20 +426,7 @@ export default {
margin-top: 1rem; margin-top: 1rem;
} }
/* Layout and Containers */
.dashboard-page {
margin-right: 360px;
padding: 20px;
direction: rtl;
font-family: IRANSansXFaNum, sans-serif;
}
.content { .content {
background-color: #f8f9fa;
border-radius: 20px;
padding: 35px 80px;
display: flex;
flex-direction: column;
gap: 32px; gap: 32px;
} }
@ -530,7 +520,14 @@ export default {
height: 190px; height: 190px;
width: 100%; width: 100%;
border-radius: 15px; border-radius: 15px;
object-fit: cover; }
.file-image{
object-fit: cover;
}
.file-pdf , .file-video , .file-glb{
object-fit: contain;
} }
.file-card-info { .file-card-info {

View File

@ -1,10 +1,6 @@
<template> <template>
<SidebarMenu /> <div>
<div class="dashboard-page">
<div class="content">
<!-- <AppHeader /> --> <!-- <AppHeader /> -->
<AppHeader pageTitle="از این داشبورد، کار با XRoom را آغاز کنید." />
<div class="dashboard-grid"> <div class="dashboard-grid">
<!-- Right Section --> <!-- Right Section -->
@ -43,8 +39,8 @@
<div class="files-header"> <div class="files-header">
<h1 style=" font-size: 24px;">آخرین فایل ها</h1> <h1 style=" font-size: 24px;">آخرین فایل ها</h1>
<div class="file-buttons"> <div class="file-buttons">
<button class="white-button">بارگذاری فایل</button> <button class="white-button" @click="openDialog('image')">بارگذاری فایل</button>
<button class="white-button">مدیریت فایلها</button> <router-link class="white-button" to="/dashboard/files">مدیریت فایلها</router-link>
</div> </div>
</div> </div>
@ -100,8 +96,6 @@
</div> </div>
</div>
<!-- Create Meeting Modal --> <!-- Create Meeting Modal -->
<CreateMeetingModal <CreateMeetingModal
:is-open="showModal" :is-open="showModal"
@ -114,30 +108,40 @@
:is-open="tutorialShowModal" :is-open="tutorialShowModal"
@close="tutorialShowModal = false" @close="tutorialShowModal = false"
/> />
<!-- New File Dialog Component -->
<NewFileDialog
:is-open="isNewFileDialogOpen"
:initial-upload-type="currentUploadType"
:base-url="baseUrl"
@close="closeDialog"
@upload-success="fetchUserData"
/>
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue'
import AppHeader from '@/components/Header.vue';
import CreateMeetingModal from '@/components/CreateMeetingModal.vue'; import CreateMeetingModal from '@/components/CreateMeetingModal.vue';
import TutorialShowModal from '@/components/TutorialShowModal.vue'; import TutorialShowModal from '@/components/TutorialShowModal.vue';
import NewFileDialog from '@/components/NewFileDialog.vue';
export default { export default {
name: 'DashboardPage', name: 'DashboardPage',
components: { components: {
SidebarMenu,
AppHeader,
CreateMeetingModal, CreateMeetingModal,
TutorialShowModal, TutorialShowModal,
NewFileDialog
}, },
data() { data() {
return { return {
showModal: false, showModal: false,
tutorialShowModal: false, tutorialShowModal: false,
isNewFileDialogOpen: false,
currentUploadType: 'image',
baseUrl: 'http://194.62.43.230:8000'
} }
}, },
methods: { methods: {
createNewMeeting(meetingData) { createNewMeeting(meetingData) {
const newMeeting = { const newMeeting = {
id: this.meetings.length + 1, id: this.meetings.length + 1,
@ -153,13 +157,22 @@ export default {
filterMeetings() { filterMeetings() {
console.log('Filtering meetings'); console.log('Filtering meetings');
}, },
openDialog(type = 'image') {
this.currentUploadType = type;
this.isNewFileDialogOpen = true;
},
closeDialog() {
this.isNewFileDialogOpen = false;
},
fetchUserData() {
console.log('Fetching user data');
}
} }
} }
</script> </script>
<style scoped> <style scoped>
.dashboard-page { /* .dashboard-page {
margin-right: 360px; margin-right: 360px;
padding: 20px; padding: 20px;
direction: rtl; direction: rtl;
@ -175,13 +188,13 @@ export default {
padding: 35px 80px; padding: 35px 80px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} } */
.dashboard-grid { .dashboard-grid {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
gap: 40px; gap: 40px;
margin-top: 80px; margin-top: 1rem;
} }
.left-section { .left-section {
@ -374,6 +387,8 @@ export default {
font-family: "IRANSansXFaNum-Medium", Helvetica; font-family: "IRANSansXFaNum-Medium", Helvetica;
cursor: pointer; cursor: pointer;
transition: background-color 0.2s; transition: background-color 0.2s;
color: #101010;
line-height: normal;
} }
.white-button:hover { .white-button:hover {

View File

@ -1,11 +1,5 @@
<template> <template>
<SidebarMenu /> <div>
<div class="dashboard-page">
<div class="content">
<!-- Header -->
<AppHeader pageTitle="انتخاب آواتار" />
<div class="page-title">ساخت آواتار جدید</div> <div class="page-title">ساخت آواتار جدید</div>
@ -19,19 +13,14 @@
></iframe> ></iframe>
</div> </div>
</div>
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue'
import axios from '@/axios'; import axios from '@/axios';
import AppHeader from '@/components/Header.vue';
export default { export default {
name: 'ChangeAvatar', name: 'ChangeAvatar',
components: { components: {
SidebarMenu,
AppHeader,
}, },
data() { data() {
return { return {
@ -234,7 +223,7 @@ import AppHeader from '@/components/Header.vue';
} }
/* Rest of your existing styles... */ /* Rest of your existing styles... */
.dashboard-page { /* .dashboard-page {
margin-right: 360px; margin-right: 360px;
padding: 20px; padding: 20px;
direction: rtl; direction: rtl;
@ -248,7 +237,7 @@ import AppHeader from '@/components/Header.vue';
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 32px; gap: 32px;
} } */
.page-title { .page-title {
font-size: 22px; font-size: 22px;

View File

@ -1,11 +1,6 @@
<!-- DashboardPage.vue --> <!-- DashboardPage.vue -->
<template> <template>
<SidebarMenu /> <div>
<div class="dashboard-page">
<div class="content">
<!-- Top Header -->
<AppHeader pageTitle="تیم ها" />
<!-- Description --> <!-- Description -->
<div class="section-description"> <div class="section-description">
<div class="section-title">مدیریت اعضا</div> <div class="section-title">مدیریت اعضا</div>
@ -73,12 +68,9 @@
/> />
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import SidebarMenu from '@/components/SidebarMenu.vue';
import AppHeader from '@/components/Header.vue';
import TeamUser from '@/components/TeamUser.vue'; import TeamUser from '@/components/TeamUser.vue';
import BuySubscription from '@/components/BuySubscription.vue'; import BuySubscription from '@/components/BuySubscription.vue';
import Membership from '@/components/Membership.vue'; import Membership from '@/components/Membership.vue';
@ -88,8 +80,6 @@ import axios from 'axios';
export default { export default {
name: 'DashboardPage', name: 'DashboardPage',
components: { components: {
SidebarMenu,
AppHeader,
TeamUser, TeamUser,
BuySubscription, BuySubscription,
Membership, Membership,
@ -507,7 +497,7 @@ export default {
margin-top: 1rem; margin-top: 1rem;
} }
.dashboard-page { /* .dashboard-page {
margin-right: 360px; margin-right: 360px;
padding: 20px; padding: 20px;
direction: rtl; direction: rtl;
@ -522,7 +512,7 @@ export default {
flex-direction: column; flex-direction: column;
gap: 10px; gap: 10px;
} }
*/
.tab-buttons { .tab-buttons {
display: flex; display: flex;
gap: 25px; gap: 25px;

View File

@ -36,55 +36,55 @@ const routes = [
path: '/dashboard', path: '/dashboard',
name: 'DashboardPage', name: 'DashboardPage',
component: DashboardPage, component: DashboardPage,
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'از این داشبورد، کار با XRoom را آغاز کنید.'}
}, },
{ {
path: '/dashboard/files', path: '/dashboard/files',
name: 'files', name: 'files',
component: FilesPage, component: FilesPage,
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'فایل ها'}
}, },
{ {
path: '/dashboard/download', path: '/dashboard/download',
name: 'download', name: 'download',
component: DownloadPage, component: DownloadPage,
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'دانلود ها'}
}, },
{ {
path: '/dashboard/spaces', path: '/dashboard/spaces',
name: 'spaces', name: 'spaces',
component: spacesPage, component: spacesPage,
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'فضاها'}
}, },
{ {
path: '/dashboard/meetings', path: '/dashboard/meetings',
name: 'meetings', name: 'meetings',
component: MeetingPage, component: MeetingPage,
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'جلسات'}
}, },
{ {
path: '/dashboard/teams', path: '/dashboard/teams',
name: 'teams', name: 'teams',
component: TeamsPage, component: TeamsPage,
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'تیم ها'}
}, },
{ {
path: '/dashboard/edit-profile', path: '/dashboard/edit-profile',
name: 'EditProfile', name: 'EditProfile',
component: () => import('@/pages/dashboard/EditProfile.vue'), component: () => import('@/pages/dashboard/EditProfile.vue'),
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'ویرایش پروفایل'}
}, },
{ {
path: '/dashboard/readyPlayer', path: '/dashboard/readyPlayer',
name: 'ReadyPlayer', name: 'ReadyPlayer',
component: () => import('@/pages/dashboard/readyPlayer.vue'), component: () => import('@/pages/dashboard/readyPlayer.vue'),
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'انتخاب آواتار'}
}, },
{ {
path: '/dashboard/ChangeAvatar', path: '/dashboard/ChangeAvatar',
name: 'ChangeAvatar', name: 'ChangeAvatar',
component: () => import('@/pages/dashboard/ChangeAvatar.vue'), component: () => import('@/pages/dashboard/ChangeAvatar.vue'),
meta: { requiresAuth: true } meta: { requiresAuth: true , title : 'انتخاب آواتار'}
} }
] ]