This commit is contained in:
2026-01-13 13:30:24 +00:00
parent 4fdaf028d4
commit 3297df6447
3 changed files with 124 additions and 12 deletions

View File

@@ -1,11 +1,18 @@
<script setup lang="ts">
const video = ref(1);
const video = ref(0);
const url = ref("");
const in_url = ref("");
function get_yt_vid() {
url.value = in_url.value
video.value = 1
}
</script>
<template>
<MainHeader :ui_colors="ui_colors_dropdown"/>
<MainHeader/>
<div class="justify-center flex flex-col mt-4 mb-4 w-full">
<h1 class="inter font-bold text-center mt-3 mb-3 text-white white-glow max-sm:text-5xl sm:text-6xl md:text-7xl xl:text-8xl rgb-text">Youtube to MP3</h1>
@@ -13,9 +20,10 @@
<UInput
class="self-center geist-mono mt-3 mb-3 max-md:w-3/4 w-2/3 2xl:w-1/2"
:ui="{ base: 'rounded-2xl h-15 text-toned', trailing: 'p-0' }"
placeholder="Search for a YouTube video..." >
placeholder="Search for a YouTube video..."
v-model="in_url" >
<template #trailing>
<UButton class="self-end rounded-r-2xl h-15 px-3" icon="lucide:search" />
<UButton class="self-end rounded-r-2xl h-15 px-3" icon="lucide:search" @click="get_yt_vid" />
</template>
</UInput>
@@ -24,11 +32,11 @@
<div class="w-full max-w-md mx-auto mt-8 p-6 light:bg-zinc-50 dark:bg-zinc-950 rounded-xl" v-if="video">
<div class="video-container">
<LazyYoutube src="https://www.youtube.com/watch?v=-B48W6H2YHE&list=RD-B48W6H2YHE&start_radio=1" />
<LazyYoutube :src="url" />
</div>
<UFormField id="videoUrl" class="w-full mt-3 mb-4" label="Video URL:" >
<UInput type="text" value="https://www.youtube.com/watch?v=dQw4w9WgXcQ" class="w-full" />
<UInput type="text" :value="url" class="w-full" />
</UFormField>
<UFormField id="outputFile" class="w-full mt-4 mb-3" label="Output File Name:">
<UInput type="text" value="my_audio.mp3" class="w-full" />

87
app/pages/login.vue Normal file
View File

@@ -0,0 +1,87 @@
<script setup lang="ts">
import * as z from 'zod'
import type { FormSubmitEvent, AuthFormField } from '@nuxt/ui'
const toast = useToast()
const fields: AuthFormField[] = [{
name: 'email',
type: 'email',
label: 'Email',
placeholder: 'Enter your email',
required: true
}, {
name: 'password',
label: 'Password',
type: 'password',
placeholder: 'Enter your password',
required: true
} , {
name: 'remember',
label: 'Remember me',
type: 'checkbox'
}]
const otp_fields: AuthFormField[] = [{
name: 'otp',
type: 'otp',
length: 6,
placeholder: '*'
}]
const schema = z.object({
email: z.email('Invalid email'),
password: z.string('Password is required').min(8, 'Must be at least 8 characters')
})
type Schema = z.output<typeof schema>
function onSubmit(payload: FormSubmitEvent<Schema>) {
console.log('Submitted', payload)
}
</script>
<template>
<div class="flex flex-col items-center justify-center gap-4 p-4 mt-7">
<UPageCard class="w-full max-w-md dark:bg-zinc-950 rounded-3xl">
<UAuthForm
:schema="schema"
title="Login"
description="Enter your credentials to access your account."
icon="i-lucide-user"
:fields="fields"
:submit="{
label: 'Login',
class: 'rounded-full',
variant: 'solid'
}"
/>
</UPageCard>
</div>
<!----<div class="flex flex-col items-center justify-center gap-4 p-4">
<UPageCard class="w-full max-w-md dark:bg-zinc-950 rounded-3xl">
<UAuthForm
:schema="schema"
title="Login"
description="Check the code sent to your e-mail"
icon="i-lucide-user"
:fields="otp_fields"
:submit="{
label: 'Submit',
class: 'rounded-full',
variant: 'solid'
}"
:ui="{
otp: 'justify-center'
}"
>
<template #footer>
<UButton icon="lucide:rotate-cw" class="w-full rounded-full justify-center" color="success">Resend</UButton>
</template>
</UAuthForm>
</UPageCard>
</div>-->
</template>