diff options
| author | Roger Braun <roger@rogerbraun.net> | 2018-01-26 15:11:34 +0100 |
|---|---|---|
| committer | Roger Braun <roger@rogerbraun.net> | 2018-01-26 15:11:34 +0100 |
| commit | 92289e545a62bd28ea336c5d712a05445e0e20ab (patch) | |
| tree | eec01172230ef116c25f4f68c104da568c484820 /src/components/chat_panel | |
| parent | 1c067f8562a873247f8d856f61d8f1437876c077 (diff) | |
Move chat to sidebar.
Diffstat (limited to 'src/components/chat_panel')
| -rw-r--r-- | src/components/chat_panel/chat_panel.js | 21 | ||||
| -rw-r--r-- | src/components/chat_panel/chat_panel.vue | 58 |
2 files changed, 79 insertions, 0 deletions
diff --git a/src/components/chat_panel/chat_panel.js b/src/components/chat_panel/chat_panel.js new file mode 100644 index 00000000..b146c5d9 --- /dev/null +++ b/src/components/chat_panel/chat_panel.js @@ -0,0 +1,21 @@ +const chatPanel = { + data () { + return { + currentMessage: '', + channel: null + } + }, + computed: { + messages () { + return this.$store.state.chat.messages + } + }, + methods: { + submit (message) { + this.$store.state.chat.channel.push('new_msg', {text: message}, 10000) + this.currentMessage = '' + } + } +} + +export default chatPanel diff --git a/src/components/chat_panel/chat_panel.vue b/src/components/chat_panel/chat_panel.vue new file mode 100644 index 00000000..ec379db5 --- /dev/null +++ b/src/components/chat_panel/chat_panel.vue @@ -0,0 +1,58 @@ +<template> + <div class="chat-panel"> + <div class="panel panel-default base01-background"> + <div class="panel-heading timeline-heading base02-background base04"> + <div class="title"> + {{$t('chat.title')}} + </div> + </div> + <div class="chat-window" v-chat-scroll> + <div class="chat-message" v-for="message in messages" :key="message.id"> + <span class="chat-avatar"> + <img :src="message.author.avatar" /> + {{message.author.username}}: + </span> + <span class="chat-text"> + {{message.text}} + </span> + </div> + </div> + <div class="chat-input"> + <form @submit.prevent="submit(currentMessage)"> + <input v-model="currentMessage" type="text" > + </form> + </div> + </div> + </div> +</template> + +<script src="./chat_panel.js"></script> + +<style lang="scss"> + .chat-window { + max-height: 200px; + overflow-y: auto; + overflow-x: hidden; + } + .chat-message { + padding: 0.2em 0.5em + } + .chat-avatar { + img { + height: 32px; + width: 32px; + border-radius: 5px; + margin-right: 0.5em; + } + } + .chat-input { + display: flex; + form { + flex: auto; + input { + margin: 0.5em; + width: fill-available; + } + } + } +</style> |
