refactor(frontend): 非推奨となったReactivity Transformを使わないように (#12539)
* refactor(frontend): 非推奨となったReactivity Transformを使わないように * refactor: 不要な括弧を除去 * fix: 不要なアノテーションを除去 * fix: Refの配列をrefしている部分の対応 * refactor: 不要な括弧を除去 * fix: lint * refactor: Ref、ShallowRef、ComputedRefの変数の宣言をletからconstに置換 * fix: type error * chore: drop reactivity transform from eslint configuration * refactor: remove unnecessary import * fix: 対応漏れ
This commit is contained in:
@@ -60,7 +60,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { defineAsyncComponent, watch } from 'vue';
|
||||
import { defineAsyncComponent, watch, ref, computed } from 'vue';
|
||||
import Sortable from 'vuedraggable';
|
||||
import MkRadios from '@/components/MkRadios.vue';
|
||||
import FromSlot from '@/components/form/slot.vue';
|
||||
@@ -73,22 +73,22 @@ import { i18n } from '@/i18n.js';
|
||||
import { definePageMetadata } from '@/scripts/page-metadata.js';
|
||||
import { deepClone } from '@/scripts/clone.js';
|
||||
|
||||
let reactions = $ref(deepClone(defaultStore.state.reactions));
|
||||
const reactions = ref(deepClone(defaultStore.state.reactions));
|
||||
|
||||
const reactionPickerSize = $computed(defaultStore.makeGetterSetter('reactionPickerSize'));
|
||||
const reactionPickerWidth = $computed(defaultStore.makeGetterSetter('reactionPickerWidth'));
|
||||
const reactionPickerHeight = $computed(defaultStore.makeGetterSetter('reactionPickerHeight'));
|
||||
const reactionPickerUseDrawerForMobile = $computed(defaultStore.makeGetterSetter('reactionPickerUseDrawerForMobile'));
|
||||
const reactionPickerSize = computed(defaultStore.makeGetterSetter('reactionPickerSize'));
|
||||
const reactionPickerWidth = computed(defaultStore.makeGetterSetter('reactionPickerWidth'));
|
||||
const reactionPickerHeight = computed(defaultStore.makeGetterSetter('reactionPickerHeight'));
|
||||
const reactionPickerUseDrawerForMobile = computed(defaultStore.makeGetterSetter('reactionPickerUseDrawerForMobile'));
|
||||
|
||||
function save() {
|
||||
defaultStore.set('reactions', reactions);
|
||||
defaultStore.set('reactions', reactions.value);
|
||||
}
|
||||
|
||||
function remove(reaction, ev: MouseEvent) {
|
||||
os.popupMenu([{
|
||||
text: i18n.ts.remove,
|
||||
action: () => {
|
||||
reactions = reactions.filter(x => x !== reaction);
|
||||
reactions.value = reactions.value.filter(x => x !== reaction);
|
||||
},
|
||||
}], ev.currentTarget ?? ev.target);
|
||||
}
|
||||
@@ -107,28 +107,28 @@ async function setDefault() {
|
||||
});
|
||||
if (canceled) return;
|
||||
|
||||
reactions = deepClone(defaultStore.def.reactions.default);
|
||||
reactions.value = deepClone(defaultStore.def.reactions.default);
|
||||
}
|
||||
|
||||
function chooseEmoji(ev: MouseEvent) {
|
||||
os.pickEmoji(ev.currentTarget ?? ev.target, {
|
||||
showPinned: false,
|
||||
}).then(emoji => {
|
||||
if (!reactions.includes(emoji)) {
|
||||
reactions.push(emoji);
|
||||
if (!reactions.value.includes(emoji)) {
|
||||
reactions.value.push(emoji);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
watch($$(reactions), () => {
|
||||
watch(reactions, () => {
|
||||
save();
|
||||
}, {
|
||||
deep: true,
|
||||
});
|
||||
|
||||
const headerActions = $computed(() => []);
|
||||
const headerActions = computed(() => []);
|
||||
|
||||
const headerTabs = $computed(() => []);
|
||||
const headerTabs = computed(() => []);
|
||||
|
||||
definePageMetadata({
|
||||
title: i18n.ts.reaction,
|
||||
|
||||
Reference in New Issue
Block a user