Skip to content

Commit

Permalink
move toggle button to Message.vue, align styles with MessageButtonsBa…
Browse files Browse the repository at this point in the history
…r.vue

Signed-off-by: Maksim Sukharev <[email protected]>
  • Loading branch information
Antreesy committed Aug 3, 2023
1 parent 098c6da commit 81c6d9b
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 50 deletions.
74 changes: 68 additions & 6 deletions src/components/MessagesList/MessagesGroup/Message/Message.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ the main body of the message as well as a quote.
@animationend="isHighlighted = false"
@mouseover="handleMouseover"
@mouseleave="handleMouseleave">
<div :class="{'normal-message-body': !isSystemMessage && !isDeletedMessage, 'system' : isSystemMessage}"
<div :class="{'normal-message-body': !isSystemMessage && !isDeletedMessage,
'system' : isSystemMessage,
'combined-system': isCombinedSystemMessage}"
class="message-body">
<div v-if="isFirstMessage && showAuthor"
class="message-body__author"
Expand Down Expand Up @@ -182,6 +184,7 @@ the main body of the message as well as a quote.
<div class="message-body__scroll">
<MessageButtonsBar v-if="showMessageButtonsBar"
ref="messageButtonsBar"
class="message-buttons-bar"
:is-translation-available="isTranslationAvailable"
:is-action-menu-open.sync="isActionMenuOpen"
:is-emoji-picker-open.sync="isEmojiPickerOpen"
Expand All @@ -199,6 +202,18 @@ the main body of the message as well as a quote.
:sent-icon-tooltip="sentIconTooltip"
@show-translate-dialog="isTranslateDialogOpen = true"
@delete="handleDelete" />
<div v-else-if="showCombinedSystemMessageToggle"
class="message-buttons-bar">
<NcButton type="tertiary"
:aria-label="t('spreed', 'Show or collapse system messages')"
:title="t('spreed', 'Show or collapse system messages')"
@click="toggleCombinedSystemMessage">
<template #icon>
<UnfoldMore v-if="isCombinedSystemMessageCollapsed" />
<UnfoldLess v-else />
</template>
</NcButton>
</div>
</div>

