diff --git a/apps/user_status/js/dashboard.js b/apps/user_status/js/dashboard.js index 824e3f22997e82b048054f415ff8517991138984..53bf75c09ba8194802b3ef7ce4b74ce7b9e13356 100644 Binary files a/apps/user_status/js/dashboard.js and b/apps/user_status/js/dashboard.js differ diff --git a/apps/user_status/js/dashboard.js.map b/apps/user_status/js/dashboard.js.map index 279a40b3c925a75a26a3450a00c3dc138e94861a..3d156e36f7f44916e4080b06bdcf4292984ec687 100644 Binary files a/apps/user_status/js/dashboard.js.map and b/apps/user_status/js/dashboard.js.map differ diff --git a/apps/user_status/js/user-status-menu.js b/apps/user_status/js/user-status-menu.js index cf7f310f4bd21adf95d4bb06e76195f7aa261a59..ee345a65529364cf43fe9cd2b6f9aeda9ad12f8d 100644 Binary files a/apps/user_status/js/user-status-menu.js and b/apps/user_status/js/user-status-menu.js differ diff --git a/apps/user_status/js/user-status-menu.js.map b/apps/user_status/js/user-status-menu.js.map index aad1b6069cb2be0cf93b30e6da2edacc2c233aa5..41725904f27ba7c7b60c14b58b06db9918b63e49 100644 Binary files a/apps/user_status/js/user-status-menu.js.map and b/apps/user_status/js/user-status-menu.js.map differ diff --git a/apps/user_status/src/store/userStatus.js b/apps/user_status/src/store/userStatus.js index ebe2aea2047a6d1a814a3dee172886c2bbce4e0d..69ec6d8fed18093be5364d08e9679f30b7a8a82d 100644 --- a/apps/user_status/src/store/userStatus.js +++ b/apps/user_status/src/store/userStatus.js @@ -27,7 +27,9 @@ import { clearMessage, } from '../services/statusService' import { loadState } from '@nextcloud/initial-state' +import { getCurrentUser } from '@nextcloud/auth' import { getTimestampForClearAt } from '../services/clearAtService' +import { emit } from '@nextcloud/event-bus' const state = { // Status (online / away / dnd / invisible / offline) @@ -145,13 +147,21 @@ const actions = { * * @param {Object} vuex The Vuex destructuring object * @param {Function} vuex.commit The Vuex commit function + * @param {Object} vuex.state The Vuex state object * @param {Object} data The data destructuring object * @param {String} data.statusType The new status type * @returns {Promise<void>} */ - async setStatus({ commit }, { statusType }) { + async setStatus({ commit, state }, { statusType }) { await setStatus(statusType) commit('setStatus', { statusType }) + emit('user_status:status.updated', { + status: state.status, + message: state.message, + icon: state.icon, + clearAt: state.clearAt, + userId: getCurrentUser()?.uid, + }) }, /** @@ -159,13 +169,14 @@ const actions = { * * @param {Object} vuex The Vuex destructuring object * @param {Function} vuex.commit The Vuex commit function + * @param {Object} vuex.state The Vuex state object * @param {Object} vuex.rootState The Vuex root state * @param {Object} data The data destructuring object * @param {String} data.messageId The messageId * @param {Object|null} data.clearAt When to automatically clear the status * @returns {Promise<void>} */ - async setPredefinedMessage({ commit, rootState }, { messageId, clearAt }) { + async setPredefinedMessage({ commit, rootState, state }, { messageId, clearAt }) { const resolvedClearAt = getTimestampForClearAt(clearAt) await setPredefinedMessage(messageId, resolvedClearAt) @@ -173,6 +184,13 @@ const actions = { const { message, icon } = status commit('setPredefinedMessage', { messageId, clearAt: resolvedClearAt, message, icon }) + emit('user_status:status.updated', { + status: state.status, + message: state.message, + icon: state.icon, + clearAt: state.clearAt, + userId: getCurrentUser()?.uid, + }) }, /** @@ -180,17 +198,25 @@ const actions = { * * @param {Object} vuex The Vuex destructuring object * @param {Function} vuex.commit The Vuex commit function + * @param {Object} vuex.state The Vuex state object * @param {Object} data The data destructuring object * @param {String} data.message The message * @param {String} data.icon The icon * @param {Object|null} data.clearAt When to automatically clear the status * @returns {Promise<void>} */ - async setCustomMessage({ commit }, { message, icon, clearAt }) { + async setCustomMessage({ commit, state }, { message, icon, clearAt }) { const resolvedClearAt = getTimestampForClearAt(clearAt) await setCustomMessage(message, icon, resolvedClearAt) commit('setCustomMessage', { message, icon, clearAt: resolvedClearAt }) + emit('user_status:status.updated', { + status: state.status, + message: state.message, + icon: state.icon, + clearAt: state.clearAt, + userId: getCurrentUser()?.uid, + }) }, /** @@ -198,11 +224,19 @@ const actions = { * * @param {Object} vuex The Vuex destructuring object * @param {Function} vuex.commit The Vuex commit function + * @param {Object} vuex.state The Vuex state object * @returns {Promise<void>} */ - async clearMessage({ commit }) { + async clearMessage({ commit, state }) { await clearMessage() commit('clearMessage') + emit('user_status:status.updated', { + status: state.status, + message: state.message, + icon: state.icon, + clearAt: state.clearAt, + userId: getCurrentUser()?.uid, + }) }, /**