diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index cdd3aa7..6fa6614 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -437,7 +437,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chatapp" -version = "0.1.0" +version = "1.0.0" dependencies = [ "serde", "serde_json", diff --git a/src/components/CreateRoomModal.vue b/src/components/CreateRoomModal.vue index b6ebb43..b73c0ac 100644 --- a/src/components/CreateRoomModal.vue +++ b/src/components/CreateRoomModal.vue @@ -1,3 +1,28 @@ + + + + Create room + + + + + + Global room + + + + + Cancel + + + + Create + + + + + + - - - - Create room - - - - - - Global room - - - - Cancel - Create - - - - - diff --git a/src/pages/FriendListPage.vue b/src/pages/FriendListPage.vue index 62df664..d023efd 100644 --- a/src/pages/FriendListPage.vue +++ b/src/pages/FriendListPage.vue @@ -3,15 +3,14 @@ Your friends - - + Add Friend - - Send Request + + Send Request {{ errorMessage }} - + @@ -49,6 +48,7 @@ async function send() { await sendFriendRequest(username.value) username.value = '' errorMessage.value = '' + friends.value = await fetchFriends() } catch (err: any) { errorMessage.value = err } diff --git a/src/pages/RegisterPage.vue b/src/pages/RegisterPage.vue index b16291e..0369076 100644 --- a/src/pages/RegisterPage.vue +++ b/src/pages/RegisterPage.vue @@ -1,11 +1,12 @@ - + Register + Create Account @@ -26,15 +27,34 @@ import { useRouter } from "vue-router"; const email = ref(""); const username = ref(""); const password = ref(""); +const confirmPassword = ref(""); const errorMessage = ref(""); const router = useRouter(); -async function submit() { +async function submit(event: Event) { errorMessage.value = ""; + + const form = event.target as HTMLFormElement; + + // Check password length and email + if (!form.checkValidity()) { + if (password.value.length < 8) { + errorMessage.value = "Password must be at least 8 characters long"; + } else { + errorMessage.value = "Please enter a valid email address"; + } + return; + } + + // Check password match + if (password.value !== confirmPassword.value) { + errorMessage.value = "Passwords do not match"; + return; + } + try { await register(email.value, username.value, password.value); - router.push("/"); } catch (err: any) { errorMessage.value = err?.message || "An unknown error occurred"; @@ -75,7 +95,6 @@ async function submit() { margin-top: 0.5rem; } - .login-link { font-size: 0.9rem; text-align: center; diff --git a/src/router.ts b/src/router.ts index 319b3f3..a7ffc57 100644 --- a/src/router.ts +++ b/src/router.ts @@ -6,6 +6,7 @@ import RegisterPage from './pages/RegisterPage.vue' import ChatPage from './pages/ChatPage.vue' import FriendListPage from './pages/FriendListPage.vue' import NofificationsPage from './pages/NotificationsPage.vue' +import AccountPage from './pages/AccountPage.vue' const router = createRouter({ history: createWebHistory(), @@ -30,7 +31,8 @@ const router = createRouter({ props: true }, { path: '/friendlist', component: FriendListPage }, - { path: '/notifications', component: NofificationsPage } + { path: '/notifications', component: NofificationsPage }, + { path: '/account', component: AccountPage } ], }) diff --git a/src/store.ts b/src/store.ts index 7d523bb..16f28f7 100644 --- a/src/store.ts +++ b/src/store.ts @@ -18,7 +18,8 @@ export async function login(email: string, username: string, password: string) { let user: User = { uuid: res.uuid, - username: username + username: res.username, + email: res.email }; await authStore.saveAuthData(res.token, user) return { token: res.token, uuid: res.uuid, isAuthenticated: true } diff --git a/src/types.ts b/src/types.ts index e7f0e39..1e43ffa 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,10 +1,13 @@ export interface User { uuid: string username: string + email: string } export interface LoginResponse { uuid: string + username: string + email: string token: string }
{{ errorMessage }}