You've already forked isop-mirror
fix: add error handling for fetch response in internship edit page
This commit is contained in:
@@ -20,7 +20,7 @@ const client = useSanctumClient();
|
|||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const action_error = ref(null as null | string);
|
const action_error = ref(null as null | string);
|
||||||
|
|
||||||
const { data, refresh } = await useSanctumFetch<Internship>(`/api/internships/${route.params.id}`);
|
const { data, error, refresh } = await useSanctumFetch<Internship>(`/api/internships/${route.params.id}`);
|
||||||
|
|
||||||
async function handleUpdateOfBasicInfo(internship: NewInternship) {
|
async function handleUpdateOfBasicInfo(internship: NewInternship) {
|
||||||
action_error.value = null;
|
action_error.value = null;
|
||||||
@@ -57,37 +57,42 @@ async function handleUpdateOfBasicInfo(internship: NewInternship) {
|
|||||||
<!-- Chybová hláška -->
|
<!-- Chybová hláška -->
|
||||||
<ErrorAlert v-if="action_error" :error="action_error" />
|
<ErrorAlert v-if="action_error" :error="action_error" />
|
||||||
|
|
||||||
<div>
|
<!-- Chybová hláška -->
|
||||||
<h2>Základné informácie</h2>
|
<ErrorAlert v-if="error" :error="error.message" />
|
||||||
<ErrorAlert v-if="data?.status.status !== InternshipStatus.SUBMITTED"
|
|
||||||
error='Vaša prax nie je v stave "Zadaná" a teda nemôžete meniť údaje.' />
|
|
||||||
<InternshipEditor v-else :internship="data!" :submit="handleUpdateOfBasicInfo" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr />
|
<div v-else>
|
||||||
|
<div>
|
||||||
|
<h2>Základné informácie</h2>
|
||||||
|
<ErrorAlert v-if="data?.status.status !== InternshipStatus.SUBMITTED"
|
||||||
|
error='Vaša prax nie je v stave "Zadaná" a teda nemôžete meniť údaje.' />
|
||||||
|
<InternshipEditor v-else :internship="data!" :submit="handleUpdateOfBasicInfo" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<hr />
|
||||||
<h2>Stav</h2>
|
|
||||||
<h4>Aktuálny stav</h4>
|
|
||||||
<p>{{ prettyInternshipStatus(data?.status.status!) }}</p>
|
|
||||||
<p>Poznámka: <em>{{ data?.status.note }}</em></p>
|
|
||||||
<p>Posledná zmena: <em>{{ data?.status.changed }}, {{ data?.status.modified_by.name }}</em></p>
|
|
||||||
|
|
||||||
<br />
|
<div>
|
||||||
|
<h2>Stav</h2>
|
||||||
|
<h4>Aktuálny stav</h4>
|
||||||
|
<p>{{ prettyInternshipStatus(data?.status.status!) }}</p>
|
||||||
|
<p>Poznámka: <em>{{ data?.status.note }}</em></p>
|
||||||
|
<p>Posledná zmena: <em>{{ data?.status.changed }}, {{ data?.status.modified_by.name }}</em></p>
|
||||||
|
|
||||||
<h4>História</h4>
|
<br />
|
||||||
<InternshipStatusHistoryView :internship="data!" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr />
|
<h4>História</h4>
|
||||||
|
<InternshipStatusHistoryView :internship="data!" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<hr />
|
||||||
<h2>Nahratie dokumentov</h2>
|
|
||||||
|
|
||||||
<ErrorAlert v-if="data?.status.status !== InternshipStatus.CONFIRMED" title="Blokované"
|
<div>
|
||||||
error='Vaša prax nie je v stave "Schválená" a teda nemôžete nahrať dokumenty.' />
|
<h2>Nahratie dokumentov</h2>
|
||||||
|
|
||||||
<InternshipDocumentEditor v-else :internship="data!" @successful-submit="refresh" />
|
<ErrorAlert v-if="data?.status.status !== InternshipStatus.CONFIRMED" title="Blokované"
|
||||||
|
error='Vaša prax nie je v stave "Schválená" a teda nemôžete nahrať dokumenty.' />
|
||||||
|
|
||||||
|
<InternshipDocumentEditor v-else :internship="data!" @successful-submit="refresh" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-container>
|
</v-container>
|
||||||
|
|||||||
Reference in New Issue
Block a user