diff options
| author | zyoshoka <107108195+zyoshoka@users.noreply.github.com> | 2023-12-07 14:42:09 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-07 14:42:09 +0900 |
| commit | 406b4bdbe79b5b0b68fcdcb3c4b6e419460a0258 (patch) | |
| tree | a1af1cc6102d2db40a687bc848c07cce35bd414f /packages/frontend/src/pages/admin-user.vue | |
| parent | feat: Roleに関するSchemaを追加 (#12572) (diff) | |
| download | misskey-406b4bdbe79b5b0b68fcdcb3c4b6e419460a0258.tar.gz misskey-406b4bdbe79b5b0b68fcdcb3c4b6e419460a0258.tar.bz2 misskey-406b4bdbe79b5b0b68fcdcb3c4b6e419460a0258.zip | |
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: 対応漏れ
Diffstat (limited to 'packages/frontend/src/pages/admin-user.vue')
| -rw-r--r-- | packages/frontend/src/pages/admin-user.vue | 94 |
1 files changed, 47 insertions, 47 deletions
diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue index 87ebedc296..fd839b4369 100644 --- a/packages/frontend/src/pages/admin-user.vue +++ b/packages/frontend/src/pages/admin-user.vue @@ -203,7 +203,7 @@ SPDX-License-Identifier: AGPL-3.0-only </template> <script lang="ts" setup> -import { computed, defineAsyncComponent, watch } from 'vue'; +import { computed, defineAsyncComponent, watch, ref } from 'vue'; import * as Misskey from 'misskey-js'; import MkChart from '@/components/MkChart.vue'; import MkObjectView from '@/components/MkObjectView.vue'; @@ -234,17 +234,17 @@ const props = withDefaults(defineProps<{ initialTab: 'overview', }); -let tab = $ref(props.initialTab); -let chartSrc = $ref('per-user-notes'); -let user = $ref<null | Misskey.entities.UserDetailed>(); -let init = $ref<ReturnType<typeof createFetcher>>(); -let info = $ref(); -let ips = $ref(null); -let ap = $ref(null); -let moderator = $ref(false); -let silenced = $ref(false); -let suspended = $ref(false); -let moderationNote = $ref(''); +const tab = ref(props.initialTab); +const chartSrc = ref('per-user-notes'); +const user = ref<null | Misskey.entities.UserDetailed>(); +const init = ref<ReturnType<typeof createFetcher>>(); +const info = ref(); +const ips = ref(null); +const ap = ref(null); +const moderator = ref(false); +const silenced = ref(false); +const suspended = ref(false); +const moderationNote = ref(''); const filesPagination = { endpoint: 'admin/drive/files' as const, limit: 10, @@ -259,7 +259,7 @@ const announcementsPagination = { userId: props.userId, })), }; -let expandedRoles = $ref([]); +const expandedRoles = ref([]); function createFetcher() { return () => Promise.all([os.api('users/show', { @@ -269,27 +269,27 @@ function createFetcher() { }), iAmAdmin ? os.api('admin/get-user-ips', { userId: props.userId, }) : Promise.resolve(null)]).then(([_user, _info, _ips]) => { - user = _user; - info = _info; - ips = _ips; - moderator = info.isModerator; - silenced = info.isSilenced; - suspended = info.isSuspended; - moderationNote = info.moderationNote; + user.value = _user; + info.value = _info; + ips.value = _ips; + moderator.value = info.value.isModerator; + silenced.value = info.value.isSilenced; + suspended.value = info.value.isSuspended; + moderationNote.value = info.value.moderationNote; - watch($$(moderationNote), async () => { - await os.api('admin/update-user-note', { userId: user.id, text: moderationNote }); + watch(moderationNote, async () => { + await os.api('admin/update-user-note', { userId: user.value.id, text: moderationNote.value }); await refreshUser(); }); }); } function refreshUser() { - init = createFetcher(); + init.value = createFetcher(); } async function updateRemoteUser() { - await os.apiWithDialog('federation/update-remote-user', { userId: user.id }); + await os.apiWithDialog('federation/update-remote-user', { userId: user.value.id }); refreshUser(); } @@ -302,7 +302,7 @@ async function resetPassword() { return; } else { const { password } = await os.api('admin/reset-password', { - userId: user.id, + userId: user.value.id, }); os.alert({ type: 'success', @@ -317,9 +317,9 @@ async function toggleSuspend(v) { text: v ? i18n.ts.suspendConfirm : i18n.ts.unsuspendConfirm, }); if (confirm.canceled) { - suspended = !v; + suspended.value = !v; } else { - await os.api(v ? 'admin/suspend-user' : 'admin/unsuspend-user', { userId: user.id }); + await os.api(v ? 'admin/suspend-user' : 'admin/unsuspend-user', { userId: user.value.id }); await refreshUser(); } } @@ -331,7 +331,7 @@ async function unsetUserAvatar() { }); if (confirm.canceled) return; const process = async () => { - await os.api('admin/unset-user-avatar', { userId: user.id }); + await os.api('admin/unset-user-avatar', { userId: user.value.id }); os.success(); }; await process().catch(err => { @@ -350,7 +350,7 @@ async function unsetUserBanner() { }); if (confirm.canceled) return; const process = async () => { - await os.api('admin/unset-user-banner', { userId: user.id }); + await os.api('admin/unset-user-banner', { userId: user.value.id }); os.success(); }; await process().catch(err => { @@ -369,7 +369,7 @@ async function deleteAllFiles() { }); if (confirm.canceled) return; const process = async () => { - await os.api('admin/delete-all-files-of-a-user', { userId: user.id }); + await os.api('admin/delete-all-files-of-a-user', { userId: user.value.id }); os.success(); }; await process().catch(err => { @@ -389,13 +389,13 @@ async function deleteAccount() { if (confirm.canceled) return; const typed = await os.inputText({ - text: i18n.t('typeToConfirm', { x: user?.username }), + text: i18n.t('typeToConfirm', { x: user.value?.username }), }); if (typed.canceled) return; - if (typed.result === user?.username) { + if (typed.result === user.value?.username) { await os.apiWithDialog('admin/delete-account', { - userId: user.id, + userId: user.value.id, }); } else { os.alert({ @@ -438,7 +438,7 @@ async function assignRole() { : period === 'oneMonth' ? Date.now() + (1000 * 60 * 60 * 24 * 30) : null; - await os.apiWithDialog('admin/roles/assign', { roleId, userId: user.id, expiresAt }); + await os.apiWithDialog('admin/roles/assign', { roleId, userId: user.value.id, expiresAt }); refreshUser(); } @@ -448,50 +448,50 @@ async function unassignRole(role, ev) { icon: 'ti ti-x', danger: true, action: async () => { - await os.apiWithDialog('admin/roles/unassign', { roleId: role.id, userId: user.id }); + await os.apiWithDialog('admin/roles/unassign', { roleId: role.id, userId: user.value.id }); refreshUser(); }, }], ev.currentTarget ?? ev.target); } function toggleRoleItem(role) { - if (expandedRoles.includes(role.id)) { - expandedRoles = expandedRoles.filter(x => x !== role.id); + if (expandedRoles.value.includes(role.id)) { + expandedRoles.value = expandedRoles.value.filter(x => x !== role.id); } else { - expandedRoles.push(role.id); + expandedRoles.value.push(role.id); } } function createAnnouncement() { os.popup(defineAsyncComponent(() => import('@/components/MkUserAnnouncementEditDialog.vue')), { - user, + user: user.value, }, {}, 'closed'); } function editAnnouncement(announcement) { os.popup(defineAsyncComponent(() => import('@/components/MkUserAnnouncementEditDialog.vue')), { - user, + user: user.value, announcement, }, {}, 'closed'); } watch(() => props.userId, () => { - init = createFetcher(); + init.value = createFetcher(); }, { immediate: true, }); -watch($$(user), () => { +watch(user, () => { os.api('ap/get', { - uri: user.uri ?? `${url}/users/${user.id}`, + uri: user.value.uri ?? `${url}/users/${user.value.id}`, }).then(res => { - ap = res; + ap.value = res; }); }); -const headerActions = $computed(() => []); +const headerActions = computed(() => []); -const headerTabs = $computed(() => [{ +const headerTabs = computed(() => [{ key: 'overview', title: i18n.ts.overview, icon: 'ti ti-info-circle', @@ -518,7 +518,7 @@ const headerTabs = $computed(() => [{ }]); definePageMetadata(computed(() => ({ - title: user ? acct(user) : i18n.ts.userInfo, + title: user.value ? acct(user.value) : i18n.ts.userInfo, icon: 'ti ti-user-exclamation', }))); </script> |