hgh_admin/resources/js/views/apps/calendar/useCalendarStore.js
2024-05-29 22:34:28 +05:00

60 lines
1.3 KiB
JavaScript

export const useCalendarStore = defineStore('calendar', {
// arrow function recommended for full type inference
state: () => ({
availableCalendars: [
{
color: 'error',
label: 'Personal',
},
{
color: 'primary',
label: 'Business',
},
{
color: 'warning',
label: 'Family',
},
{
color: 'success',
label: 'Holiday',
},
{
color: 'info',
label: 'ETC',
},
],
selectedCalendars: ['Personal', 'Business', 'Family', 'Holiday', 'ETC'],
}),
actions: {
async fetchEvents() {
const { data, error } = await useApi(createUrl('/apps/calendar', {
query: {
calendars: this.selectedCalendars,
},
}))
if (error.value)
return error.value
return data.value
},
async addEvent(event) {
await $api('/apps/calendar', {
method: 'POST',
body: event,
})
},
async updateEvent(event) {
return await $api(`/apps/calendar/${event.id}`, {
method: 'PUT',
body: event,
})
},
async removeEvent(eventId) {
return await $api(`/apps/calendar/${eventId}`, {
method: 'DELETE',
})
},
},
})