Merge branch 'emoji-fixes' into shigusegubu-themes3

This commit is contained in:
Henry Jameson 2024-12-23 23:16:05 +02:00
commit 5dac99d828
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 {