door-alarm/web/pages/token.vue
Daniel Svitan a48d1238a2
All checks were successful
Gitea Build Action / build (push) Successful in 28s
🚧 Adds token form
2025-06-05 09:48:58 +02:00

43 lines
1.2 KiB
Vue

<template>
<main class="flex items-center justify-center min-w-screen min-h-screen">
<UForm :schema="schema" :state="state" @submit="onSubmit" class="flex flex-col items-end justify-center gap-y-2">
<UFormField label="Token" name="token" size="xl" required>
<UInput v-model="state.token" placeholder="Your token..." size="xl"/>
</UFormField>
<UButton type="submit" size="xl">
Submit
</UButton>
</UForm>
</main>
</template>
<script lang="ts" setup>
import * as v from "valibot"
import type { FormSubmitEvent } from "@nuxt/ui"
const schema = v.object({
token: v.pipe(v.string(), v.nonEmpty("Please enter your token"))
})
type Schema = v.InferOutput<typeof schema>
const state = reactive({
token: ""
})
const toast = useToast()
async function onSubmit(event: FormSubmitEvent<Schema>) {
const token = event.data.token
const res = await $fetch("https://door.svitan.dev/open", {
method: "GET",
headers: {
Authorization: token
}
})
console.log(token)
console.log(res)
toast.add({ title: "Token saved", color: "success" })
}
</script>