summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDorraJaouad <dorra.jaoued7@gmail.com>2024-05-03 13:11:19 +0200
committerDorraJaouad <dorra.jaoued7@gmail.com>2024-05-04 09:11:35 +0200
commit71d2dd9a74dce07ab5baad5cf811d07923db6450 (patch)
tree1c6277f1d8d4a259513e5fb59e1a9259c6cb5396
parent5769aa7c7e03d2502d785b15e4548d3bc44741d7 (diff)
fix: keep props reactive when passing it to composable
Signed-off-by: DorraJaouad <dorra.jaoued7@gmail.com>
-rw-r--r--src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue4
-rw-r--r--src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue4
-rw-r--r--src/components/Quote.vue5
-rw-r--r--src/composables/useMessageInfo.js11
4 files changed, 16 insertions, 8 deletions
diff --git a/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue b/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue
index 960c67c87..535db7157 100644
--- a/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue
+++ b/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue
@@ -250,6 +250,7 @@
<script>
import { frequently, EmojiIndex as EmojiIndexFactory } from 'emoji-mart-vue-fast'
import data from 'emoji-mart-vue-fast/data/all.json'
+import { toRefs } from 'vue'
import AccountIcon from 'vue-material-design-icons/Account.vue'
import AlarmIcon from 'vue-material-design-icons/Alarm.vue'
@@ -462,6 +463,7 @@ export default {
emits: ['delete', 'update:isActionMenuOpen', 'update:isEmojiPickerOpen', 'update:isReactionsMenuOpen', 'update:isForwarderOpen', 'show-translate-dialog', 'reply', 'edit'],
setup(props) {
+ const { token, id } = toRefs(props)
const reactionsStore = useReactionsStore()
const { messageActions } = useIntegrationsStore()
const {
@@ -472,7 +474,7 @@ export default {
isFileShareWithoutCaption,
isConversationReadOnly,
isConversationModifiable,
- } = useMessageInfo(props.token, props.id)
+ } = useMessageInfo(token, id)
return {
messageActions,
diff --git a/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue b/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue
index 87217d8bf..7990c5b4c 100644
--- a/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue
+++ b/src/components/MessagesList/MessagesGroup/Message/MessagePart/MessageBody.vue
@@ -110,6 +110,7 @@
<script>
import emojiRegex from 'emoji-regex'
+import { toRefs } from 'vue'
import AlertCircleIcon from 'vue-material-design-icons/AlertCircle.vue'
import CancelIcon from 'vue-material-design-icons/Cancel.vue'
@@ -245,10 +246,11 @@ export default {
},
setup(props) {
+ const { token, id } = toRefs(props)
const {
isEditable,
isFileShare,
- } = useMessageInfo(props.token, props.id)
+ } = useMessageInfo(token, id)
return {
isInCall: useIsInCall(),
isEditable,
diff --git a/src/components/Quote.vue b/src/components/Quote.vue
index 446edaebb..4dc7774cd 100644
--- a/src/components/Quote.vue
+++ b/src/components/Quote.vue
@@ -54,6 +54,8 @@ components.
</template>
<script>
+import { toRefs } from 'vue'
+
import Close from 'vue-material-design-icons/Close.vue'
import PencilIcon from 'vue-material-design-icons/Pencil.vue'
@@ -141,11 +143,12 @@ export default {
},
setup(props) {
+ const { token, id } = toRefs(props)
const chatExtrasStore = useChatExtrasStore()
const {
isFileShare,
isFileShareWithoutCaption,
- } = useMessageInfo(props.token, props.id)
+ } = useMessageInfo(token, id)
return {
AVATAR,
diff --git a/src/composables/useMessageInfo.js b/src/composables/useMessageInfo.js
index 906bd6881..2bcc1d707 100644
--- a/src/composables/useMessageInfo.js
+++ b/src/composables/useMessageInfo.js
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { computed } from 'vue'
+import { computed, unref, ref } from 'vue'
import { getCapabilities } from '@nextcloud/capabilities'
import moment from '@nextcloud/moment'
@@ -17,12 +17,13 @@ const canEditMessage = getCapabilities()?.spreed?.features?.includes('edit-messa
/**
* Check whether the user can edit the message or not
*
- * @param {string} token conversation token
- * @param {string} messageId message id to edit
- *
+ * @param {import('vue').Ref} tokenRef conversation token
+ * @param {import('vue').Ref} messageIdRef message id to edit
* @return {import('vue').ComputedRef<boolean>}
*/
-export function useMessageInfo(token = null, messageId = null) {
+export function useMessageInfo(tokenRef = ref(null), messageIdRef = ref(null)) {
+ const token = unref(tokenRef)
+ const messageId = unref(messageIdRef)
const store = useStore()
// Get the conversation and message