Skip to content

Commit db91e82

Browse files
authored
Merge pull request #14237 from nextcloud/fix/noid/dragover
2 parents 456277e + 35c0da1 commit db91e82

File tree

1 file changed

+39
-33
lines changed

1 file changed

+39
-33
lines changed

src/components/ChatView.vue

+39-33
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,24 @@
99
@dragleave.prevent="handleDragLeave"
1010
@drop.prevent="handleDropFiles">
1111
<GuestWelcomeWindow v-if="isGuestWithoutDisplayName" :token="token" />
12-
<TransitionWrapper name="slide-up" mode="out-in">
13-
<div v-show="isDraggingOver"
14-
class="dragover">
15-
<div class="drop-hint">
16-
<div class="drop-hint__icon"
17-
:class="{
18-
'icon-upload' : !isGuest && !isReadOnly,
19-
'icon-user' : isGuest,
20-
'icon-error' : isReadOnly}" />
21-
<h2 class="drop-hint__text">
22-
{{ dropHintText }}
23-
</h2>
24-
</div>
25-
</div>
26-
</TransitionWrapper>
27-
<MessagesList role="region"
28-
:aria-label="t('spreed', 'Conversation messages')"
29-
:token="token"
30-
:is-chat-scrolled-to-bottom.sync="isChatScrolledToBottom"
31-
:is-visible="isVisible" />
12+
<div class="messages-list-dragover-wrapper">
13+
<TransitionWrapper name="slide-up" mode="out-in">
14+
<NcEmptyContent v-show="isDraggingOver"
15+
:name="dropHintText"
16+
class="dragover">
17+
<template #icon>
18+
<IconTrayArrowUp v-if="!isGuest && !isReadOnly" />
19+
<IconAccount v-else-if="isGuest" />
20+
<IconAlertOctagon v-else-if="isReadOnly" />
21+
</template>
22+
</NcEmptyContent>
23+
</TransitionWrapper>
24+
<MessagesList role="region"
25+
:aria-label="t('spreed', 'Conversation messages')"
26+
:token="token"
27+
:is-chat-scrolled-to-bottom.sync="isChatScrolledToBottom"
28+
:is-visible="isVisible" />
29+
</div>
3230

3331
<div class="scroll-to-bottom">
3432
<TransitionWrapper name="fade">
@@ -39,7 +37,7 @@
3937
class="scroll-to-bottom__button"
4038
@click="scrollToBottom">
4139
<template #icon>
42-
<ChevronDoubleDown :size="20" />
40+
<IconChevronDoubleDown :size="20" />
4341
</template>
4442
</NcButton>
4543
</TransitionWrapper>
@@ -57,11 +55,15 @@
5755
</template>
5856

5957
<script>
60-
import ChevronDoubleDown from 'vue-material-design-icons/ChevronDoubleDown.vue'
58+
import IconAccount from 'vue-material-design-icons/Account.vue'
59+
import IconAlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'
60+
import IconChevronDoubleDown from 'vue-material-design-icons/ChevronDoubleDown.vue'
61+
import IconTrayArrowUp from 'vue-material-design-icons/TrayArrowUp.vue'
6162

6263
import { t } from '@nextcloud/l10n'
6364

6465
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
66+
import NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'
6567

6668
import GuestWelcomeWindow from './GuestWelcomeWindow.vue'
6769
import MessagesList from './MessagesList/MessagesList.vue'
@@ -80,12 +82,17 @@ export default {
8082

8183
components: {
8284
NcButton,
83-
ChevronDoubleDown,
85+
NcEmptyContent,
8486
MessagesList,
8587
NewMessage,
8688
NewMessageUploadEditor,
8789
TransitionWrapper,
8890
GuestWelcomeWindow,
91+
// icons
92+
IconAccount,
93+
IconAlertOctagon,
94+
IconChevronDoubleDown,
95+
IconTrayArrowUp,
8996
},
9097

9198
props: {
@@ -216,9 +223,17 @@ export default {
216223
min-height: 0;
217224
}
218225

226+
.messages-list-dragover-wrapper {
227+
position: relative;
228+
width: 100%;
229+
height: 100%;
230+
display: flex;
231+
min-height: 0;
232+
}
233+
219234
.dragover {
220235
position: absolute;
221-
inset: 10%;
236+
inset: 5%;
222237
background: var(--color-primary-element-light);
223238
z-index: 11;
224239
display: flex;
@@ -228,15 +243,6 @@ export default {
228243
pointer-events: none;
229244
}
230245

231-
.drop-hint {
232-
margin: auto;
233-
&__icon {
234-
background-size: 48px;
235-
height: 48px;
236-
margin-bottom: 16px;
237-
}
238-
}
239-
240246
.scroll-to-bottom {
241247
position: relative;
242248
height: 0;

0 commit comments

Comments
 (0)