workadventure/front/src/Components/Menu/GlobalMessagesSubMenu.svelte

125 lines
3.6 KiB
Svelte
Raw Normal View History

<script lang="ts">
2021-12-06 16:12:37 +01:00
import TextGlobalMessage from "./TextGlobalMessage.svelte";
import AudioGlobalMessage from "./AudioGlobalMessage.svelte";
2022-01-21 17:06:03 +01:00
import LL from "../../i18n/i18n-svelte";
let handleSendText: { sendTextMessage(broadcast: boolean): void };
let handleSendAudio: { sendAudioMessage(broadcast: boolean): Promise<void> };
let inputSendTextActive = true;
let uploadAudioActive = !inputSendTextActive;
let broadcastToWorld = false;
function activateInputText() {
inputSendTextActive = true;
uploadAudioActive = false;
}
function activateUploadAudio() {
inputSendTextActive = false;
uploadAudioActive = true;
}
2021-12-16 18:18:55 +01:00
async function send(): Promise<void> {
if (inputSendTextActive) {
2021-12-16 18:18:55 +01:00
return handleSendText.sendTextMessage(broadcastToWorld);
}
if (uploadAudioActive) {
2021-12-16 18:18:55 +01:00
return handleSendAudio.sendAudioMessage(broadcastToWorld);
}
}
</script>
<div class="global-message-main">
<div class="global-message-subOptions">
<section>
2021-12-06 16:12:37 +01:00
<button
type="button"
class="nes-btn {inputSendTextActive ? 'is-disabled' : ''}"
2022-01-21 17:06:03 +01:00
on:click|preventDefault={activateInputText}>{$LL.menu.globalMessage.text()}</button
2021-12-06 16:12:37 +01:00
>
</section>
<section>
2021-12-06 16:12:37 +01:00
<button
type="button"
class="nes-btn {uploadAudioActive ? 'is-disabled' : ''}"
2022-01-21 17:06:03 +01:00
on:click|preventDefault={activateUploadAudio}>{$LL.menu.globalMessage.audio()}</button
2021-12-06 16:12:37 +01:00
>
</section>
</div>
<div class="global-message-content">
{#if inputSendTextActive}
2021-12-06 16:12:37 +01:00
<TextGlobalMessage bind:handleSending={handleSendText} />
{/if}
{#if uploadAudioActive}
2021-12-06 16:12:37 +01:00
<AudioGlobalMessage bind:handleSending={handleSendAudio} />
{/if}
</div>
<div class="global-message-footer">
<label>
2021-12-06 16:12:37 +01:00
<input type="checkbox" class="nes-checkbox is-dark nes-pointer" bind:checked={broadcastToWorld} />
2022-01-21 17:06:03 +01:00
<span>{$LL.menu.globalMessage.warning()}</span>
</label>
<section>
2022-01-21 17:06:03 +01:00
<button class="nes-btn is-primary" on:click|preventDefault={send}>{$LL.menu.globalMessage.send()}</button>
</section>
</div>
</div>
<style lang="scss">
div.global-message-main {
2021-12-06 16:12:37 +01:00
height: calc(100% - 50px);
display: grid;
2021-12-06 16:12:37 +01:00
grid-template-rows: 15% 65% 20%;
div.global-message-subOptions {
display: grid;
grid-template-columns: 50% 50%;
margin-bottom: 20px;
section {
display: flex;
justify-content: center;
align-items: center;
}
}
2021-12-06 16:12:37 +01:00
div.global-message-footer {
margin-bottom: 10px;
2021-12-06 16:12:37 +01:00
display: grid;
grid-template-rows: 50% 50%;
2021-12-06 16:12:37 +01:00
section {
display: flex;
justify-content: center;
align-items: center;
}
2021-12-06 16:12:37 +01:00
label {
margin: 10px;
display: flex;
justify-content: center;
align-items: center;
2021-12-06 16:12:37 +01:00
span {
font-family: "Press Start 2P";
}
}
}
}
@media only screen and (max-width: 800px), only screen and (max-height: 800px) {
2021-12-06 16:12:37 +01:00
.global-message-content {
height: calc(100% - 5px);
}
.global-message-footer {
margin-bottom: 0;
label {
width: calc(100% - 10px);
}
}
}
2021-12-06 16:12:37 +01:00
</style>