Skip to content

Commit 0653731

Browse files
Anthony KinseyAnthony Kinsey
Anthony Kinsey
authored and
Anthony Kinsey
committedJan 26, 2022
feat: initial port of websocket check for online status in posts view
1 parent a8bf2bd commit 0653731

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed
 

‎src/views/Posts.vue

+26-1
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ import { BreadcrumbStore } from '@/composables/stores/breadcrumbs'
438438
import BanStore from '@/composables/stores/ban'
439439
import TrustDisplay from '@/components/trust/TrustDisplay.vue'
440440
import Editor from '@/components/layout/Editor.vue'
441+
import { isOnline } from '@/composables/services/websocket'
441442
442443
export default {
443444
name: 'Posts',
@@ -457,6 +458,7 @@ export default {
457458
return postsApi.byThread(params)
458459
.then(data => next(vm => {
459460
vm.postData.data = data
461+
vm.checkUsersOnline()
460462
BanStore.updateBanNotice(vm.postData.data.banned_from_board)
461463
vm.bannedFromBoard = vm.postData.data.banned_from_board
462464
vm.highlightPost()
@@ -476,6 +478,7 @@ export default {
476478
threadsApi.viewed(threadId)
477479
return postsApi.byThread(params).then(data => {
478480
this.postData.data = data
481+
this.checkUsersOnline()
479482
BanStore.updateBanNotice(this.postData.data.banned_from_board)
480483
this.bannedFromBoard = this.postData.data.banned_from_board
481484
this.highlightPost()
@@ -500,6 +503,10 @@ export default {
500503
}
501504
if (params.page && params.start) delete params.page
502505
return postsApi.byThread(params)
506+
.then(data => {
507+
checkUsersOnline()
508+
return data
509+
})
503510
})
504511
}
505512
const postEditDisabled = (createdAt) => {
@@ -969,6 +976,23 @@ export default {
969976
.then(processPosts)
970977
.then(data => v.postData.data = data)
971978
979+
const checkUsersOnline = () => {
980+
let uniqueUsers = {}
981+
v.postData.data.posts.forEach(post => uniqueUsers[post.user.id] = 'user')
982+
Object.keys(uniqueUsers).map(user => isOnline(user, setOnline))
983+
}
984+
985+
const setOnline = (err, data) => {
986+
if (err) console.log(err)
987+
else {
988+
v.postData.data.posts.map(post => {
989+
if (post.user.id === data.id) {
990+
post.user.online = data.online
991+
}
992+
})
993+
}
994+
}
995+
972996
/* Internal Data */
973997
const $route = useRoute()
974998
const $router = useRouter()
@@ -1060,7 +1084,8 @@ export default {
10601084
showUserControls,
10611085
watchThread,
10621086
toggleIgnoredPosts,
1063-
openMoveThreadModal
1087+
openMoveThreadModal,
1088+
checkUsersOnline
10641089
}
10651090
}
10661091
}

0 commit comments

Comments
 (0)
Please sign in to comment.