2022-04-16 04:17:48 +03:00
|
|
|
<script>
|
2022-04-26 03:01:21 +03:00
|
|
|
import { HashIcon, PlusIcon, MoreVerticalIcon } from "svelte-feather-icons";
|
2022-04-26 03:09:16 +03:00
|
|
|
import { channels, overlayStore, selectedChannel } from "../stores";
|
2022-04-23 03:38:19 +03:00
|
|
|
import UserTopBar from "./UserTopBar.svelte";
|
2022-04-16 04:17:48 +03:00
|
|
|
</script>
|
|
|
|
|
2022-04-23 03:38:19 +03:00
|
|
|
<div class="sidebar-container">
|
|
|
|
<UserTopBar />
|
|
|
|
<div class="sidebar">
|
|
|
|
{#each $channels as channel (channel.id)}
|
|
|
|
<button on:click="{ () => $selectedChannel = channel }" class="sidebar-button" class:selected={ channel.id === $selectedChannel.id }>
|
|
|
|
<div>
|
|
|
|
<HashIcon />
|
|
|
|
</div>
|
|
|
|
<span>{ channel.name }</span>
|
2022-04-26 03:01:21 +03:00
|
|
|
<button class="icon-button" on:click|stopPropagation="{ () => overlayStore.open('editChannel', { channel }) }">
|
|
|
|
<MoreVerticalIcon />
|
|
|
|
</button>
|
2022-04-23 03:38:19 +03:00
|
|
|
</button>
|
|
|
|
{/each}
|
2022-04-25 18:47:27 +03:00
|
|
|
<button on:click="{ () => overlayStore.open('createChannel') }" class="sidebar-button">
|
|
|
|
<div>
|
|
|
|
<PlusIcon />
|
|
|
|
</div>
|
|
|
|
<span>Create Channel</span>
|
|
|
|
</button>
|
2022-04-23 03:38:19 +03:00
|
|
|
</div>
|
2022-04-17 04:08:40 +03:00
|
|
|
</div>
|
|
|
|
|
2022-04-15 02:39:13 +03:00
|
|
|
<style>
|
2022-04-23 03:38:19 +03:00
|
|
|
.sidebar-container {
|
|
|
|
background-color: var(--background-color-1);
|
|
|
|
border-right: 1px solid var(--background-color-2);
|
2022-04-15 02:39:13 +03:00
|
|
|
height: 100%;
|
|
|
|
width: 255px;
|
2022-04-17 04:08:40 +03:00
|
|
|
max-width: 255px;
|
2022-04-23 03:38:19 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
.sidebar {
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
padding: var(--space-xs);
|
2022-04-16 04:17:48 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
.sidebar-button {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
2022-04-17 04:08:40 +03:00
|
|
|
justify-content: left;
|
2022-04-16 04:17:48 +03:00
|
|
|
border: none;
|
|
|
|
background-color: var(--background-color-1);
|
2022-04-23 03:38:19 +03:00
|
|
|
padding: var(--space-xs);
|
2022-04-16 04:17:48 +03:00
|
|
|
margin-bottom: var(--space-xxs);
|
|
|
|
color: currentColor;
|
|
|
|
font: inherit;
|
|
|
|
border-radius: var(--radius-md);
|
2022-04-17 04:08:40 +03:00
|
|
|
width: 100%;
|
2022-04-23 03:38:19 +03:00
|
|
|
max-height: 3.4em;
|
2022-04-16 04:17:48 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
.sidebar-button span {
|
|
|
|
margin-left: var(--space-xxs);
|
2022-04-17 04:08:40 +03:00
|
|
|
white-space: nowrap;
|
|
|
|
overflow: hidden;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sidebar-button div {
|
|
|
|
display: inline;
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
|
|
/* TODO: HACK! */
|
|
|
|
width: 24px;
|
|
|
|
height: 24px;
|
2022-04-16 04:17:48 +03:00
|
|
|
}
|
|
|
|
|
2022-04-26 03:01:21 +03:00
|
|
|
.sidebar-button .icon-button {
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sidebar-button:hover .icon-button {
|
|
|
|
visibility: visible;
|
|
|
|
}
|
|
|
|
|
2022-04-17 20:50:04 +03:00
|
|
|
.sidebar-button.selected,
|
2022-04-16 04:17:48 +03:00
|
|
|
.sidebar-button:hover {
|
|
|
|
background-color: var(--background-color-2);
|
2022-04-15 02:39:13 +03:00
|
|
|
}
|
|
|
|
</style>
|