diff options
Diffstat (limited to 'packages/frontend/src/pages/admin/settings.vue')
| -rw-r--r-- | packages/frontend/src/pages/admin/settings.vue | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/packages/frontend/src/pages/admin/settings.vue b/packages/frontend/src/pages/admin/settings.vue index 0e9c0a7d38..1f5fcc2d33 100644 --- a/packages/frontend/src/pages/admin/settings.vue +++ b/packages/frontend/src/pages/admin/settings.vue @@ -270,15 +270,17 @@ SPDX-License-Identifier: AGPL-3.0-only <MkFolder> <template #icon><i class="ti ti-ghost"></i></template> <template #label>{{ i18n.ts.proxyAccount }}</template> + <template v-if="proxyAccountForm.modified.value" #footer> + <MkFormFooter :form="proxyAccountForm"/> + </template> <div class="_gaps"> <MkInfo>{{ i18n.ts.proxyAccountDescription }}</MkInfo> - <MkKeyValue> - <template #key>{{ i18n.ts.proxyAccount }}</template> - <template #value>{{ proxyAccount ? `@${proxyAccount.username}` : i18n.ts.none }}</template> - </MkKeyValue> - <MkButton primary @click="chooseProxyAccount">{{ i18n.ts.selectAccount }}</MkButton> + <MkTextarea v-model="proxyAccountForm.state.description" :max="500" tall mfmAutocomplete :mfmPreview="true"> + <template #label>{{ i18n.ts._profile.description }}</template> + <template #caption>{{ i18n.ts._profile.youCanIncludeHashtags }}</template> + </MkTextarea> </div> </MkFolder> </div> @@ -288,7 +290,7 @@ SPDX-License-Identifier: AGPL-3.0-only </template> <script lang="ts" setup> -import { ref, computed } from 'vue'; +import { ref, computed, reactive } from 'vue'; import XHeader from './_header_.vue'; import MkSwitch from '@/components/MkSwitch.vue'; import MkInput from '@/components/MkInput.vue'; @@ -296,20 +298,20 @@ import MkTextarea from '@/components/MkTextarea.vue'; import MkInfo from '@/components/MkInfo.vue'; import FormSplit from '@/components/form/split.vue'; import * as os from '@/os.js'; -import { misskeyApi } from '@/scripts/misskey-api.js'; +import { misskeyApi } from '@/utility/misskey-api.js'; import { fetchInstance, instance } from '@/instance.js'; import { i18n } from '@/i18n.js'; -import { definePageMetadata } from '@/scripts/page-metadata.js'; +import { definePage } from '@/page.js'; import MkButton from '@/components/MkButton.vue'; import MkFolder from '@/components/MkFolder.vue'; import MkKeyValue from '@/components/MkKeyValue.vue'; -import { useForm } from '@/scripts/use-form.js'; +import { useForm } from '@/use/use-form.js'; import MkFormFooter from '@/components/MkFormFooter.vue'; import MkRadios from '@/components/MkRadios.vue'; const meta = await misskeyApi('admin/meta'); -const proxyAccount = ref(meta.proxyAccountId ? await misskeyApi('users/show', { userId: meta.proxyAccountId }) : null); +const proxyAccount = await misskeyApi('users/show', { userId: meta.proxyAccountId }); const infoForm = useForm({ name: meta.name ?? '', @@ -425,16 +427,14 @@ const federationForm = useForm({ fetchInstance(true); }); -function chooseProxyAccount() { - os.selectUser({ localOnly: true }).then(user => { - proxyAccount.value = user; - os.apiWithDialog('admin/update-meta', { - proxyAccountId: user.id, - }).then(() => { - fetchInstance(true); - }); +const proxyAccountForm = useForm({ + description: proxyAccount.description, +}, async (state) => { + await os.apiWithDialog('admin/update-proxy-account', { + description: state.description, }); -} + fetchInstance(true); +}); async function genKeys() { if (serviceWorkerForm.savedState.swPrivateKey) { @@ -450,7 +450,7 @@ async function genKeys() { const headerTabs = computed(() => []); -definePageMetadata(() => ({ +definePage(() => ({ title: i18n.ts.general, icon: 'ti ti-settings', })); |