diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2023-02-09 17:18:27 +0000 |
|---|---|---|
| committer | tamaina <tamaina@hotmail.co.jp> | 2023-02-09 17:18:27 +0000 |
| commit | ca0d53ec5df747bbfba583f161a38af9dfe4d96c (patch) | |
| tree | cdb58f49bad40367bcea77db041250d577b5cc3d /packages/frontend/src/pages/auth.form.vue | |
| parent | chore: determine dimensions of the helix of cat ears based on the size of ava... (diff) | |
| download | misskey-ca0d53ec5df747bbfba583f161a38af9dfe4d96c.tar.gz misskey-ca0d53ec5df747bbfba583f161a38af9dfe4d96c.tar.bz2 misskey-ca0d53ec5df747bbfba583f161a38af9dfe4d96c.zip | |
enhance(client): /authおよびMiAuthのUIをブラッシュアップ
Fix #9742
Diffstat (limited to 'packages/frontend/src/pages/auth.form.vue')
| -rw-r--r-- | packages/frontend/src/pages/auth.form.vue | 108 |
1 files changed, 57 insertions, 51 deletions
diff --git a/packages/frontend/src/pages/auth.form.vue b/packages/frontend/src/pages/auth.form.vue index 801295fce9..1a1cd55eee 100644 --- a/packages/frontend/src/pages/auth.form.vue +++ b/packages/frontend/src/pages/auth.form.vue @@ -1,60 +1,66 @@ <template> -<section class=""> - <div class="">{{ $t('_auth.shareAccess', { name: app.name }) }}</div> - <div class=""> - <h2>{{ app.name }}</h2> - <p class="id">{{ app.id }}</p> - <p class="description">{{ app.description }}</p> - </div> - <div class=""> - <h2>{{ $ts._auth.permissionAsk }}</h2> - <ul> - <li v-for="p in app.permission" :key="p">{{ $t(`_permissions.${p}`) }}</li> - </ul> - </div> - <div class=""> - <MkButton inline @click="cancel">{{ $ts.cancel }}</MkButton> - <MkButton inline primary @click="accept">{{ $ts.accept }}</MkButton> - </div> -</section> + <section> + <div v-if="app.permission.length > 0"> + <p>{{ i18n.ts._auth.permissionAsk }}</p> + <ul> + <li v-for="p in app.permission" :key="p">{{ $t(`_permissions.${p}`) }}</li> + </ul> + </div> + <div>{{ i18n.t('_auth.shareAccess', { name: `${name} (${app.id})` }) }}</div> + <div :class="$style.buttons"> + <MkButton inline @click="cancel">{{ i18n.ts.cancel }}</MkButton> + <MkButton inline primary @click="accept">{{ i18n.ts.accept }}</MkButton> + </div> + </section> </template> -<script lang="ts"> -import { defineComponent } from 'vue'; +<script lang="ts" setup> +import { } from 'vue'; import MkButton from '@/components/MkButton.vue'; import * as os from '@/os'; +import { i18n } from '@/i18n'; +import { AuthSession } from 'misskey-js/built/entities'; -export default defineComponent({ - components: { - MkButton, - }, - props: ['session'], - computed: { - name(): string { - const el = document.createElement('div'); - el.textContent = this.app.name; - return el.innerHTML; - }, - app(): any { - return this.session.app; - }, - }, - methods: { - cancel() { - os.api('auth/deny', { - token: this.session.token, - }).then(() => { - this.$emit('denied'); - }); - }, +const props = defineProps<{ + session: AuthSession; +}>(); - accept() { - os.api('auth/accept', { - token: this.session.token, - }).then(() => { - this.$emit('accepted'); - }); - }, - }, +const emit = defineEmits<{ + (event: 'accepted'): void; + (event: 'denied'): void; +}>(); + +const app = $computed(() => props.session.app); + +const name = $computed(() => { + const el = document.createElement('div'); + el.textContent = app.name; + return el.innerHTML; }); + +function cancel() { + os.api('auth/deny', { + token: props.session.token, + }).then(() => { + emit('denied'); + }); +} + +function accept() { + os.api('auth/accept', { + token: props.session.token, + }).then(() => { + emit('accepted'); + }); +} + </script> + +<style lang="scss" module> +.buttons { + margin-top: 16px; + display: flex; + gap: 8px; + flex-wrap: wrap; +} +</style> |