fix: lesson auto save

This commit is contained in:
Jannat Patel
2024-08-05 18:14:35 +05:30
parent eed330662b
commit 8adfe247b2
13 changed files with 113 additions and 76 deletions

View File

@@ -4,14 +4,14 @@
<slot />
</div>
<div
v-if="tabs"
v-if="sidebarSettings.data"
class="fixed flex justify-around border-t border-gray-300 bottom-0 z-10 w-full bg-white standalone:pb-4"
:style="{
gridTemplateColumns: `repeat(${tabs.length}, minmax(0, 1fr))`,
gridTemplateColumns: `repeat(${sidebarLinks.length}, minmax(0, 1fr))`,
}"
>
<button
v-for="tab in tabs"
v-for="tab in sidebarLinks"
:key="tab.label"
:class="isVisible(tab) ? 'block' : 'hidden'"
class="flex flex-col items-center justify-center py-3 transition active:scale-95"
@@ -29,21 +29,38 @@
<script setup>
import { getSidebarLinks } from '../utils'
import { useRouter } from 'vue-router'
import { computed } from 'vue'
import { computed, ref, onMounted } from 'vue'
import { sessionStore } from '@/stores/session'
import { usersStore } from '@/stores/user'
import * as icons from 'lucide-vue-next'
const { logout, user } = sessionStore()
const { logout, user, sidebarSettings } = sessionStore()
let { isLoggedIn } = sessionStore()
const router = useRouter()
let { userResource } = usersStore()
const sidebarLinks = ref(getSidebarLinks())
const tabs = computed(() => {
let links = getSidebarLinks()
onMounted(() => {
sidebarSettings.reload(
{},
{
onSuccess(data) {
Object.keys(data).forEach((key) => {
if (!parseInt(data[key])) {
sidebarLinks.value = sidebarLinks.value.filter(
(link) => link.label.toLowerCase().split(' ').join('_') !== key
)
}
})
addAccessLinks()
},
}
)
})
const addAccessLinks = () => {
if (user) {
links.push({
sidebarLinks.value.push({
label: 'Profile',
icon: 'UserRound',
activeFor: [
@@ -54,18 +71,17 @@ const tabs = computed(() => {
'ProfileRoles',
],
})
links.push({
sidebarLinks.value.push({
label: 'Log out',
icon: 'LogOut',
})
} else {
links.push({
sidebarLinks.value.push({
label: 'Log in',
icon: 'LogIn',
})
}
return links
})
}
let isActive = (tab) => {
return tab.activeFor?.includes(router.currentRoute.value.name)