Compare commits
2 commits
7f3735502f
...
92ce055dd7
Author | SHA1 | Date | |
---|---|---|---|
|
92ce055dd7 | ||
|
8539e4ab7c |
8 changed files with 13 additions and 29 deletions
|
@ -1,5 +0,0 @@
|
||||||
<script>
|
|
||||||
import Main from "./Main.svelte";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<Main />
|
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { Edit2Icon, HashIcon, MenuIcon } from "svelte-feather-icons";
|
import { HashIcon, MenuIcon } from "svelte-feather-icons";
|
||||||
import { overlayStore, selectedChannel, showSidebar } from "../stores";
|
import { overlayStore, showSidebar } from "../stores";
|
||||||
|
|
||||||
export let channel;
|
export let channel;
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
<script>
|
<script>
|
||||||
import { showChannelView } from "../stores";
|
|
||||||
import ChannelTopBar from "./ChannelTopBar.svelte";
|
import ChannelTopBar from "./ChannelTopBar.svelte";
|
||||||
import MessageInput from "./MessageInput.svelte";
|
import MessageInput from "./MessageInput.svelte";
|
||||||
import Messages from "./Messages.svelte";
|
import Messages from "./Messages.svelte";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { afterUpdate, beforeUpdate, onMount } from "svelte";
|
import { afterUpdate } from "svelte";
|
||||||
import { messagesStoreProvider, showSidebar, smallViewport } from "../stores.js";
|
import { messagesStoreProvider, smallViewport } from "../stores.js";
|
||||||
import Message from "./Message.svelte";
|
import Message from "./Message.svelte";
|
||||||
|
|
||||||
export let channelId;
|
export let channelId;
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
// janky code to hide the channel view during animation
|
// janky code to hide the channel view during animation
|
||||||
// this will make a smooth sidebar animation on smaller viewports (such as a phone, where you switch between sidebar being active)
|
// this will make a smooth sidebar animation on smaller viewports (such as a phone, where you switch between sidebar being active)
|
||||||
|
|
||||||
const scheduleSelectChannel = (channel) => {
|
const scheduleSelectChannel = (channel) => {
|
||||||
if ($smallViewport) {
|
if ($smallViewport) {
|
||||||
$showChannelView = false;
|
$showChannelView = false;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import App from './components/App.svelte';
|
import Main from './components/Main.svelte';
|
||||||
import gateway from './gateway';
|
import gateway from './gateway';
|
||||||
import { getAuthToken, initStorageDefaults } from './storage';
|
import { getAuthToken, initStorageDefaults } from './storage';
|
||||||
import logging from "./logging";
|
import logging from "./logging";
|
||||||
|
@ -20,7 +20,7 @@ if (loadingElement) {
|
||||||
loadingElement.parentElement.removeChild(loadingElement);
|
loadingElement.parentElement.removeChild(loadingElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
const app = new App({
|
const app = new Main({
|
||||||
target: document.body
|
target: document.body
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -34,11 +34,6 @@ class Store {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const selectedChannel = new Store({ id: -1, name: "none", creator_id: -1 });
|
|
||||||
export const showSidebar = new Store(false);
|
|
||||||
export const showChannelView = new Store(true);
|
|
||||||
export const smallViewport = new Store(false);
|
|
||||||
|
|
||||||
class ChannelsStore extends Store {
|
class ChannelsStore extends Store {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(gateway.channels || []);
|
super(gateway.channels || []);
|
||||||
|
@ -74,11 +69,7 @@ class ChannelsStore extends Store {
|
||||||
});
|
});
|
||||||
gateway.subscribe(GatewayEventType.MessageCreate, ({ channel_id }) => {
|
gateway.subscribe(GatewayEventType.MessageCreate, ({ channel_id }) => {
|
||||||
const index = this.value.findIndex(e => e.id === channel_id);
|
const index = this.value.findIndex(e => e.id === channel_id);
|
||||||
if (index === -1)
|
if (index === -1 || !this.value[index] || selectedChannel.value.id === channel_id)
|
||||||
return;
|
|
||||||
if (!this.value[index])
|
|
||||||
return;
|
|
||||||
if (selectedChannel.value.id === channel_id)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this.value[index]._hasUnreads = true;
|
this.value[index]._hasUnreads = true;
|
||||||
|
@ -86,11 +77,7 @@ class ChannelsStore extends Store {
|
||||||
});
|
});
|
||||||
selectedChannel.subscribe(({ id }) => {
|
selectedChannel.subscribe(({ id }) => {
|
||||||
const index = this.value.findIndex(e => e.id === id);
|
const index = this.value.findIndex(e => e.id === id);
|
||||||
if (index === -1)
|
if (index === -1 || !this.value[index] || !this.value[index]._hasUnreads)
|
||||||
return;
|
|
||||||
if (!this.value[index])
|
|
||||||
return;
|
|
||||||
if (!this.value[index]._hasUnreads)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this.value[index]._hasUnreads = false;
|
this.value[index]._hasUnreads = false;
|
||||||
|
@ -298,6 +285,10 @@ class OverlayStore extends Store {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const selectedChannel = new Store({ id: -1, name: "none", creator_id: -1 });
|
||||||
|
export const showSidebar = new Store(false);
|
||||||
|
export const showChannelView = new Store(true);
|
||||||
|
export const smallViewport = new Store(false);
|
||||||
export const channels = new ChannelsStore();
|
export const channels = new ChannelsStore();
|
||||||
export const gatewayStatus = new GatewayStatusStore();
|
export const gatewayStatus = new GatewayStatusStore();
|
||||||
export const messagesStoreProvider = new MessagesStoreProvider();
|
export const messagesStoreProvider = new MessagesStoreProvider();
|
||||||
|
|
Loading…
Reference in a new issue