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 8, 2023
1 parent 2a5102b commit 9b1c9d0
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 53 deletions.
73 changes: 67 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 @@ -184,6 +186,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 @@ -201,6 +204,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 @@ -225,6 +240,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 @@ -276,6 +293,8 @@ export default {
CheckAll,
EmoticonOutline,
Reload,
UnfoldLess,
UnfoldMore,
},
mixins: [
Expand Down Expand Up @@ -379,6 +398,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 @@ -426,6 +459,8 @@ export default {
},
},
emits: ['toggle-combined-system-message'],
setup() {
const isInCall = useIsInCall()
return { isInCall, isTranslationAvailable }
Expand Down Expand Up @@ -613,6 +648,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 @@ -851,24 +891,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 @@ -1025,6 +1070,22 @@ export default {
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;
}
}
.message-body__main__text--markdown {
:deep(.rich-text--wrapper) {
h1 {
Expand Down
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 @@ -578,24 +577,3 @@ 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 { useCombinedSystemMessage } from '../../../composables/useCombinedSystemMessage.js'
Expand All @@ -91,10 +80,8 @@ export default {
components: {
Message,
NcButton,
UnfoldLess,
UnfoldMore,
},
inheritAttrs: false,
props: {
Expand Down Expand Up @@ -341,12 +328,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 9b1c9d0

Please sign in to comment.