diff options
| author | Shpuld Shpuldson <shp@cock.li> | 2021-08-08 16:14:22 +0300 |
|---|---|---|
| committer | Shpuld Shpuldson <shp@cock.li> | 2021-08-08 16:14:22 +0300 |
| commit | cc170aa3ecffa75004760fc6d02bd87373132f7d (patch) | |
| tree | 7d187ff11219399318f7482e0bc032cb20d025b9 /src/components/shout_panel/shout_panel.js | |
| parent | c3fcbbd918ddef4e3f574a464fd10f4899bb2dce (diff) | |
| parent | 425919a0d292b79869ebefd2a4d52ed4db45d319 (diff) | |
Update master with 2.4.0
Diffstat (limited to 'src/components/shout_panel/shout_panel.js')
| -rw-r--r-- | src/components/shout_panel/shout_panel.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/components/shout_panel/shout_panel.js b/src/components/shout_panel/shout_panel.js new file mode 100644 index 00000000..a6168971 --- /dev/null +++ b/src/components/shout_panel/shout_panel.js @@ -0,0 +1,53 @@ +import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator' +import { library } from '@fortawesome/fontawesome-svg-core' +import { + faBullhorn, + faTimes +} from '@fortawesome/free-solid-svg-icons' + +library.add( + faBullhorn, + faTimes +) + +const shoutPanel = { + props: [ 'floating' ], + data () { + return { + currentMessage: '', + channel: null, + collapsed: true + } + }, + computed: { + messages () { + return this.$store.state.shout.messages + } + }, + methods: { + submit (message) { + this.$store.state.shout.channel.push('new_msg', { text: message }, 10000) + this.currentMessage = '' + }, + togglePanel () { + this.collapsed = !this.collapsed + }, + userProfileLink (user) { + return generateProfileLink(user.id, user.username, this.$store.state.instance.restrictedNicknames) + } + }, + watch: { + messages (newVal) { + const scrollEl = this.$el.querySelector('.chat-window') + if (!scrollEl) return + if (scrollEl.scrollTop + scrollEl.offsetHeight + 20 > scrollEl.scrollHeight) { + this.$nextTick(() => { + if (!scrollEl) return + scrollEl.scrollTop = scrollEl.scrollHeight - scrollEl.offsetHeight + }) + } + } + } +} + +export default shoutPanel |
