Skip to content

Commit a1d9fd3

Browse files
authored
Merge pull request #12989 from nextcloud/backport/12970/stable30
[stable30] fix: migrate NcModal to NcDialog
2 parents 61454d5 + b3ae73a commit a1d9fd3

File tree

6 files changed

+116
-145
lines changed

6 files changed

+116
-145
lines changed

src/components/BreakoutRoomsEditor/SendMessageDialog.vue

+22-26
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,40 @@
44
-->
55

66
<template>
7-
<NcModal ref="modal"
7+
<NcDialog ref="modal"
8+
:name="dialogTitle"
89
:container="container"
9-
v-on="$listeners">
10-
<div class="send-message-dialog">
11-
<h2 class="send-message-dialog__title">
12-
{{ dialogTitle }}
13-
</h2>
14-
<NewMessage v-if="modalContainerId"
15-
:key="modalContainerId"
16-
ref="newMessage"
17-
role="region"
18-
:token="token"
19-
:container="modalContainerId"
20-
:aria-label="t('spreed', 'Post message')"
21-
:broadcast="broadcast"
22-
@sent="handleMessageSent"
23-
@failure="handleMessageFailure" />
24-
</div>
25-
</NcModal>
10+
close-on-click-outside
11+
size="normal"
12+
v-on="$listeners"
13+
@update:open="$emit('close')">
14+
<NewMessage v-if="modalContainerId"
15+
:key="modalContainerId"
16+
ref="newMessage"
17+
role="region"
18+
class="send-message-dialog"
19+
:token="token"
20+
:container="modalContainerId"
21+
:aria-label="t('spreed', 'Post message')"
22+
:broadcast="broadcast"
23+
@sent="handleMessageSent"
24+
@failure="handleMessageFailure" />
25+
</NcDialog>
2626
</template>
2727

2828
<script>
2929
import { showError, showSuccess } from '@nextcloud/dialogs'
3030
import { t } from '@nextcloud/l10n'
3131

32-
import NcModal from '@nextcloud/vue/dist/Components/NcModal.js'
32+
import NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'
3333

3434
import NewMessage from '../NewMessage/NewMessage.vue'
3535

