added room invites to DB, and minor frontend layout changes

This commit is contained in:
2025-12-18 16:20:30 +01:00
parent 2e2e9a76f9
commit 3633b6594c
3 changed files with 36 additions and 25 deletions

View File

@@ -1,9 +1,33 @@
<template> <template>
<div id="page"> <div id="page">
<router-view /> <router-view />
<div id="absolute">
<button class="logout" @click="logout()">Logout</button>
<router-link to="." class="button">
Home
</router-link>
<router-link to="/friendlist" class="button">
Friendlist
</router-link>
</div>
</div> </div>
</template> </template>
<script setup lang="ts">
import { useRouter } from 'vue-router'
import { logout as authLogout } from './stores/auth.ts'
const router = useRouter()
function logout() {
authLogout()
router.push('/login')
}
</script>
<style scoped> <style scoped>
#page { #page {
display: flex; display: flex;
@@ -15,6 +39,13 @@
background: var(--background); background: var(--background);
} }
#absolute {
position: absolute;
left: 0;
top: 0;
margin: 30px;
}
@media screen and (max-width: 720px) { @media screen and (max-width: 720px) {
#page { #page {
padding: 0; padding: 0;

View File

@@ -52,7 +52,7 @@ input:focus, textarea:focus {
border-color: var(--accent); border-color: var(--accent);
} }
button { button, .button {
font-size: 1rem; font-size: 1rem;
background: var(--accent); background: var(--accent);
color: #0b0d12; color: #0b0d12;
@@ -61,9 +61,11 @@ button {
padding: 0.6rem 1rem; padding: 0.6rem 1rem;
font-weight: 600; font-weight: 600;
cursor: pointer; cursor: pointer;
text-decoration: none;
margin: 5px;
} }
button:hover { button:hover, .button:hover {
background: var(--accent-hover); background: var(--accent-hover);
} }

View File

@@ -7,10 +7,6 @@
<CreateRoomModal v-if="showCreate" @close="showCreate = false" @created="rooms.push($event)" /> <CreateRoomModal v-if="showCreate" @close="showCreate = false" @created="rooms.push($event)" />
<router-link to="/friendlist">
to friendlist
</router-link>
<ul class="rooms-list"> <ul class="rooms-list">
<li v-for="room in rooms" :key="room.uuid" class="room-item"> <li v-for="room in rooms" :key="room.uuid" class="room-item">
<router-link class="room-link" :to="`/rooms/${room.uuid}`"> <router-link class="room-link" :to="`/rooms/${room.uuid}`">
@@ -18,35 +14,24 @@
</router-link> </router-link>
</li> </li>
</ul> </ul>
<button class="logout" @click="logout()">Logout</button>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
import { useRouter } from 'vue-router' import { initAuth } from '../stores/auth.ts'
import { initAuth, logout as authLogout } from '../stores/auth.ts'
import { fetchRooms } from '../api/rooms' import { fetchRooms } from '../api/rooms'
import type { Room } from '../types/api' import type { Room } from '../types/api'
import CreateRoomModal from '../components/CreateRoomModal.vue' import CreateRoomModal from '../components/CreateRoomModal.vue'
const showCreate = ref(false) const showCreate = ref(false)
const router = useRouter()
const rooms = ref<Room[]>([]) const rooms = ref<Room[]>([])
onMounted(async () => { onMounted(async () => {
const auth = await initAuth() const auth = await initAuth()
rooms.value = await fetchRooms(auth.uuid!) rooms.value = await fetchRooms(auth.uuid!)
}) })
function logout() {
authLogout()
router.push('/login')
}
</script> </script>
<style scoped> <style scoped>
@@ -96,13 +81,6 @@ function logout() {
background: rgba(255, 255, 255, 0.03); background: rgba(255, 255, 255, 0.03);
} }
.logout {
position: absolute;
left: 0;
top: 0;
margin: 30px;
}
.owner { .owner {
font-weight: normal; font-weight: normal;
opacity: 0.7; opacity: 0.7;