logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: 3403f6a1ed5388291244487ae7eb3190d7c4353e
parent 832019b2c26f7b219db75e47060ab95251c14c26
Author: Alexander Tumin <iamtakingiteasy@eientei.org>
Date:   Fri, 17 Mar 2023 23:30:46 +0300

Allow custom emoji reactions: add option to scale reaction buttons

Diffstat:

Msrc/components/emoji_reactions/emoji_reactions.vue27++++++++++++++++++---------
Msrc/components/settings_modal/tabs/general_tab.vue9+++++++++
Msrc/i18n/en.json1+
Msrc/modules/config.js2++
Msrc/services/style_setter/style_setter.js4++--
5 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/src/components/emoji_reactions/emoji_reactions.vue b/src/components/emoji_reactions/emoji_reactions.vue @@ -12,20 +12,20 @@ @mouseenter="fetchEmojiReactionsByIfMissing()" > <span - v-if="reaction.url" class="reaction-emoji" > <img + v-if="reaction.url" :src="reaction.url" :title="reaction.name" class="reaction-emoji-content" width="1em" > + <span + v-else + class="reaction-emoji reaction-emoji-content" + >{{ reaction.name }}</span> </span> - <span - v-else - class="reaction-emoji reaction-emoji-content" - >{{ reaction.name }}</span> <span>{{ reaction.count }}</span> </button> </UserListPopover> @@ -49,6 +49,8 @@ margin-top: 0.25em; flex-wrap: wrap; + --emoji-size: calc(1.25em * var(--emojiReactionsScale, 1)); + .emoji-reaction { padding: 0 0.5em; margin-right: 0.5em; @@ -59,17 +61,24 @@ box-sizing: border-box; .reaction-emoji { - width: 1.25em; - height: 1.25em; + width: var(--emoji-size); + height: var(--emoji-size); margin-right: 0.25em; + line-height: var(--emoji-size); + display: flex; + justify-content: center; + align-items: center; } .reaction-emoji-content { - max-width: 1.25em; - max-height: 1.25em; + max-width: 100%; + max-height: 100%; width: auto; height: auto; + line-height: inherit; overflow: hidden; + font-size: calc(var(--emoji-size) * 0.8); + margin: 0; } &:focus { diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue @@ -271,6 +271,15 @@ {{ $t('settings.no_rich_text_description') }} </BooleanSetting> </li> + <li> + <IntegerSetting + v-if="user" + path="emojiReactionsScale" + expert="1" + > + {{ $t('settings.emoji_reactions_scale') }} + </IntegerSetting> + </li> <h3>{{ $t('settings.attachments') }}</h3> <li> <BooleanSetting diff --git a/src/i18n/en.json b/src/i18n/en.json @@ -467,6 +467,7 @@ "pad_emoji": "Pad emoji with spaces when adding from picker", "autocomplete_select_first": "Automatically select the first candidate when autocomplete results are available", "emoji_reactions_on_timeline": "Show emoji reactions on timeline", + "emoji_reactions_scale": "Reactions scale factor", "export_theme": "Save preset", "filtering": "Filtering", "wordfilter": "Wordfilter", diff --git a/src/modules/config.js b/src/modules/config.js @@ -97,6 +97,7 @@ export const defaultState = { sidebarColumnWidth: '25rem', contentColumnWidth: '45rem', notifsColumnWidth: '25rem', + emojiReactionsScale: 1.0, navbarColumnStretch: false, greentext: undefined, // instance default useAtIcon: undefined, // instance default @@ -185,6 +186,7 @@ const config = { case 'sidebarColumnWidth': case 'contentColumnWidth': case 'notifsColumnWidth': + case 'emojiReactionsScale': applyConfig(state) break case 'customTheme': diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js @@ -21,8 +21,8 @@ export const applyTheme = (input) => { body.classList.remove('hidden') } -const configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth }) => - ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth }) +const configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale }) => + ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale }) const defaultConfigColumns = configColumns(defaultState)