feat: add client layout
This commit is contained in:
parent
1085687c00
commit
2e3a4ae10d
1 changed files with 67 additions and 139 deletions
|
@ -1,59 +1,43 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="client-root">
|
<div id="client-root">
|
||||||
<div id="home" class=".homebar-item">
|
<div id="homebar">
|
||||||
<NuxtLink href="/web">
|
<div class="homebar-item">
|
||||||
<img src="~/assets/img/house.svg" alt="Home">
|
main bar
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="left-column">
|
||||||
|
<NuxtLink id="home-button" href="/">
|
||||||
|
<Icon name="lucide:house" class="white" size="2rem" />
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
<div id="servers-list">
|
||||||
<div id="current-channel" class=".homebar-item">
|
<NuxtLink v-for="server of servers" :href="`/servers/${server.uuid}`">
|
||||||
main bar
|
<Icon name="lucide:server" class="white" size="2rem" />
|
||||||
</div>
|
</NuxtLink>
|
||||||
<div id="test" class=".homebar-item">test</div>
|
|
||||||
<div id="test2" class=".homebar-item">test2</div>
|
|
||||||
<div id="servers-list">
|
|
||||||
<NuxtLink v-for="server of servers" :href="'web' + server.url">
|
|
||||||
<img src="~/assets/img/server.svg" :alt="server.name">
|
|
||||||
</NuxtLink>
|
|
||||||
</div>
|
|
||||||
<div id="channels-list" class="main-grid-row">
|
|
||||||
<Channel v-for="channel of channels" :name="channel.name" :href="`${useRoute().path}/${channel.id}`" />
|
|
||||||
</div>
|
|
||||||
<div id="message-history" class="main-grid-row">
|
|
||||||
<Message v-for="message of messages" :img="pfp" :username="message.author.username" :text="message.text"
|
|
||||||
:timestamp="message.timestamp" format="12" />
|
|
||||||
<div id="message-box" class="main-grid-row">
|
|
||||||
<input type="text" name="message-box-input" id="message-box-input">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="members-list">
|
|
||||||
<div class="member-item" v-for="member of members">
|
|
||||||
<img src="~/assets/img/tiger-head.svg" :alt="member.displayName" width="30dvw">
|
|
||||||
<span class="member-display-name">{{ member.displayName }}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
<NuxtPage />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
||||||
import pfp from "~/assets/img/tiger-head.svg";
|
|
||||||
|
|
||||||
const servers = [
|
const servers = [
|
||||||
{
|
{
|
||||||
name: "Test",
|
name: "Test",
|
||||||
url: "/servers/284103257435"
|
uuid: "0197088b-e4e8-7033-8e6b-7ceb065e9acd"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Test",
|
name: "Test",
|
||||||
url: "/servers/284103257435"
|
uuid: "0197088b-e4e8-7033-8e6b-7ceb065e9acd"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Test",
|
name: "Test",
|
||||||
url: "/servers/284103257435"
|
uuid: "0197088b-e4e8-7033-8e6b-7ceb065e9acd"
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
//const servers = await fetchWithApi("/servers") as { uuid: string, name: string, description: string }[];
|
||||||
|
//console.log("servers:", servers);
|
||||||
const members = [
|
const members = [
|
||||||
{
|
{
|
||||||
id: "3287484395",
|
id: "3287484395",
|
||||||
|
@ -93,59 +77,13 @@ const members = [
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
const messages = [
|
function sendMessage(e: Event) {
|
||||||
{
|
e.preventDefault();
|
||||||
author: {
|
const textInput = document.getElementById("message-box-input") as HTMLInputElement;
|
||||||
id: "3287484395",
|
const text = textInput.value;
|
||||||
username: "SauceyRed",
|
console.log("MESSAGE SENT!!!");
|
||||||
avatar: "~/assets/img/tiger-head.svg"
|
console.log("text:", text);
|
||||||
},
|
}
|
||||||
text: "hello gamers!",
|
|
||||||
timestamp: 1745948498000
|
|
||||||
},
|
|
||||||
{
|
|
||||||
author: {
|
|
||||||
id: "3287484395",
|
|
||||||
username: "SauceyRed",
|
|
||||||
avatar: "~/assets/img/tiger-head.svg"
|
|
||||||
},
|
|
||||||
text: "yo what's up!",
|
|
||||||
timestamp: 1745948498000
|
|
||||||
},
|
|
||||||
{
|
|
||||||
author: {
|
|
||||||
id: "3287484395",
|
|
||||||
username: "SauceyRed",
|
|
||||||
avatar: "~/assets/img/tiger-head.svg"
|
|
||||||
},
|
|
||||||
text: "how are you guys?",
|
|
||||||
timestamp: 1745948498000
|
|
||||||
},
|
|
||||||
{
|
|
||||||
author: {
|
|
||||||
id: "3287484395",
|
|
||||||
username: "SauceyRed",
|
|
||||||
avatar: "~/assets/img/tiger-head.svg"
|
|
||||||
},
|
|
||||||
text: "im doing well",
|
|
||||||
timestamp: 1745948498000
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
const channels = [
|
|
||||||
{
|
|
||||||
name: "#super-cool-channel",
|
|
||||||
id: "8gh9548rg44"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "#super-lame-channel",
|
|
||||||
id: "hgff45387hy"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "#secret-channel",
|
|
||||||
id: "g8f734h87gt"
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -155,20 +93,24 @@ const channels = [
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 4fr 18fr 4fr;
|
grid-template-columns: 1fr 4fr 18fr 4fr;
|
||||||
grid-template-rows: 8dvh auto;
|
grid-template-rows: 4dvh auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#homebar {
|
||||||
|
grid-row: 1;
|
||||||
|
grid-column: 1 / -1;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
align-items: center;
|
||||||
|
padding-left: 5dvw;
|
||||||
|
padding-right: 5dvw;
|
||||||
|
}
|
||||||
|
|
||||||
#client-root>div:nth-child(-n+4) {
|
#client-root>div:nth-child(-n+4) {
|
||||||
border-bottom: 1px solid rgb(70, 70, 70);
|
border-bottom: 1px solid rgb(70, 70, 70);
|
||||||
}
|
}
|
||||||
|
|
||||||
#client-root div {
|
|
||||||
/* border: 1px solid cyan; */
|
|
||||||
}
|
|
||||||
|
|
||||||
#main-bar {}
|
|
||||||
|
|
||||||
#__nuxt {
|
#__nuxt {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: column;
|
flex-flow: column;
|
||||||
|
@ -180,8 +122,8 @@ const channels = [
|
||||||
}
|
}
|
||||||
|
|
||||||
#home {
|
#home {
|
||||||
grid-column: 1;
|
padding-left: .5dvw;
|
||||||
grid-row: 1;
|
padding-right: .5dvw;
|
||||||
}
|
}
|
||||||
|
|
||||||
#current-info {
|
#current-info {
|
||||||
|
@ -194,64 +136,50 @@ const channels = [
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#utilities {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
margin-bottom: 3dvh;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#left-sidebar-container,
|
|
||||||
#right-sidebar-container {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.member-item {
|
.member-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom-border {
|
#message-history,
|
||||||
border-bottom: 1px solid rgb(70, 70, 70);
|
#members-list {
|
||||||
|
padding-top: 3dvh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-border {
|
#message-history {
|
||||||
border-left: 1px solid rgb(70, 70, 70);
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding-left: 3dvw;
|
||||||
|
padding-right: 3dvw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-border {
|
#left-column {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 2dvh;
|
||||||
|
padding-left: .5dvw;
|
||||||
|
padding-right: .5dvw;
|
||||||
|
border-right: 1px solid rgb(70, 70, 70);
|
||||||
|
padding-top: 1.5dvh;
|
||||||
|
}
|
||||||
|
|
||||||
|
#middle-left-column {
|
||||||
|
padding-left: 1dvw;
|
||||||
|
padding-right: 1dvw;
|
||||||
border-right: 1px solid rgb(70, 70, 70);
|
border-right: 1px solid rgb(70, 70, 70);
|
||||||
}
|
}
|
||||||
|
|
||||||
#main-content {
|
#home-button {
|
||||||
display: grid;
|
border-bottom: 1px solid rgb(70, 70, 70);
|
||||||
grid-template-rows: 1fr 15fr 30fr 2fr;
|
padding-bottom: 1dvh;
|
||||||
text-align: center;
|
|
||||||
margin-left: 1dvw;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#message-box {
|
#servers-list {
|
||||||
border: 1px solid rgb(70, 70, 70);
|
display: flex;
|
||||||
width: 100%;
|
flex-direction: column;
|
||||||
margin-bottom: 1dvh;
|
gap: 1dvh;
|
||||||
}
|
}
|
||||||
|
|
||||||
#message-box-input {
|
|
||||||
width: 80%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-grid-row {
|
|
||||||
/* border: 1px solid cyan; */
|
|
||||||
}
|
|
||||||
|
|
||||||
#main-bar {}
|
|
||||||
|
|
||||||
#servers-list,
|
|
||||||
#channels-list,
|
|
||||||
#message-history,
|
|
||||||
#members-list {
|
|
||||||
margin-top: 3dvh;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
Loading…
Add table
Add a link
Reference in a new issue