diff options
| -rw-r--r-- | CHANGELOG.md | 25 | ||||
| -rw-r--r-- | index.html | 1 | ||||
| -rw-r--r-- | src/components/chat/chat.js | 10 | ||||
| -rw-r--r-- | src/components/chat/chat_layout_utils.js | 7 | ||||
| -rw-r--r-- | src/components/post_status_form/post_status_form.js | 2 | ||||
| -rw-r--r-- | src/components/react_button/react_button.vue | 14 | ||||
| -rw-r--r-- | src/components/user_profile/user_profile.vue | 7 | ||||
| -rw-r--r-- | src/services/entity_normalizer/entity_normalizer.service.js | 2 |
8 files changed, 51 insertions, 17 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 22880e1d..91c37aa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + ## [Unreleased] +### Fixed +- Fixed the occasional bug where screen would scroll 1px when typing into a reply form +- Fixed custom emoji not working in profile field names + + +## [2.2.1] - 2020-11-11 +### Fixed +- Fixed regression in react popup alignment and overflowing + + +## [2.2.0] - 2020-11-06 ### Added - New option to optimize timeline rendering to make the site more responsive (enabled by default) - New instance option `logoLeft` to move logo to the left side in desktop nav bar @@ -13,14 +25,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Added a small red badge to the favicon when there's unread notifications ### Fixed -- Fixed chats list not updating its order when new messages come in -- Fixed chat messages sometimes getting lost when you receive a message at the same time - Fixed clicking NSFW hider through status popover - Fixed chat-view back button being hard to click - Fixed fresh chat notifications being cleared immediately while leaving the chat view and not having time to actually see the messages - Fixed multiple regressions in CSS styles - Fixed multiple issues with input fields when using CJK font as default - Fixed search field in navbar infringing into logo in some cases +- Fixed not being able to load the chat history in vertical screens when the message list doesn't take the full height of the scrollable container on the first fetch. ### Changed - Clicking immediately when timeline shifts is now blocked to prevent misclicks @@ -29,6 +40,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Logo is now clickable - Changed default logo to SVG version + +## [2.1.2] - 2020-09-17 +### Fixed +- Fixed chats list not updating its order when new messages come in +- Fixed chat messages sometimes getting lost when you receive a message at the same time + + ## [2.1.1] - 2020-09-08 ### Changed - Polls will be hidden with status content if "Collapse posts with subjects" is enabled and the post is collapsed. @@ -154,8 +172,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Ability to change user's email - About page - Added remote user redirect -- Bookmarks + ### Changed - changed the way fading effects for user profile/long statuses works, now uses css-mask instead of gradient background hacks which weren't exactly compatible with semi-transparent themes + ### Fixed - improved hotkey behavior on autocomplete popup @@ -3,7 +3,6 @@ <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no"> - <title>Pleroma</title> <!--server-generated-meta--> <link rel="icon" type="image/png" href="/favicon.png"> </head> diff --git a/src/components/chat/chat.js b/src/components/chat/chat.js index 2887afb5..e57fcb91 100644 --- a/src/components/chat/chat.js +++ b/src/components/chat/chat.js @@ -6,7 +6,7 @@ import PostStatusForm from '../post_status_form/post_status_form.vue' import ChatTitle from '../chat_title/chat_title.vue' import chatService from '../../services/chat_service/chat_service.js' import { promiseInterval } from '../../services/promise_interval/promise_interval.js' -import { getScrollPosition, getNewTopPosition, isBottomedOut, scrollableContainerHeight } from './chat_layout_utils.js' +import { getScrollPosition, getNewTopPosition, isBottomedOut, scrollableContainerHeight, isScrollable } from './chat_layout_utils.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faChevronDown, @@ -287,6 +287,14 @@ const Chat = { if (isFirstFetch) { this.updateScrollableContainerHeight() } + + // In vertical screens, the first batch of fetched messages may not always take the + // full height of the scrollable container. + // If this is the case, we want to fetch the messages until the scrollable container + // is fully populated so that the user has the ability to scroll up and load the history. + if (!isScrollable(this.$refs.scrollable) && messages.length > 0) { + this.fetchChat({ maxId: this.currentChatMessageService.minId }) + } }) }) }) diff --git a/src/components/chat/chat_layout_utils.js b/src/components/chat/chat_layout_utils.js index 609dc0c9..50a933ac 100644 --- a/src/components/chat/chat_layout_utils.js +++ b/src/components/chat/chat_layout_utils.js @@ -24,3 +24,10 @@ export const isBottomedOut = (el, offset = 0) => { export const scrollableContainerHeight = (inner, header, footer) => { return inner.offsetHeight - header.clientHeight - footer.clientHeight } + +// Returns whether or not the scrollbar is visible. +export const isScrollable = (el) => { + if (!el) return + + return el.scrollHeight > el.clientHeight +} diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index de583269..3ff4a3c8 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -531,7 +531,7 @@ const PostStatusForm = { !(isFormBiggerThanScroller && this.$refs.textarea.selectionStart !== this.$refs.textarea.value.length) const totalDelta = shouldScrollToBottom ? bottomChangeDelta : 0 - const targetScroll = currentScroll + totalDelta + const targetScroll = Math.round(currentScroll + totalDelta) if (scrollerRef === window) { scrollerRef.scroll(0, targetScroll) diff --git a/src/components/react_button/react_button.vue b/src/components/react_button/react_button.vue index 95d95b11..e508a3e9 100644 --- a/src/components/react_button/react_button.vue +++ b/src/components/react_button/react_button.vue @@ -4,6 +4,7 @@ placement="top" :offset="{ y: 5 }" class="react-button-popover" + :bound-to="{ x: 'container' }" > <div slot="content" @@ -37,12 +38,13 @@ <div class="reaction-bottom-fader" /> </div> </div> - <FAIcon - slot="trigger" - class="fa-scale-110 fa-old-padding add-reaction-button" - :icon="['far', 'smile-beam']" - :title="$t('tool_tip.add_reaction')" - /> + <span slot="trigger"> + <FAIcon + class="fa-scale-110 fa-old-padding add-reaction-button" + :icon="['far', 'smile-beam']" + :title="$t('tool_tip.add_reaction')" + /> + </span> </Popover> </template> diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue index f1f51840..745e795d 100644 --- a/src/components/user_profile/user_profile.vue +++ b/src/components/user_profile/user_profile.vue @@ -20,14 +20,13 @@ :key="index" class="user-profile-field" > + <!-- eslint-disable vue/no-v-html --> <dt :title="user.fields_text[index].name" class="user-profile-field-name" @click.prevent="linkClicked" - > - {{ field.name }} - </dt> - <!-- eslint-disable vue/no-v-html --> + v-html="field.name" + /> <dd :title="user.fields_text[index].value" class="user-profile-field-value" diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js index 9d09b8d0..a4c1a1bf 100644 --- a/src/services/entity_normalizer/entity_normalizer.service.js +++ b/src/services/entity_normalizer/entity_normalizer.service.js @@ -53,7 +53,7 @@ export const parseUser = (data) => { output.fields = data.fields output.fields_html = data.fields.map(field => { return { - name: addEmojis(field.name, data.emojis), + name: addEmojis(escape(field.name), data.emojis), value: addEmojis(field.value, data.emojis) } }) |
