Files
enlight-lms/frontend/src/stores/settings.js
2025-11-17 10:10:26 +05:30

64 lines
1.4 KiB
JavaScript

import { defineStore } from 'pinia'
import { ref } from 'vue'
import { createResource } from 'frappe-ui'
import { sessionStore } from './session'
export const useSettings = defineStore('settings', () => {
const isSettingsOpen = ref(false)
const isCommandPaletteOpen = ref(false)
const activeTab = ref(null)
const allowGuestAccess = createResource({
url: 'lms.lms.api.get_lms_setting',
params: { field: 'allow_guest_access' },
auto: true,
cache: ['allowGuestAccess'],
})
const preventSkippingVideos = createResource({
url: 'lms.lms.api.get_lms_setting',
params: { field: 'prevent_skipping_videos' },
auto: true,
cache: ['preventSkippingVideos'],
})
const contactUsEmail = createResource({
url: 'lms.lms.api.get_lms_setting',
params: { field: 'contact_us_email' },
auto: true,
cache: ['contactUsEmail'],
})
const contactUsURL = createResource({
url: 'lms.lms.api.get_lms_setting',
params: { field: 'contact_us_url' },
auto: true,
cache: ['contactUsURL'],
})
const sidebarSettings = createResource({
url: 'lms.lms.api.get_sidebar_settings',
cache: 'Sidebar Settings',
auto: false,
})
const livecodeURL = createResource({
url: 'lms.lms.api.get_lms_setting',
params: { field: 'livecode_url' },
auto: true,
cache: ['livecodeURL'],
})
return {
isSettingsOpen,
isCommandPaletteOpen,
activeTab,
allowGuestAccess,
preventSkippingVideos,
contactUsEmail,
contactUsURL,
sidebarSettings,
livecodeURL,
}
})