From e5fbc68e0e0b06cc620a7cb2494d6c03139d9627 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 16 Apr 2021 17:34:06 +0900 Subject: 詳細ユーザー情報ページなど MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/components/form/base.vue | 10 +-- src/client/components/form/group.vue | 52 +++++++++-- src/client/components/form/key-value-view.vue | 2 +- src/client/components/form/object-view.vue | 102 +++++++++++++++++++++ src/client/components/form/suspense.vue | 76 ++++++++++++++++ src/client/pages/instance-info.vue | 124 ++++++++++++++++++++++++++ src/client/pages/user-ap-info.vue | 122 +++++++++++++++++++++++++ src/client/pages/user-info.vue | 87 ++++++++++++++++++ src/client/router.ts | 3 + src/client/scripts/get-user-menu.ts | 8 +- src/client/style.scss | 2 +- 11 files changed, 572 insertions(+), 16 deletions(-) create mode 100644 src/client/components/form/object-view.vue create mode 100644 src/client/components/form/suspense.vue create mode 100644 src/client/pages/instance-info.vue create mode 100644 src/client/pages/user-ap-info.vue create mode 100644 src/client/pages/user-info.vue (limited to 'src/client') diff --git a/src/client/components/form/base.vue b/src/client/components/form/base.vue index 84438a5b32..de46d1bd19 100644 --- a/src/client/components/form/base.vue +++ b/src/client/components/form/base.vue @@ -40,16 +40,16 @@ export default defineComponent({ } ._form_group { - > * { - &:not(:first-child) { + > *:not(._formNoConcat) { + &:not(:last-child):not(._formNoConcatPrev) { &._formPanel, ._formPanel { - border-top: none; + border-bottom: solid 0.5px var(--divider); } } - &:not(:last-child) { + &:not(:first-child):not(._formNoConcatNext) { &._formPanel, ._formPanel { - border-bottom: solid 0.5px var(--divider); + border-top: none; } } } diff --git a/src/client/components/form/group.vue b/src/client/components/form/group.vue index 9af33013a1..34ccaeff07 100644 --- a/src/client/components/form/group.vue +++ b/src/client/components/form/group.vue @@ -1,7 +1,7 @@ diff --git a/src/client/components/form/suspense.vue b/src/client/components/form/suspense.vue new file mode 100644 index 0000000000..4b47cb959b --- /dev/null +++ b/src/client/components/form/suspense.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/client/pages/instance-info.vue b/src/client/pages/instance-info.vue new file mode 100644 index 0000000000..420ecc31b8 --- /dev/null +++ b/src/client/pages/instance-info.vue @@ -0,0 +1,124 @@ + + + diff --git a/src/client/pages/user-ap-info.vue b/src/client/pages/user-ap-info.vue new file mode 100644 index 0000000000..d86437830d --- /dev/null +++ b/src/client/pages/user-ap-info.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/client/pages/user-info.vue b/src/client/pages/user-info.vue new file mode 100644 index 0000000000..a1ff561060 --- /dev/null +++ b/src/client/pages/user-info.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/client/router.ts b/src/client/router.ts index 3effb2edbe..bf45c806e2 100644 --- a/src/client/router.ts +++ b/src/client/router.ts @@ -72,6 +72,9 @@ export const router = createRouter({ { path: '/instance/abuses', component: page('instance/abuses') }, { path: '/notes/:note', name: 'note', component: page('note'), props: route => ({ noteId: route.params.note }) }, { path: '/tags/:tag', component: page('tag'), props: route => ({ tag: route.params.tag }) }, + { path: '/user-info/:user', component: page('user-info'), props: route => ({ userId: route.params.user }) }, + { path: '/user-ap-info/:user', component: page('user-ap-info'), props: route => ({ userId: route.params.user }) }, + { path: '/instance-info/:host', component: page('instance-info'), props: route => ({ host: route.params.host }) }, { path: '/games/reversi', component: page('reversi/index') }, { path: '/games/reversi/:gameId', component: page('reversi/game'), props: route => ({ gameId: route.params.gameId }) }, { path: '/mfm-cheat-sheet', component: page('mfm-cheat-sheet') }, diff --git a/src/client/scripts/get-user-menu.ts b/src/client/scripts/get-user-menu.ts index 163eff619c..0496e87502 100644 --- a/src/client/scripts/get-user-menu.ts +++ b/src/client/scripts/get-user-menu.ts @@ -1,4 +1,4 @@ -import { faAt, faListUl, faEye, faEyeSlash, faBan, faPencilAlt, faComments, faUsers, faMicrophoneSlash, faPlug, faExclamationCircle } from '@fortawesome/free-solid-svg-icons'; +import { faAt, faListUl, faEye, faEyeSlash, faBan, faPencilAlt, faComments, faUsers, faMicrophoneSlash, faPlug, faExclamationCircle, faInfoCircle } from '@fortawesome/free-solid-svg-icons'; import { faSnowflake, faEnvelope } from '@fortawesome/free-regular-svg-icons'; import { i18n } from '@client/i18n'; import copyToClipboard from '@client/scripts/copy-to-clipboard'; @@ -126,6 +126,12 @@ export function getUserMenu(user) { action: () => { copyToClipboard(`@${user.username}@${user.host || host}`); } + }, { + icon: faInfoCircle, + text: i18n.locale.info, + action: () => { + os.pageWindow(`/user-info/${user.id}`); + } }, { icon: faEnvelope, text: i18n.locale.sendMessage, diff --git a/src/client/style.scss b/src/client/style.scss index b12299422c..eadf56bf37 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -455,7 +455,7 @@ hr { } ._monospace { - font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace; + font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace !important; } ._code { -- cgit v1.2.3-freya