workadventure/front/src/Components/Chat/ChatMessageForm.svelte

71 lines
1.8 KiB
Svelte
Raw Normal View History

<script lang="ts">
2022-01-21 17:06:03 +01:00
import LL from "../../i18n/i18n-svelte";
2021-12-06 16:12:37 +01:00
import { chatMessagesStore, chatInputFocusStore } from "../../Stores/ChatStore";
export const handleForm = {
blur() {
inputElement.blur();
2021-12-06 16:12:37 +01:00
},
};
let inputElement: HTMLElement;
2021-12-06 16:12:37 +01:00
let newMessageText = "";
function onFocus() {
chatInputFocusStore.set(true);
}
function onBlur() {
chatInputFocusStore.set(false);
}
function saveMessage() {
if (!newMessageText) return;
chatMessagesStore.addPersonnalMessage(newMessageText);
2021-12-06 16:12:37 +01:00
newMessageText = "";
}
</script>
<form on:submit|preventDefault={saveMessage}>
2021-12-06 16:12:37 +01:00
<input
type="text"
bind:value={newMessageText}
2022-01-21 17:06:03 +01:00
placeholder={$LL.chat.enter()}
2021-12-06 16:12:37 +01:00
on:focus={onFocus}
on:blur={onBlur}
bind:this={inputElement}
/>
<button type="submit">
2021-12-06 16:12:37 +01:00
<img src="/static/images/send.png" alt="Send" width="20" />
</button>
</form>
<style lang="scss">
form {
display: flex;
padding-left: 4px;
padding-right: 4px;
2021-12-06 16:12:37 +01:00
input {
2021-12-06 16:12:37 +01:00
flex: auto;
background-color: #254560;
color: white;
border-bottom-left-radius: 4px;
border-top-left-radius: 4px;
border: none;
font-size: 22px;
font-family: Lato;
padding-left: 6px;
min-width: 0; //Needed so that the input doesn't overflow the container in firefox
outline: none;
}
2021-12-06 16:12:37 +01:00
button {
2021-12-06 16:12:37 +01:00
background-color: #254560;
border-bottom-right-radius: 4px;
border-top-right-radius: 4px;
border: none;
border-left: solid white 1px;
font-size: 16px;
}
}
2021-12-06 16:12:37 +01:00
</style>