64 lines
1.4 KiB
JavaScript
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,
|
|
}
|
|
})
|