<MessageTranslateDialog v-if="isTranslateDialogOpen"
Expand All @@ -223,6 +238,8 @@ import Check from 'vue-material-design-icons/Check.vue'
import CheckAll from 'vue-material-design-icons/CheckAll.vue'
import EmoticonOutline from 'vue-material-design-icons/EmoticonOutline.vue'
import Reload from 'vue-material-design-icons/Reload.vue'
import UnfoldLess from 'vue-material-design-icons/UnfoldLessHorizontal.vue'
import UnfoldMore from 'vue-material-design-icons/UnfoldMoreHorizontal.vue'
import { getCapabilities } from '@nextcloud/capabilities'
import { showError, showSuccess, showWarning, TOAST_DEFAULT_TIMEOUT } from '@nextcloud/dialogs'
Expand Down Expand Up @@ -274,6 +291,8 @@ export default {
CheckAll,
EmoticonOutline,
Reload,
UnfoldLess,
UnfoldMore,
},
mixins: [
Expand Down Expand Up @@ -377,6 +396,20 @@ export default {
type: String,
required: true,
},
/**
* Specifies if the message is a combined system message.
*/
isCombinedSystemMessage: {
type: Boolean,
default: false,
},
/**
* Specifies whether the combined system message is collapsed.
*/
isCombinedSystemMessageCollapsed: {
type: Boolean,
default: undefined,
},
/**
* The type of the message.
*/
Expand Down Expand Up @@ -417,6 +450,8 @@ export default {
},
},
emits: ['toggle-combined-system-message'],
setup() {
const isInCall = useIsInCall()
return { isInCall, isTranslationAvailable }
Expand Down Expand Up @@ -604,6 +639,11 @@ export default {
|| this.isReactionsMenuOpen || this.isForwarderOpen || this.isTranslateDialogOpen)
},
showCombinedSystemMessageToggle() {
return this.isSystemMessage && !this.isDeletedMessage && !this.isTemporary
&& this.isCombinedSystemMessage && (this.isHovered || !this.isCombinedSystemMessageCollapsed)
},
isTemporaryUpload() {
return this.isTemporary && this.messageParameters.file
},
Expand Down Expand Up @@ -842,24 +882,29 @@ export default {
return displayName
},
toggleCombinedSystemMessage() {
this.$emit('toggle-combined-system-message')
},
},
}
</script>
<style lang="scss" scoped>
@import '../../../../assets/variables';
.message:hover .normal-message-body {
border-radius: 8px;
background-color: var(--color-background-hover);
}
.message {
position: relative;
&__last {
margin-bottom: 12px;
}
&:hover .normal-message-body,
&:hover .combined-system {
border-radius: 8px;
background-color: var(--color-background-hover);
}
}
.message-body {
Expand Down Expand Up @@ -1020,4 +1065,21 @@ export default {
.reaction-details {
padding: 8px;
}
.message-buttons-bar {
display: flex;
right: 14px;
top: 8px;
position: sticky;
background-color: var(--color-main-background);
border-radius: calc(var(--default-clickable-area) / 2);
box-shadow: 0 0 4px 0 var(--color-box-shadow);
height: 44px;
z-index: 1;
& h6 {
margin-left: auto;
}
}
</style>
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@

<template>
<!-- Message Actions -->
<div v-click-outside="handleClickOutside"
class="message-buttons-bar">
<div v-click-outside="handleClickOutside">
<template v-if="!isReactionsMenuOpen">
<NcButton v-if="canReact"
type="tertiary"
Expand Down Expand Up @@ -580,22 +579,4 @@ export default {
</script>
<style lang="scss" scoped>
@import '../../../../../assets/variables';
.message-buttons-bar {
display: flex;
right: 14px;
top: 8px;
position: sticky;
background-color: var(--color-main-background);
border-radius: calc(var(--default-clickable-area) / 2);
box-shadow: 0 0 4px 0 var(--color-box-shadow);
height: 44px;
z-index: 1;
& h6 {
margin-left: auto;
}
}
</style>
29 changes: 5 additions & 24 deletions src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,11 @@
<ul v-if="messagesCollapsed.messages?.length > 1"
class="messages messages--header">
<Message v-bind="createCombinedSystemMessage(messagesCollapsed)"
is-combined-system-message
:is-combined-system-message-collapsed="messagesCollapsed.collapsed"
:next-message-id="getNextMessageId(messagesCollapsed.messages.at(-1))"
:previous-message-id="getPrevMessageId(messagesCollapsed.messages.at(0))" />
<NcButton type="tertiary"
class="messages--header__toggle"
:aria-label="t('spreed', 'Show or collapse system messages')"
@click="toggleCollapsed(messagesCollapsed)">
<template #icon>
<UnfoldMore v-if="messagesCollapsed.collapsed" />
<UnfoldLess v-else />
</template>
</NcButton>
:previous-message-id="getPrevMessageId(messagesCollapsed.messages.at(0))"
@toggle-combined-system-message="toggleCollapsed(messagesCollapsed)" />
</ul>
<ul v-show="messagesCollapsed.messages?.length === 1 || !messagesCollapsed.collapsed"
class="messages"
Expand All @@ -61,11 +55,6 @@
</template>
<script>
import UnfoldLess from 'vue-material-design-icons/UnfoldLessHorizontal.vue'
import UnfoldMore from 'vue-material-design-icons/UnfoldMoreHorizontal.vue'
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
import Message from './Message/Message.vue'
import { createCombinedSystemMessage } from '../../../utils/createCombinedSystemMessage.js'
Expand All @@ -91,10 +80,8 @@ export default {
components: {
Message,
NcButton,
UnfoldLess,
UnfoldMore,
},
inheritAttrs: false,
props: {
Expand Down Expand Up @@ -335,12 +322,6 @@ export default {
min-width: 0;
&--header {
position: relative;
& &__toggle {
position: absolute;
top: -6px;
right: 0;
}
}
&--collapsed {
border-radius: var(--border-radius-large);
Expand Down

0 comments on commit 81c6d9b

Please sign in to comment.