mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-26 20:43:08 +02:00
fix: bring back default like setting
Seems like due to misskey deleting reaction.vue and making it a new file called emoji-picker.vue caused the default like setting to vanish
This commit is contained in:
parent
276f4967bc
commit
8d28c16ee1
1 changed files with 39 additions and 0 deletions
|
@ -85,6 +85,17 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</div>
|
</div>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
|
|
||||||
|
<FromSlot>
|
||||||
|
<template #label>{{ i18n.ts.defaultLike }}</template>
|
||||||
|
<MkCustomEmoji v-if="like && like.startsWith(':')" style="max-height: 3em; font-size: 1.1em;" :useOriginalSize="false" :class="$style.reaction" :name="like" :normal="true" :noStyle="true"/>
|
||||||
|
<MkEmoji v-else-if="like && !like.startsWith(':')" :emoji="like" style="max-height: 3em; font-size: 1.1em;" :normal="true" :noStyle="true"/>
|
||||||
|
<span v-else-if="!like">{{ i18n.ts.notSet }}</span>
|
||||||
|
<div class="_buttons" style="padding-top: 8px;">
|
||||||
|
<MkButton rounded :small="true" inline @click="chooseNewLike"><i class="ph-smiley ph-bold ph-lg"></i> Change</MkButton>
|
||||||
|
<MkButton rounded :small="true" inline @click="resetLike"><i class="ph-arrow-clockwise ph-bold ph-lg"></i> Reset</MkButton>
|
||||||
|
</div>
|
||||||
|
</FromSlot>
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.emojiPickerDisplay }}</template>
|
<template #label>{{ i18n.ts.emojiPickerDisplay }}</template>
|
||||||
|
|
||||||
|
@ -128,6 +139,7 @@ import Sortable from 'vuedraggable';
|
||||||
import MkRadios from '@/components/MkRadios.vue';
|
import MkRadios from '@/components/MkRadios.vue';
|
||||||
import MkButton from '@/components/MkButton.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import FormSection from '@/components/form/section.vue';
|
import FormSection from '@/components/form/section.vue';
|
||||||
|
import FromSlot from '@/components/form/slot.vue';
|
||||||
import MkSwitch from '@/components/MkSwitch.vue';
|
import MkSwitch from '@/components/MkSwitch.vue';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { defaultStore } from '@/store.js';
|
import { defaultStore } from '@/store.js';
|
||||||
|
@ -136,6 +148,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
|
||||||
import { deepClone } from '@/scripts/clone.js';
|
import { deepClone } from '@/scripts/clone.js';
|
||||||
import { reactionPicker } from '@/scripts/reaction-picker.js';
|
import { reactionPicker } from '@/scripts/reaction-picker.js';
|
||||||
import { emojiPicker } from '@/scripts/emoji-picker.js';
|
import { emojiPicker } from '@/scripts/emoji-picker.js';
|
||||||
|
import { unisonReload } from '@/scripts/unison-reload.js';
|
||||||
import MkCustomEmoji from '@/components/global/MkCustomEmoji.vue';
|
import MkCustomEmoji from '@/components/global/MkCustomEmoji.vue';
|
||||||
import MkEmoji from '@/components/global/MkEmoji.vue';
|
import MkEmoji from '@/components/global/MkEmoji.vue';
|
||||||
import MkFolder from '@/components/MkFolder.vue';
|
import MkFolder from '@/components/MkFolder.vue';
|
||||||
|
@ -152,6 +165,8 @@ const removeReaction = (reaction: string, ev: MouseEvent) => remove(pinnedEmojis
|
||||||
const chooseReaction = (ev: MouseEvent) => pickEmoji(pinnedEmojisForReaction, ev);
|
const chooseReaction = (ev: MouseEvent) => pickEmoji(pinnedEmojisForReaction, ev);
|
||||||
const setDefaultReaction = () => setDefault(pinnedEmojisForReaction);
|
const setDefaultReaction = () => setDefault(pinnedEmojisForReaction);
|
||||||
|
|
||||||
|
const like = computed(defaultStore.makeGetterSetter('like'));
|
||||||
|
|
||||||
const removeEmoji = (reaction: string, ev: MouseEvent) => remove(pinnedEmojis, reaction, ev);
|
const removeEmoji = (reaction: string, ev: MouseEvent) => remove(pinnedEmojis, reaction, ev);
|
||||||
const chooseEmoji = (ev: MouseEvent) => pickEmoji(pinnedEmojis, ev);
|
const chooseEmoji = (ev: MouseEvent) => pickEmoji(pinnedEmojis, ev);
|
||||||
const setDefaultEmoji = () => setDefault(pinnedEmojis);
|
const setDefaultEmoji = () => setDefault(pinnedEmojis);
|
||||||
|
@ -220,6 +235,30 @@ async function pickEmoji(itemsRef: Ref<string[]>, ev: MouseEvent) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function reloadAsk() {
|
||||||
|
const { canceled } = await os.confirm({
|
||||||
|
type: 'info',
|
||||||
|
text: i18n.ts.reloadToApplySetting,
|
||||||
|
});
|
||||||
|
if (canceled) return;
|
||||||
|
|
||||||
|
unisonReload();
|
||||||
|
}
|
||||||
|
|
||||||
|
function chooseNewLike(ev: MouseEvent) {
|
||||||
|
os.pickEmoji(getHTMLElement(ev), {
|
||||||
|
showPinned: false,
|
||||||
|
}).then(async emoji => {
|
||||||
|
defaultStore.set('like', emoji as string);
|
||||||
|
await reloadAsk();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function resetLike() {
|
||||||
|
defaultStore.set('like', null);
|
||||||
|
await reloadAsk();
|
||||||
|
}
|
||||||
|
|
||||||
function getHTMLElement(ev: MouseEvent): HTMLElement {
|
function getHTMLElement(ev: MouseEvent): HTMLElement {
|
||||||
const target = ev.currentTarget ?? ev.target;
|
const target = ev.currentTarget ?? ev.target;
|
||||||
return target as HTMLElement;
|
return target as HTMLElement;
|
||||||
|
|
Loading…
Reference in a new issue