Skip to content

Commit 486723f

Browse files
authored
Merge pull request #2588 from opencloud-eu/fix/ractive-components
fix: prevent components from being proxied in Vue's reactivity system
1 parent d1ac891 commit 486723f

30 files changed

Lines changed: 112 additions & 80 deletions

File tree

‎packages/web-app-admin-settings/src/composables/actions/groups/useGroupActionsCreateGroup.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useModals, UserAction } from '@opencloud-eu/web-pkg'
2-
import { computed } from 'vue'
2+
import { computed, markRaw } from 'vue'
33
import { useGettext } from 'vue3-gettext'
44
import CreateGroupModal from '../../../components/Groups/CreateGroupModal.vue'
55

@@ -17,7 +17,7 @@ export const useGroupActionsCreateGroup = () => {
1717
handler: () => {
1818
dispatchModal({
1919
title: $gettext('Create group'),
20-
customComponent: CreateGroupModal
20+
customComponent: markRaw(CreateGroupModal)
2121
})
2222
}
2323
}

‎packages/web-app-admin-settings/src/composables/actions/users/useUserActionsAddToGroups.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { computed, Ref, unref } from 'vue'
1+
import { computed, markRaw, Ref, unref } from 'vue'
22
import { useGettext } from 'vue3-gettext'
33
import { UserAction, useModals, useCapabilityStore, UserActionOptions } from '@opencloud-eu/web-pkg'
44
import { Group } from '@opencloud-eu/web-client/graph/generated'
@@ -20,7 +20,7 @@ export const useUserActionsAddToGroups = ({ groups }: { groups: Ref<Group[]> })
2020
userCount: resources.length.toString()
2121
}
2222
),
23-
customComponent: AddToGroupsModal,
23+
customComponent: markRaw(AddToGroupsModal),
2424
customComponentAttrs: () => ({
2525
users: resources,
2626
groups: unref(groups)

‎packages/web-app-admin-settings/src/composables/actions/users/useUserActionsCreateUser.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useModals, useCapabilityStore } from '@opencloud-eu/web-pkg'
2-
import { computed } from 'vue'
2+
import { computed, markRaw } from 'vue'
33
import { useGettext } from 'vue3-gettext'
44
import { UserAction } from '@opencloud-eu/web-pkg'
55
import CreateUserModal from '../../../components/Users/CreateUserModal.vue'
@@ -19,7 +19,7 @@ export const useUserActionsCreateUser = () => {
1919
handler: () => {
2020
dispatchModal({
2121
title: $gettext('Create user'),
22-
customComponent: CreateUserModal
22+
customComponent: markRaw(CreateUserModal)
2323
})
2424
}
2525
}

‎packages/web-app-admin-settings/src/composables/actions/users/useUserActionsEditLogin.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { computed } from 'vue'
1+
import { computed, markRaw } from 'vue'
22
import { useGettext } from 'vue3-gettext'
33
import { UserAction, useModals, useCapabilityStore, UserActionOptions } from '@opencloud-eu/web-pkg'
44
import LoginModal from '../../../components/Users/LoginModal.vue'
@@ -19,7 +19,7 @@ export const useUserActionsEditLogin = () => {
1919
userCount: resources.length.toString()
2020
}
2121
),
22-
customComponent: LoginModal,
22+
customComponent: markRaw(LoginModal),
2323
customComponentAttrs: () => ({
2424
users: resources
2525
})

