summaryrefslogtreecommitdiff
path: root/packages/frontend/src/pages/auth.form.vue
diff options
context:
space:
mode:
authortamaina <tamaina@hotmail.co.jp>2023-02-09 17:18:27 +0000
committertamaina <tamaina@hotmail.co.jp>2023-02-09 17:18:27 +0000
commitca0d53ec5df747bbfba583f161a38af9dfe4d96c (patch)
treecdb58f49bad40367bcea77db041250d577b5cc3d /packages/frontend/src/pages/auth.form.vue
parentchore: determine dimensions of the helix of cat ears based on the size of ava... (diff)
downloadmisskey-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.vue108
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>