From df2280df4fc21112efc3e67f1492a6da078b7f76 Mon Sep 17 00:00:00 2001 From: eiiko6 Date: Wed, 31 Dec 2025 16:23:08 +0100 Subject: [PATCH] enabled registration --- src/pages/LoginPage.vue | 15 +++++++ src/pages/RegisterPage.vue | 89 ++++++++++++++++++++++++++++++++++++++ src/router.ts | 9 +++- src/store.ts | 16 +++++++ 4 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 src/pages/RegisterPage.vue diff --git a/src/pages/LoginPage.vue b/src/pages/LoginPage.vue index d242196..2ea83a5 100644 --- a/src/pages/LoginPage.vue +++ b/src/pages/LoginPage.vue @@ -31,6 +31,10 @@ async function submit() {

{{ errorMessage }}

+ + @@ -62,6 +66,17 @@ async function submit() { text-align: center; } +.register-link { + font-size: 0.9rem; + text-align: center; + color: var(--text-muted); +} + +.register-link a { + color: var(--accent); + margin-left: 5px; +} + .error-message { color: red; font-size: 0.9rem; diff --git a/src/pages/RegisterPage.vue b/src/pages/RegisterPage.vue new file mode 100644 index 0000000..b16291e --- /dev/null +++ b/src/pages/RegisterPage.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/src/router.ts b/src/router.ts index b531476..319b3f3 100644 --- a/src/router.ts +++ b/src/router.ts @@ -2,6 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router' import { initAuth, getLastRoom, setLastRoom } from './store' import LoginPage from './pages/LoginPage.vue' +import RegisterPage from './pages/RegisterPage.vue' import ChatPage from './pages/ChatPage.vue' import FriendListPage from './pages/FriendListPage.vue' import NofificationsPage from './pages/NotificationsPage.vue' @@ -16,6 +17,12 @@ const router = createRouter({ component: LoginPage, meta: { hideNavbar: true } }, + { + path: '/register', + name: 'register', + component: RegisterPage, + meta: { hideNavbar: true } + }, { path: '/rooms/:uuid', name: 'chat', @@ -28,7 +35,7 @@ const router = createRouter({ }) router.beforeEach(async (to) => { - if (to.path === '/login') return true + if (to.path === '/login' || to.path === '/register') return true const auth = await initAuth() if (!auth.isAuthenticated) { diff --git a/src/store.ts b/src/store.ts index eb8817d..7d523bb 100644 --- a/src/store.ts +++ b/src/store.ts @@ -41,6 +41,17 @@ export async function validateToken(): Promise { } } +export async function register(email: string, username: string, password: string) { + const response: LoginResponse = await apiFetch('/register', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ email, username, password }) + }); + + await login(email, username, password) + return response; +} + const requests = ref([]) const invites = ref([]) @@ -48,6 +59,11 @@ export function useNotifications() { const totalCount = computed(() => requests.value.length + invites.value.length) async function refreshNotifications() { + const auth = await authStore.getAuthData() + if (!auth.token) { + return + } + try { const [fReqs, rInvs] = await Promise.all([ fetchFriendRequests(),