Display error when request fails

This commit is contained in:
Joscha 2025-03-03 13:35:24 +01:00
parent c7c640eeff
commit dc64aa0bc8

View file

@ -3,6 +3,7 @@ import { computed, ref, type StyleValue, useTemplateRef } from "vue";
const form = useTemplateRef<HTMLFormElement>("form"); const form = useTemplateRef<HTMLFormElement>("form");
const disabled = ref(false); const disabled = ref(false);
const error = ref<string>();
const text = ref(""); const text = ref("");
const forceWrap = ref(false); const forceWrap = ref(false);
@ -38,9 +39,13 @@ async function submit(): Promise<void> {
data.append("force_wrap", String(forceWrap.value)); data.append("force_wrap", String(forceWrap.value));
data.append("feed", String(feed.value)); data.append("feed", String(feed.value));
const response = await fetch("/api/text", { method: "POST", body: data }); const response = await fetch("/api/text", { method: "POST", body: data });
console.log("POST succeeded:", await response.text()); if (!response.ok) {
const status = `${response.status.toFixed()} ${response.statusText}`;
const text = await response.text();
error.value = text.length > 0 ? `${status}: ${text}` : status;
}
} catch (err) { } catch (err) {
console.log("POST failed:", err); error.value = String(err);
} }
await waitAtLeast(500, start); await waitAtLeast(500, start);
@ -68,6 +73,7 @@ async function submit(): Promise<void> {
<label><input v-model="feed" type="checkbox" :disabled /> Feed</label> <label><input v-model="feed" type="checkbox" :disabled /> Feed</label>
</fieldset> </fieldset>
<button :disabled>Print</button> <button :disabled>Print</button>
<p v-if="error" class="error">{{ error }}</p>
</form> </form>
</template> </template>
@ -92,4 +98,10 @@ fieldset {
flex-direction: column; flex-direction: column;
border: none; border: none;
} }
.error {
background-color: #fdd;
color: #400;
padding: 0 2px;
}
</style> </style>