Compare commits

...

4 commits

Author SHA1 Message Date
Henry Jameson
5dac99d828 Merge branch 'emoji-fixes' into shigusegubu-themes3 2024-12-23 23:16:05 +02:00
Henry Jameson
0bbdea0e90 make header scrollable Y->X 2024-12-23 23:15:35 +02:00
Henry Jameson
e2bcbd51bb emoji consistency + picker improvements 2024-12-23 23:01:15 +02:00
HJ
1cc9ff70e0 Merge branch 'fixes-batch' into 'develop'
Fixes batch

Closes #1321, #1286, and #1241

See merge request pleroma/pleroma-fe!1955
2024-12-23 19:35:14 +00:00
5 changed files with 50 additions and 26 deletions

View file

@ -135,6 +135,9 @@ const EmojiPicker = {
Popover Popover
}, },
methods: { methods: {
groupScroll (e) {
e.currentTarget.scrollLeft += e.deltaY + e.deltaX
},
updateEmojiSize () { updateEmojiSize () {
const css = window.getComputedStyle(this.$refs.popover.$el) const css = window.getComputedStyle(this.$refs.popover.$el)
const emojiSize = css.getPropertyValue('--emojiSize') const emojiSize = css.getPropertyValue('--emojiSize')

View file

@ -166,24 +166,6 @@
} }
} }
&-group {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: left;
&-title {
font-size: 0.85em;
width: 100%;
margin: 0;
padding-left: 0.3em;
&.disabled {
display: none;
}
}
}
&-item { &-item {
width: var(--emoji-size); width: var(--emoji-size);
height: var(--emoji-size); height: var(--emoji-size);
@ -206,9 +188,38 @@
} }
.emoji-picker-emoji.-unicode { .emoji-picker-emoji.-unicode {
font-size: 1.6em; font-size: calc(var(--emoji-size) * 0.8);
overflow: hidden; overflow: hidden;
} }
} }
&-group {
display: grid;
grid-template-columns: repeat(var(--__amount), 1fr);
justify-items: center;
align-items: center;
justify-content: left;
grid-template-rows: repeat(1, auto);
&.first-row {
grid-template-rows: repeat(2, auto);
.emoji-item {
grid-row: 2;
}
}
&-title {
font-size: 0.85em;
grid-column: span var(--__amount);
width: 100%;
margin: 0;
padding-left: 0.3em;
&.disabled {
display: none;
}
}
}
} }
} }

View file

@ -8,7 +8,9 @@
@close="onPopoverClosed" @close="onPopoverClosed"
> >
<template #content> <template #content>
<div class="heading"> <div
class="heading"
>
<!-- <!--
Body scroll lock needs to be on every scrollable element on safari iOS. Body scroll lock needs to be on every scrollable element on safari iOS.
Here we tell it to enable scrolling for this element. Here we tell it to enable scrolling for this element.
@ -18,6 +20,7 @@
ref="header" ref="header"
v-body-scroll-lock="isInModal" v-body-scroll-lock="isInModal"
class="emoji-tabs" class="emoji-tabs"
@wheel.prevent="groupScroll"
> >
<span <span
v-for="group in filteredEmojiGroups" v-for="group in filteredEmojiGroups"
@ -106,6 +109,8 @@
> >
<div <div
class="emoji-group" class="emoji-group"
:class="{ ['first-row']: group.isFirstRow }"
:style="{ '--__amount': itemPerRow }"
> >
<h6 <h6
v-if="group.isFirstRow" v-if="group.isFirstRow"

View file

@ -1,5 +1,6 @@
import UserAvatar from '../user_avatar/user_avatar.vue' import UserAvatar from '../user_avatar/user_avatar.vue'
import UserListPopover from '../user_list_popover/user_list_popover.vue' import UserListPopover from '../user_list_popover/user_list_popover.vue'
import StillImage from 'src/components/still-image/still-image.vue'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { import {
faPlus, faPlus,
@ -19,7 +20,8 @@ const EmojiReactions = {
name: 'EmojiReactions', name: 'EmojiReactions',
components: { components: {
UserAvatar, UserAvatar,
UserListPopover UserListPopover,
StillImage
}, },
props: ['status'], props: ['status'],
data: () => ({ data: () => ({

View file

@ -18,12 +18,11 @@
<span <span
class="reaction-emoji" class="reaction-emoji"
> >
<img <StillImage
v-if="reaction.url" v-if="reaction.url"
:src="reaction.url" :src="reaction.url"
class="reaction-emoji-content" class="reaction-emoji-content"
width="1em" />
>
<span <span
v-else v-else
class="reaction-emoji reaction-emoji-content" class="reaction-emoji reaction-emoji-content"
@ -132,12 +131,16 @@
.reaction-emoji-content { .reaction-emoji-content {
max-width: 100%; max-width: 100%;
max-height: 100%; max-height: 100%;
width: auto; width: var(--emoji-size);
height: auto; height: var(--emoji-size);
line-height: inherit; line-height: inherit;
overflow: hidden; overflow: hidden;
font-size: calc(var(--emoji-size) * 0.8); font-size: calc(var(--emoji-size) * 0.8);
margin: 0; margin: 0;
img {
object-fit: contain;
}
} }
&:focus { &:focus {