‎packages/web-app-admin-settings/src/composables/actions/users/useUserActionsEditQuota.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { computed, toRaw } from 'vue'
1+
import { computed, markRaw, toRaw } from 'vue'
22
import { useGettext } from 'vue3-gettext'
33
import {
44
QuotaModal,
@@ -53,7 +53,7 @@ export const useUserActionsEditQuota = () => {
5353

5454
dispatchModal({
5555
title: getModalTitle({ resources }),
56-
customComponent: QuotaModal,
56+
customComponent: markRaw(QuotaModal),
5757
customComponentAttrs: () => ({
5858
spaces: getUserDrives({ resources }),
5959
resourceType: 'user',

‎packages/web-app-admin-settings/src/composables/actions/users/useUserActionsRemoveFromGroups.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { computed, Ref, unref } from 'vue'
1+
import { computed, markRaw, Ref, unref } from 'vue'
22
import { useGettext } from 'vue3-gettext'
33
import { UserAction, useModals, useCapabilityStore, UserActionOptions } from '@opencloud-eu/web-pkg'
44
import { Group } from '@opencloud-eu/web-client/graph/generated'
@@ -20,7 +20,7 @@ export const useUserActionsRemoveFromGroups = ({ groups }: { groups: Ref<Group[]
2020
userCount: resources.length.toString()
2121
}
2222
),
23-
customComponent: RemoveFromGroupsModal,
23+
customComponent: markRaw(RemoveFromGroupsModal),
2424
customComponentAttrs: () => ({
2525
users: resources,
2626
groups: unref(groups)

‎packages/web-app-contacts/src/extensions.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
useUserStore,
1010
Extension
1111
} from '@opencloud-eu/web-pkg'
12-
import { computed, unref } from 'vue'
12+
import { computed, markRaw, unref } from 'vue'
1313
import { storeToRefs } from 'pinia'
1414
import AddressBooksList from './components/AddressBooksList.vue'
1515
import { useGettext } from 'vue3-gettext'
@@ -48,14 +48,14 @@ export const extensions = (appInfo: ApplicationInformation) => {
4848
id: `app.${appInfo.id}.sidebar-nav.main-content`,
4949
extensionPointIds: [`app.${appInfo.id}.sidebar-nav.main`],
5050
type: 'customComponent',
51-
content: AddressBooksList
51+
content: markRaw(AddressBooksList)
5252
}
5353

5454
const bottomNavExtension: CustomComponentExtension = {
5555
id: `app.${appInfo.id}.sidebar-nav.bottom-content`,
5656
extensionPointIds: [`app.${appInfo.id}.sidebar-nav.bottom`],
5757
type: 'customComponent',
58-
content: AccountsSwitch
58+
content: markRaw(AccountsSwitch)
5959
}
6060

6161
return computed<Extension[]>(() => {

‎packages/web-app-external/src/App.vue‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import { stringify } from 'qs'
4040
import {
4141
computed,
42+
markRaw,
4243
unref,
4344
nextTick,
4445
ref,
@@ -280,7 +281,7 @@ const handlePostMessagesCollabora = async (event: MessageEvent) => {
280281
name: resource.name,
281282
format: message.Values.format
282283
}),
283-
customComponent: FileNameModal,
284+
customComponent: markRaw(FileNameModal),
284285
customComponentAttrs: () => ({
285286
space,
286287
resource,
@@ -298,7 +299,7 @@ const handlePostMessagesCollabora = async (event: MessageEvent) => {
298299
299300
dispatchModal({
300301
title: $gettext('Save »%{name}« with new name', { name: resource.name }),
301-
customComponent: FileNameModal,
302+
customComponent: markRaw(FileNameModal),
302303
customComponentAttrs: () => ({
303304
space,
304305
resource,
@@ -346,7 +347,7 @@ const handlePostMessagesCollabora = async (event: MessageEvent) => {
346347
dispatchModal({
347348
elementClass: 'file-picker-modal',
348349
title: $gettext('Insert graphic'),
349-
customComponent: FilePickerModal,
350+
customComponent: markRaw(FilePickerModal),
350351
hideActions: true,
351352
customComponentAttrs: () => ({
352353
parentFolderLink: getParentFolderLink(resource),
@@ -374,7 +375,7 @@ const handlePostMessagesCollabora = async (event: MessageEvent) => {
374375
callback === 'Action_CompareDocuments'
375376
? $gettext('Select document to compare')
376377
: $gettext('Insert file'),
377-
customComponent: FilePickerModal,
378+
customComponent: markRaw(FilePickerModal),
378379
hideActions: true,
379380
customComponentAttrs: () => ({
380381
parentFolderLink: getParentFolderLink(resource),
@@ -401,7 +402,7 @@ const handlePostMessagesCollabora = async (event: MessageEvent) => {
401402
dispatchModal({
402403
elementClass: 'file-picker-modal',
403404
title: $gettext('Pick a file to link'),
404-
customComponent: FilePickerModal,
405+
customComponent: markRaw(FilePickerModal),
405406
hideActions: true,
406407
customComponentAttrs: () => ({
407408
parentFolderLink: getParentFolderLink(resource),

‎packages/web-app-files/src/components/SideBar/Shares/Collaborators/EditDropdown.vue‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,16 @@
5151
</template>
5252

5353
<script lang="ts">
54-
import { computed, defineComponent, inject, PropType, Ref, unref, useTemplateRef } from 'vue'
54+
import {
55+
computed,
56+
defineComponent,
57+
inject,
58+
markRaw,
59+
PropType,
60+
Ref,
61+
unref,
62+
useTemplateRef
63+
} from 'vue'
5564
import { DateTime } from 'luxon'
5665
import { ContextualHelperDataListItem, uniqueId } from '@opencloud-eu/design-system/helpers'
5766
import { OcDrop, OcInfoDrop } from '@opencloud-eu/design-system/components'
@@ -237,7 +246,7 @@ export default defineComponent({
237246
this.dispatchModal({
238247
title: this.$gettext('Set expiration date'),
239248
hideActions: true,
240-
customComponent: DatePickerModal,
249+
customComponent: markRaw(DatePickerModal),
241250
customComponentAttrs: () => ({
242251
currentDate: currentDate.isValid ? currentDate : null,
243252
minDate: DateTime.now()

‎packages/web-app-files/src/components/SideBar/Shares/Collaborators/InviteCollaborator/ExpirationDatepicker.vue‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
<script lang="ts">
3232
import { DateTime } from 'luxon'
33-
import { defineComponent, customRef, PropType, unref, watch } from 'vue'
33+
import { defineComponent, customRef, markRaw, PropType, unref, watch } from 'vue'
3434
import { useModals, DatePickerModal } from '@opencloud-eu/web-pkg'
3535
import { useGettext } from 'vue3-gettext'
3636
@@ -89,7 +89,7 @@ export default defineComponent({
8989
dispatchModal({
9090
title: language.$gettext('Set expiration date'),
9191
hideActions: true,
92-
customComponent: DatePickerModal,
92+
customComponent: markRaw(DatePickerModal),
9393
customComponentAttrs: () => ({
9494
currentDate: unref(dateCurrent),
9595
minDate: DateTime.now()

0 commit comments

Comments
 (0)