From f648e0aa9039c7eb020c7904715aa7db33a453df Mon Sep 17 00:00:00 2001
From: suricata
Date: Tue, 13 Jan 2026 19:08:15 +0000
Subject: [PATCH] better ui
---
app/components/main_header.vue | 21 ++++++++++++----
app/layouts/settings.vue | 20 +++++++++++++++
app/pages/index.vue | 33 +++++++++++++++++++------
app/pages/login.vue | 44 +++++++++++----------------------
app/pages/settings/general.vue | 10 ++++++++
app/pages/settings/index.vue | 4 +++
app/pages/settings/security.vue | 10 ++++++++
7 files changed, 99 insertions(+), 43 deletions(-)
create mode 100644 app/layouts/settings.vue
create mode 100644 app/pages/settings/general.vue
create mode 100644 app/pages/settings/index.vue
create mode 100644 app/pages/settings/security.vue
diff --git a/app/components/main_header.vue b/app/components/main_header.vue
index 207fcf2..a83ba58 100644
--- a/app/components/main_header.vue
+++ b/app/components/main_header.vue
@@ -2,6 +2,7 @@
import { ui_colors_dropdown } from '~/composables/set_colors';
const loggedIn = ref(true);
+const logout_prompt = ref(false);
const props = defineProps({
@@ -9,10 +10,18 @@ const props = defineProps({
type: String,
required: false,
default: "Home"
+ },
+ settings_link: {
+ type: Boolean,
+ required: false,
+ default: true
}
})
+
+
+
@@ -24,8 +33,9 @@ const props = defineProps({
-
-
+
+
+
@@ -35,13 +45,14 @@ const props = defineProps({
You will have to login again.
- No
- Yes
+ No
+ Yes
+
- Login
+ Login
diff --git a/app/layouts/settings.vue b/app/layouts/settings.vue
new file mode 100644
index 0000000..79c4862
--- /dev/null
+++ b/app/layouts/settings.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/index.vue b/app/pages/index.vue
index 157be77..d392cc3 100644
--- a/app/pages/index.vue
+++ b/app/pages/index.vue
@@ -3,22 +3,39 @@
const video = ref(0);
const url = ref("");
const in_url = ref("");
+ const output_name = ref("");
function get_yt_vid() {
url.value = in_url.value
- video.value = 1
+ if (in_url.value !== "") video.value = 1
+ else video.value = 0
}
+ function start_conversion() {
+ return fetch("/convert", {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify({
+ url: url.value,
+ name: output_name.value,
+ })
+ }).then(r => {
+ if(r.status == 401) navigateTo("/login")
+ })
+ }
+
-
+
Youtube to MP3
@@ -35,14 +52,14 @@
-
+
-
+
- Convert to MP3
+ Convert to MP3
@@ -63,7 +80,7 @@
var(--color-red-500)
);
background-size: 400% 100%;
- animation: rgb 10s linear infinite;
+ animation: rgb 15s linear infinite;
-webkit-background-clip: text;
background-clip: text;
diff --git a/app/pages/login.vue b/app/pages/login.vue
index 0e0eb85..ed4aed5 100644
--- a/app/pages/login.vue
+++ b/app/pages/login.vue
@@ -4,6 +4,8 @@ import type { FormSubmitEvent, AuthFormField } from '@nuxt/ui'
const toast = useToast()
+const wrong_login = ref(false)
+
const fields: AuthFormField[] = [{
name: 'email',
type: 'email',
@@ -22,12 +24,7 @@ const fields: AuthFormField[] = [{
type: 'checkbox'
}]
-const otp_fields: AuthFormField[] = [{
- name: 'otp',
- type: 'otp',
- length: 6,
- placeholder: '*'
-}]
+
const schema = z.object({
@@ -56,32 +53,19 @@ function onSubmit(payload: FormSubmitEvent
) {
class: 'rounded-full',
variant: 'solid'
}"
- />
+ >
+
+
+
+
-
+
diff --git a/app/pages/settings/general.vue b/app/pages/settings/general.vue
new file mode 100644
index 0000000..36d4a95
--- /dev/null
+++ b/app/pages/settings/general.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/settings/index.vue b/app/pages/settings/index.vue
new file mode 100644
index 0000000..8239f44
--- /dev/null
+++ b/app/pages/settings/index.vue
@@ -0,0 +1,4 @@
+
+
diff --git a/app/pages/settings/security.vue b/app/pages/settings/security.vue
new file mode 100644
index 0000000..36d4a95
--- /dev/null
+++ b/app/pages/settings/security.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file