TKO/services/frontend/components/Calendar.vue

47 lines
1 KiB
Vue
Raw Permalink Normal View History

2025-02-16 21:10:50 +01:00
<template>
<h1>Kalendář</h1>
<h2>Podívejte se, kdy se můžete přidat!</h2>
<v-sheet class="sheet__box">
<v-calendar
2025-03-05 16:21:16 +01:00
:firstDayOfWeek="0"
2025-02-16 21:10:50 +01:00
locale="cs-CZ"
ref="calendar"
2025-03-05 16:21:16 +01:00
:showAdjacentMonths="true"
2025-02-16 21:10:50 +01:00
view-mode="week"
:events="events"
2025-03-05 16:21:16 +01:00
:interval-start="7"
:interval-height="25"
2025-02-16 21:10:50 +01:00
/>
</v-sheet>
</template>
<script setup lang="ts">
import './assets/css/main.css'
2025-02-19 20:51:19 +01:00
import {useAPI} from "~/composables/useAPI";
2025-03-05 16:21:16 +01:00
interface Event {
title: string;
end: Date;
start: Date;
color: string;
}
2025-02-19 20:51:19 +01:00
2025-03-05 16:21:16 +01:00
const events = ref<Event[]>([]);
2025-02-16 21:10:50 +01:00
2025-03-05 16:21:16 +01:00
await loadEvents();
async function loadEvents() {
const { error, data } = await useAPI<Event[]>('load-events/', { method: "GET" });
if (data.value && Array.isArray(data.value)) {
events.value = data.value as Event[];
for(const i in data.value){
data.value[i].end = new Date((data.value[i].end));
data.value[i].start = new Date((data.value[i].start));
}
} else if (error.value) {
console.error("Error loading events:", error.value);
2025-02-16 21:10:50 +01:00
}
2025-03-05 16:21:16 +01:00
}
2025-02-16 21:10:50 +01:00
</script>