workadventure/front/src/Components/Video/ChatLayout.svelte

36 lines
1 KiB
Svelte
Raw Normal View History

2021-06-15 17:30:28 +02:00
<script lang="ts">
2021-06-21 14:43:10 +02:00
import {streamableCollectionStore} from "../../Stores/StreamableCollectionStore";
import {afterUpdate, onDestroy} from "svelte";
import {biggestAvailableAreaStore} from "../../Stores/BiggestAvailableAreaStore";
2021-06-21 14:43:10 +02:00
import MediaBox from "./MediaBox.svelte";
2021-06-15 17:30:28 +02:00
let cssClass = 'one-col';
2021-06-21 14:43:10 +02:00
const unsubscribe = streamableCollectionStore.subscribe((displayableMedias) => {
2021-06-15 17:30:28 +02:00
const nbUsers = displayableMedias.size;
if (nbUsers <= 1) {
cssClass = 'one-col';
} else if (nbUsers <= 4) {
cssClass = 'two-col';
} else if (nbUsers <= 9) {
cssClass = 'three-col';
} else {
cssClass = 'four-col';
}
});
onDestroy(() => {
unsubscribe();
});
afterUpdate(() => {
biggestAvailableAreaStore.recompute();
})
2021-06-15 17:30:28 +02:00
</script>
<div class="chat-mode {cssClass}">
2021-06-21 14:43:10 +02:00
{#each [...$streamableCollectionStore.values()] as peer (peer.uniqueId)}
<MediaBox streamable={peer}></MediaBox>
2021-06-15 17:30:28 +02:00
{/each}
</div>