3636
export default {
3737
name: 'SendMessageDialog',
3838

3939
components: {
40-
NcModal,
40+
NcDialog,
4141
NewMessage,
4242
},
4343

@@ -91,7 +91,7 @@ export default {
9191

9292
mounted() {
9393
// Postpone render of NewMessage until modal container is mounted
94-
this.modalContainerId = `#modal-description-${this.$refs.modal.randId}`
94+
this.modalContainerId = `#modal-description-${this.$refs.modal.navigationId}`
9595
this.$nextTick(() => {
9696
this.$refs.newMessage.focusInput()
9797
})
@@ -117,10 +117,6 @@ export default {
117117

118118
<style lang="scss" scoped>
119119
.send-message-dialog {
120-
padding: 20px 20px 8px;
121-
122-
&__title {
123-
margin-bottom: 8px;
124-
}
120+
padding-bottom: calc(3 * var(--default-grid-baseline));
125121
}
126122
</style>

src/components/ConversationSettings/BanSettings/BanSettings.vue

+9-15
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@
1515
{{ t('spreed', 'Manage bans') }}
1616
</NcButton>
1717

18-
<NcModal v-if="modal"
19-
container=".conversation-ban__settings"
20-
@close="modal = false">
18+
<NcDialog :name="t('spreed', 'Banned users')"
19+
:open.sync="modal"
20+
size="normal"
21+
close-on-click-outside
22+
container=".conversation-ban__settings">
2123
<div class="conversation-ban__content">
22-
<h2 class="conversation-ban__title">
23-
{{ t('spreed', 'Banned users') }}
24-
</h2>
25-
2624
<ul v-if="banList.length" class="conversation-ban__list">
2725
<BannedItem v-for="ban in banList"
2826
:key="ban.id"
@@ -41,7 +39,7 @@
4139
</template>
4240
</NcEmptyContent>
4341
</div>
44-
</NcModal>
42+
</NcDialog>
4543
</div>
4644
</template>
4745

@@ -51,9 +49,9 @@ import AccountCancel from 'vue-material-design-icons/AccountCancel.vue'
5149
import { t } from '@nextcloud/l10n'
5250

5351
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
52+
import NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'
5453
import NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'
5554
import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'
56-
import NcModal from '@nextcloud/vue/dist/Components/NcModal.js'
5755

5856
import BannedItem from './BannedItem.vue'
5957

@@ -64,9 +62,9 @@ export default {
6462

6563
components: {
6664
NcButton,
65+
NcDialog,
6766
NcEmptyContent,
6867
NcLoadingIcon,
69-
NcModal,
7068
BannedItem,
7169
// Icons
7270
AccountCancel,
@@ -116,11 +114,7 @@ export default {
116114
<style lang="scss" scoped>
117115
.conversation-ban {
118116
&__content {
119-
min-height: 250px;
120-
}
121-
122-
&__title {
123-
text-align: center;
117+
min-height: 200px;
124118
}
125119

126120
&__list {

src/components/LeftSidebar/InvitationHandler.vue

+17-22
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@
44
-->
55

66
<template>
7-
<NcModal v-if="modal"
7+
<NcDialog :open.sync="modal"
8+
:name="t('spreed', 'Pending invitations')"
89
:container="container"
9-
@close="closeModal">
10+
size="normal"
11+
close-on-click-outside>
1012
<div class="inbox">
11-
<h2 class="inbox__heading">
12-
{{ t('spreed', 'Pending invitations') }}
13-
</h2>
1413
<p class="inbox__disclaimer">
1514
{{ t('spreed', 'Join conversations from remote Nextcloud servers') }}
1615
</p>
@@ -62,20 +61,22 @@
6261
</template>
6362
</NcEmptyContent>
6463
</div>
65-
</NcModal>
64+
</NcDialog>
6665
</template>
6766

6867
<script>
68+
import { ref } from 'vue'
69+
6970
import CancelIcon from 'vue-material-design-icons/Cancel.vue'
7071
import CheckIcon from 'vue-material-design-icons/Check.vue'
7172
import WebIcon from 'vue-material-design-icons/Web.vue'
7273

7374
import { t } from '@nextcloud/l10n'
7475

7576
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
77+
import NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'
7678
import NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'
7779
import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'
78-
import NcModal from '@nextcloud/vue/dist/Components/NcModal.js'
7980
import NcRichText from '@nextcloud/vue/dist/Components/NcRichText.js'
8081

8182
import ConversationIcon from '../ConversationIcon.vue'
@@ -88,28 +89,26 @@ export default {
8889
name: 'InvitationHandler',
8990

9091
components: {
91-
NcEmptyContent,
92-
NcRichText,
9392
ConversationIcon,
9493
NcButton,
94+
NcDialog,
95+
NcEmptyContent,
9596
NcLoadingIcon,
96-
NcModal,
97+
NcRichText,
9798
// Icons
9899
CancelIcon,
99100
CheckIcon,
100101
WebIcon,
101102
},
102103

103104
setup() {
104-
return {
105-
federationStore: useFederationStore(),
106-
}
107-
},
105+
const modal = ref(false)
106+
const isLoading = ref(true)
108107

109-
data() {
110108
return {
111-
modal: false,
112-
isLoading: true,
109+
federationStore: useFederationStore(),
110+
modal,
111+
isLoading,
113112
}
114113
},
115114

@@ -188,11 +187,7 @@ export default {
188187
width: 100%;
189188
height: 100%;
190189
max-height: 700px;
191-
padding: 20px;
192-
193-
&__heading {
194-
margin-bottom: 4px;
195-
}
190+
padding-bottom: calc(3 * var(--default-grid-baseline));
196191

197192
&__disclaimer {
198193
margin-bottom: 12px;

src/components/LeftSidebar/LeftSidebar.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
<CallPhoneDialog ref="callPhoneDialog" />
113113

114114
<!-- New Pending Invitations dialog -->
115-
<InvitationHandler v-if="isFederationEnabled" ref="invitationHandler" />
115+
<InvitationHandler v-if="pendingInvitationsCount" ref="invitationHandler" />
116116
</div>
117117
<NcAppNavigationItem v-if="pendingInvitationsCount"
118118
class="invitation-button"

src/components/MessagesList/MessagesGroup/Message/MessagePart/ReactionsList.vue

+11-11
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@
44
-->
55

66
<template>
7-
<NcModal size="small"
7+
<NcDialog :name="t('spreed', 'Reactions')"
88
:container="container"
9-
@close="closeModal">
9+
close-on-click-outside
10+
@update:open="closeModal">
1011
<div class="reactions__modal">
11-
<h2>
12-
{{ t('spreed', 'Reactions') }}
13-
</h2>
1412
<template v-if="Object.keys(reactionsOverview).length > 0">
1513
<div class="reactions-list__navigation">
1614
<NcButton v-for="reaction in reactionsMenu"
@@ -44,7 +42,7 @@
4442
</template>
4543
<NcLoadingIcon v-else :size="64" />
4644
</div>
47-
</NcModal>
45+
</NcDialog>
4846
</template>
4947

5048
<script>
@@ -53,8 +51,8 @@ import HeartOutlineIcon from 'vue-material-design-icons/HeartOutline.vue'
5351
import { t } from '@nextcloud/l10n'
5452

5553
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
54+
import NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'
5655
import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'
57-
import NcModal from '@nextcloud/vue/dist/Components/NcModal.js'
5856

5957
import AvatarWrapper from '../../../../AvatarWrapper/AvatarWrapper.vue'
6058

@@ -67,9 +65,9 @@ export default {
6765

6866
components: {
6967
AvatarWrapper,
70-
NcModal,
71-
NcLoadingIcon,
7268
NcButton,
69+
NcDialog,
70+
NcLoadingIcon,
7371
HeartOutlineIcon,
7472
},
7573

@@ -172,17 +170,19 @@ export default {
172170
}
173171
</script>
174172
<style lang="scss" scoped>
175-
.reactions__modal{
173+
.reactions__modal {
176174
min-height: 450px;
177-
padding: 18px;
175+
padding-bottom: calc(3 * var(--default-grid-baseline));
178176
}
177+
179178
.reactions-list__navigation {
180179
display: flex;
181180
gap: 2px;
182181
flex-wrap: wrap;
183182

184183
:deep(.button-vue) {
185184
border-radius: var(--border-radius-large);
185+
186186
&.active {
187187
background-color: var(--color-primary-element-light);
188188
}

0 commit comments

Comments
 (0)