mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
* client * backend * tests * also save awaySince timestamp * remove console.log
28 lines
643 B
JavaScript
28 lines
643 B
JavaScript
import { updateOnlineStatus as updateOnlineStatusMutation } from '~/graphql/updateOnlineStatus.js'
|
|
|
|
let _app = null
|
|
|
|
const updateOnlineStatus = async () => {
|
|
if (!_app.store.getters['auth/isAuthenticated']) {
|
|
return
|
|
}
|
|
|
|
const status = document.hidden ? 'away' : 'online'
|
|
|
|
const client = _app.apolloProvider.defaultClient
|
|
|
|
await client.mutate({
|
|
mutation: updateOnlineStatusMutation,
|
|
variables: { status },
|
|
})
|
|
}
|
|
|
|
export default ({ app }) => {
|
|
_app = app
|
|
if (process.client) {
|
|
window.addEventListener('visibilitychange', updateOnlineStatus)
|
|
setInterval(updateOnlineStatus, 30000)
|
|
updateOnlineStatus()
|
|
}
|
|
}
|