diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-04-22 22:29:33 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-22 22:29:33 +0900 |
| commit | 246693b8484b72048cb515b76aa5f094f5fdeb56 (patch) | |
| tree | 703f7636c363b480b20690495353691e09c98a27 /src/client/scripts | |
| parent | fix style (diff) | |
| download | sharkey-246693b8484b72048cb515b76aa5f094f5fdeb56.tar.gz sharkey-246693b8484b72048cb515b76aa5f094f5fdeb56.tar.bz2 sharkey-246693b8484b72048cb515b76aa5f094f5fdeb56.zip | |
インスタンス管理画面作り直し (#7473)
* wip
* wip
* wip
* wip
Diffstat (limited to 'src/client/scripts')
| -rw-r--r-- | src/client/scripts/get-user-menu.ts | 8 | ||||
| -rw-r--r-- | src/client/scripts/lookup-user.ts | 37 |
2 files changed, 44 insertions, 1 deletions
diff --git a/src/client/scripts/get-user-menu.ts b/src/client/scripts/get-user-menu.ts index ceb2bfe173..9a003b5c38 100644 --- a/src/client/scripts/get-user-menu.ts +++ b/src/client/scripts/get-user-menu.ts @@ -124,7 +124,13 @@ export function getUserMenu(user) { action: () => { copyToClipboard(`@${user.username}@${user.host || host}`); } - }, { + }, ($i && ($i.isAdmin || $i.isModerator)) ? { + icon: 'fas fa-info-circle', + text: i18n.locale.info, + action: () => { + os.pageWindow(`/instance/user/${user.id}`); + } + } : { icon: 'fas fa-info-circle', text: i18n.locale.info, action: () => { diff --git a/src/client/scripts/lookup-user.ts b/src/client/scripts/lookup-user.ts new file mode 100644 index 0000000000..1bcfd8e9db --- /dev/null +++ b/src/client/scripts/lookup-user.ts @@ -0,0 +1,37 @@ +import parseAcct from '@/misc/acct/parse'; +import { i18n } from '@client/i18n'; +import * as os from '@client/os'; + +export async function lookupUser() { + const { canceled, result } = await os.dialog({ + title: i18n.locale.usernameOrUserId, + input: true + }); + if (canceled) return; + + const show = (user) => { + os.pageWindow(`/instance/user/${user.id}`); + }; + + const usernamePromise = os.api('users/show', parseAcct(result)); + const idPromise = os.api('users/show', { userId: result }); + let _notFound = false; + const notFound = () => { + if (_notFound) { + os.dialog({ + type: 'error', + text: i18n.locale.noSuchUser + }); + } else { + _notFound = true; + } + }; + usernamePromise.then(show).catch(e => { + if (e.code === 'NO_SUCH_USER') { + notFound(); + } + }); + idPromise.then(show).catch(e => { + notFound(); + }); +} |