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 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) {
|
||||
action_error.value = null;
|
||||
@@ -57,37 +57,42 @@ async function handleUpdateOfBasicInfo(internship: NewInternship) {
|
||||
<!-- Chybová hláška -->
|
||||
<ErrorAlert v-if="action_error" :error="action_error" />
|
||||
|
||||
<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>
|
||||
<!-- Chybová hláška -->
|
||||
<ErrorAlert v-if="error" :error="error.message" />
|
||||
|
||||
<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>
|
||||
<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>
|
||||
<hr />
|
||||
|
||||
<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>
|
||||
<InternshipStatusHistoryView :internship="data!" />
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<hr />
|
||||
<h4>História</h4>
|
||||
<InternshipStatusHistoryView :internship="data!" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>Nahratie dokumentov</h2>
|
||||
<hr />
|
||||
|
||||
<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.' />
|
||||
<div>
|
||||
<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>
|
||||
</v-card>
|
||||
</v-container>
|
||||
|
||||
Reference in New Issue
Block a user