Skip to content
Snippets Groups Projects
Commit 92289e54 authored by lain's avatar lain
Browse files

Move chat to sidebar.

parent 1c067f85
No related branches found
No related tags found
No related merge requests found
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
"sanitize-html": "^1.13.0", "sanitize-html": "^1.13.0",
"sass-loader": "^4.0.2", "sass-loader": "^4.0.2",
"vue": "^2.3.4", "vue": "^2.3.4",
"vue-chat-scroll": "^1.2.1",
"vue-i18n": "^7.3.2", "vue-i18n": "^7.3.2",
"vue-router": "^2.5.3", "vue-router": "^2.5.3",
"vue-template-compiler": "^2.3.4", "vue-template-compiler": "^2.3.4",
......
...@@ -2,6 +2,7 @@ import UserPanel from './components/user_panel/user_panel.vue' ...@@ -2,6 +2,7 @@ import UserPanel from './components/user_panel/user_panel.vue'
import NavPanel from './components/nav_panel/nav_panel.vue' import NavPanel from './components/nav_panel/nav_panel.vue'
import Notifications from './components/notifications/notifications.vue' import Notifications from './components/notifications/notifications.vue'
import UserFinder from './components/user_finder/user_finder.vue' import UserFinder from './components/user_finder/user_finder.vue'
import ChatPanel from './components/chat_panel/chat_panel.vue'
export default { export default {
name: 'app', name: 'app',
...@@ -9,7 +10,8 @@ export default { ...@@ -9,7 +10,8 @@ export default {
UserPanel, UserPanel,
NavPanel, NavPanel,
Notifications, Notifications,
UserFinder UserFinder,
ChatPanel
}, },
data: () => ({ data: () => ({
mobileActivePanel: 'timeline' mobileActivePanel: 'timeline'
...@@ -21,7 +23,8 @@ export default { ...@@ -21,7 +23,8 @@ export default {
}, },
logoStyle () { return { 'background-image': `url(${this.$store.state.config.logo})` } }, logoStyle () { return { 'background-image': `url(${this.$store.state.config.logo})` } },
style () { return { 'background-image': `url(${this.background})` } }, style () { return { 'background-image': `url(${this.background})` } },
sitename () { return this.$store.state.config.name } sitename () { return this.$store.state.config.name },
chat () { return this.$store.state.chat.channel }
}, },
methods: { methods: {
activatePanel (panelName) { activatePanel (panelName) {
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
<div class="sidebar"> <div class="sidebar">
<user-panel></user-panel> <user-panel></user-panel>
<nav-panel></nav-panel> <nav-panel></nav-panel>
<chat-panel v-if="currentUser && chat"></chat-panel>
<notifications v-if="currentUser"></notifications> <notifications v-if="currentUser"></notifications>
</div> </div>
</div> </div>
......
const chat = { const chatPanel = {
data () { data () {
return { return {
currentMessage: '', currentMessage: '',
...@@ -18,4 +18,4 @@ const chat = { ...@@ -18,4 +18,4 @@ const chat = {
} }
} }
export default chat export default chatPanel
<template> <template>
<div class="chat-panel panel panel-default"> <div class="chat-panel">
<div class="panel-heading timeline-heading base02-background base04"> <div class="panel panel-default base01-background">
<div class="title"> <div class="panel-heading timeline-heading base02-background base04">
{{$t('chat.title')}} <div class="title">
{{$t('chat.title')}}
</div>
</div> </div>
</div> <div class="chat-window" v-chat-scroll>
<div class="panel-body base01-background">
<div class="chat-window">
<div class="chat-message" v-for="message in messages" :key="message.id"> <div class="chat-message" v-for="message in messages" :key="message.id">
<span class="chat-avatar"> <span class="chat-avatar">
<img :src="message.author.avatar" /> <img :src="message.author.avatar" />
...@@ -26,12 +26,11 @@ ...@@ -26,12 +26,11 @@
</div> </div>
</template> </template>
<script src="./chat.js"></script> <script src="./chat_panel.js"></script>
<style lang="scss"> <style lang="scss">
.chat-window { .chat-window {
max-height: 80vh; max-height: 200px;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
} }
......
...@@ -7,11 +7,6 @@ ...@@ -7,11 +7,6 @@
{{ $t("nav.timeline") }} {{ $t("nav.timeline") }}
</router-link> </router-link>
</li> </li>
<li v-if='chat && currentUser'>
<router-link class="base00-background" to='/chat'>
{{ $t("nav.chat") }}
</router-link>
</li>
<li v-if='currentUser'> <li v-if='currentUser'>
<router-link class="base00-background" :to="{ name: 'mentions', params: { username: currentUser.screen_name } }"> <router-link class="base00-background" :to="{ name: 'mentions', params: { username: currentUser.screen_name } }">
{{ $t("nav.mentions") }} {{ $t("nav.mentions") }}
......
...@@ -12,7 +12,6 @@ import UserProfile from './components/user_profile/user_profile.vue' ...@@ -12,7 +12,6 @@ import UserProfile from './components/user_profile/user_profile.vue'
import Settings from './components/settings/settings.vue' import Settings from './components/settings/settings.vue'
import Registration from './components/registration/registration.vue' import Registration from './components/registration/registration.vue'
import UserSettings from './components/user_settings/user_settings.vue' import UserSettings from './components/user_settings/user_settings.vue'
import Chat from './components/chat/chat.vue'
import statusesModule from './modules/statuses.js' import statusesModule from './modules/statuses.js'
import usersModule from './modules/users.js' import usersModule from './modules/users.js'
...@@ -27,6 +26,8 @@ import createPersistedState from './lib/persisted_state.js' ...@@ -27,6 +26,8 @@ import createPersistedState from './lib/persisted_state.js'
import messages from './i18n/messages.js' import messages from './i18n/messages.js'
import VueChatScroll from 'vue-chat-scroll'
const currentLocale = (window.navigator.language || 'en').split('-')[0] const currentLocale = (window.navigator.language || 'en').split('-')[0]
Vue.use(Vuex) Vue.use(Vuex)
...@@ -39,6 +40,7 @@ Vue.use(VueTimeago, { ...@@ -39,6 +40,7 @@ Vue.use(VueTimeago, {
} }
}) })
Vue.use(VueI18n) Vue.use(VueI18n)
Vue.use(VueChatScroll)
const persistedStateOptions = { const persistedStateOptions = {
paths: [ paths: [
...@@ -97,8 +99,7 @@ window.fetch('/static/config.json') ...@@ -97,8 +99,7 @@ window.fetch('/static/config.json')
{ name: 'mentions', path: '/:username/mentions', component: Mentions }, { name: 'mentions', path: '/:username/mentions', component: Mentions },
{ name: 'settings', path: '/settings', component: Settings }, { name: 'settings', path: '/settings', component: Settings },
{ name: 'registration', path: '/registration', component: Registration }, { name: 'registration', path: '/registration', component: Registration },
{ name: 'user-settings', path: '/user-settings', component: UserSettings }, { name: 'user-settings', path: '/user-settings', component: UserSettings }
{ name: 'chat', path: '/chat', component: Chat }
] ]
const router = new VueRouter({ const router = new VueRouter({
......
...@@ -5696,6 +5696,12 @@ void-elements@^2.0.0: ...@@ -5696,6 +5696,12 @@ void-elements@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
vue-chat-scroll@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/vue-chat-scroll/-/vue-chat-scroll-1.2.1.tgz#54f123004b887d91f2f7fb69b9bebdf6f61ea9b4"
dependencies:
vue "^2.1.10"
vue-hot-reload-api@^2.0.1: vue-hot-reload-api@^2.0.1:
version "2.0.9" version "2.0.9"
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.0.9.tgz#2e8cfbfc8e531eea57d8c1f0bd761047c7e11b56" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.0.9.tgz#2e8cfbfc8e531eea57d8c1f0bd761047c7e11b56"
...@@ -5747,7 +5753,7 @@ vue-timeago@^3.1.2: ...@@ -5747,7 +5753,7 @@ vue-timeago@^3.1.2:
version "3.2.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/vue-timeago/-/vue-timeago-3.2.0.tgz#73fd0635de6ea4ecfbbce035b2e44035d806fba1" resolved "https://registry.yarnpkg.com/vue-timeago/-/vue-timeago-3.2.0.tgz#73fd0635de6ea4ecfbbce035b2e44035d806fba1"
vue@^2.3.4: vue@^2.1.10, vue@^2.3.4:
version "2.3.4" version "2.3.4"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.3.4.tgz#5ec3b87a191da8090bbef56b7cfabd4158038171" resolved "https://registry.yarnpkg.com/vue/-/vue-2.3.4.tgz#5ec3b87a191da8090bbef56b7cfabd4158038171"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment