added room invites to DB, and minor frontend layout changes
This commit is contained in:
31
src/App.vue
31
src/App.vue
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user