refactor: move MemberList and GuildSidebar out of client.vue

This commit is contained in:
Twig 2025-08-13 20:43:50 +02:00
parent d60259074d
commit 2a43f2b678
Signed by: twig
SSH key fingerprint: SHA256:nBO+OwpTkd8LYhe38PIqdxmDvkIg9Vw2EbrRZM97dkU
4 changed files with 157 additions and 227 deletions

View file

@ -0,0 +1,44 @@
<template>
<ResizableSidebar
width="14rem" min-width="5.5rem" max-width="30rem"
border-sides="left" local-storage-name="membersListWidth">
<div id="members-container">
<div id="members-list">
<MemberEntry v-for="member of members.objects" :member="member" tabindex="0"/>
</div>
</div>
</ResizableSidebar>
</template>
<script lang="ts" setup>
import ResizableSidebar from "../UserInterface/ResizableSidebar.vue";
import MemberEntry from "./MemberEntry.vue";
import type { GuildResponse } from "~/types/interfaces";
const props = defineProps<{
guild: GuildResponse
}>();
const { fetchMembers } = useApi();
// TODO implement paging
const members = await fetchMembers(props.guild.uuid)
</script>
<style scoped>
#members-container {
background: var(--optional-member-list-background);
padding-top: .5em;
padding-bottom: .5em;
max-height: calc(100% - 1em); /* 100% - top and bottom padding */
}
#members-list {
display: flex;
flex-direction: column;
overflow-x: hidden;
overflow-y: scroll;
}
</style>