Files
app/src/pages/profile/event/EditEventPage.vue
T

48 lines
1.3 KiB
Vue

<script setup>
import {onMounted} from "vue";
import {useAppStore} from "stores/App";
import {useRoute, useRouter} from "vue-router";
import {useEventsStore} from "stores/Events";
import {successObject} from "src/composables/dialog";
import {useQuasar} from "quasar";
import EventEditSkeleton from "components/event/skeletons/EventEditSkeleton.vue";
import EventForm from "components/event/EventForm.vue";
import {storeToRefs} from "pinia";
const eventId = parseInt(useRoute().params.id);
onMounted(() => {
useEventsStore().fetchDetail(eventId).then((e) => {
useAppStore().setPageTitle(`${e.name} - editace`);
useAppStore().setBreadcrumbs([
{to: {name: "events"}, label: "Události"},
{to: {name: "eventDetail", params: {id: eventId}}, label: e.name},
{label: "Editace"}
])
})
});
const $q = useQuasar();
const $router = useRouter();
const handleSave = (formData) => {
useEventsStore().update(eventId, formData).then(() => {
$q.notify(successObject("Událost úspěšně upravena"));
$router.push({name: "eventDetail", params: {id: eventId}});
});
}
const {isQueryRunning, isMutationRunning, event} = storeToRefs(useEventsStore());
</script>
<template>
<EventEditSkeleton v-if="isQueryRunning"/>
<EventForm
v-else
:event="event"
:is-request-pending="isMutationRunning"
@save="handleSave"
/>
</template>