aboutsummaryrefslogtreecommitdiff
path: root/src/components/chat_panel/chat_panel.vue
diff options
context:
space:
mode:
authorHakaba Hitoyo <example@example.com>2018-04-22 00:48:06 +0900
committerHakaba Hitoyo <example@example.com>2018-04-22 00:48:06 +0900
commit033170212f59ee2e0757fcc0264f64a15e638f64 (patch)
treebc592c1d90070e2d6b8854556bdc2f710b670fae /src/components/chat_panel/chat_panel.vue
parentef67bd693e9ee0cb42b4ebd0b10f68e63ba04750 (diff)
parentb6eb1b1d98c839f5340edd3d3c4764952f2cb189 (diff)
merge
Diffstat (limited to 'src/components/chat_panel/chat_panel.vue')
-rw-r--r--src/components/chat_panel/chat_panel.vue112
1 files changed, 76 insertions, 36 deletions
diff --git a/src/components/chat_panel/chat_panel.vue b/src/components/chat_panel/chat_panel.vue
index ec379db5..30070d3e 100644
--- a/src/components/chat_panel/chat_panel.vue
+++ b/src/components/chat_panel/chat_panel.vue
@@ -1,26 +1,40 @@
<template>
- <div class="chat-panel">
- <div class="panel panel-default base01-background">
- <div class="panel-heading timeline-heading base02-background base04">
+ <div class="chat-panel" v-if="!this.collapsed">
+ <div class="panel panel-default">
+ <div class="panel-heading timeline-heading chat-heading" @click.stop.prevent="togglePanel">
<div class="title">
{{$t('chat.title')}}
+ <i class="icon-cancel" style="float: right;"></i>
</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 class="chat-content">
+ <router-link class="chat-name" :to="{ name: 'user-profile', params: { id: message.author.id } }">
+ {{message.author.username}}
+ </router-link>
+ <br>
+ <span class="chat-text">
+ {{message.text}}
+ </span>
+ </div>
</div>
</div>
<div class="chat-input">
- <form @submit.prevent="submit(currentMessage)">
- <input v-model="currentMessage" type="text" >
- </form>
+ <textarea @keyup.enter="submit(currentMessage)" v-model="currentMessage" class="chat-input-textarea" rows="1"></textarea>
+ </div>
+ </div>
+ </div>
+ <div v-else class="chat-panel">
+ <div class="panel panel-default">
+ <div class="panel-heading stub timeline-heading chat-heading" @click.stop.prevent="togglePanel">
+ <div class="title">
+ <i class="icon-comment-empty"></i>
+ {{$t('chat.title')}}
+ </div>
</div>
</div>
</div>
@@ -29,30 +43,56 @@
<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;
- }
- }
- }
+@import '../../_variables.scss';
+
+.floating-chat {
+ position: fixed;
+ right: 0px;
+ bottom: 0px;
+ z-index: 1000;
+}
+
+.chat-heading {
+ cursor: pointer;
+ .icon-comment-empty {
+ color: $fallback--fg;
+ color: var(--fg, $fallback--fg);
+ }
+}
+
+.chat-window {
+ width: 345px;
+ max-height: 40vh;
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+
+.chat-name {
+}
+
+.chat-message {
+ display: flex;
+ padding: 0.2em 0.5em
+}
+
+.chat-avatar {
+ img {
+ height: 24px;
+ width: 24px;
+ border-radius: $fallback--avatarRadius;
+ border-radius: var(--avatarRadius, $fallback--avatarRadius);
+ margin-right: 0.5em;
+ margin-top: 0.25em;
+ }
+}
+
+.chat-input {
+ display: flex;
+ textarea {
+ flex: 1;
+ margin: 0.6em;
+ min-height: 3.5em;
+ resize: none;
+ }
+}
</style>