parent
59046d583d
commit
9dd53527ca
4 changed files with 12 additions and 1 deletions
|
@ -26,6 +26,7 @@
|
||||||
- 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように
|
- 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように
|
||||||
- フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように
|
- フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように
|
||||||
- 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように
|
- 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように
|
||||||
|
- プロフィールURLをコピーできるボタンを追加 #11190
|
||||||
- Fix: サーバーメトリクスが90度傾いている
|
- Fix: サーバーメトリクスが90度傾いている
|
||||||
- Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正
|
- Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正
|
||||||
- Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正
|
- Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正
|
||||||
|
|
1
locales/index.d.ts
vendored
1
locales/index.d.ts
vendored
|
@ -59,6 +59,7 @@ export interface Locale {
|
||||||
"copyNoteId": string;
|
"copyNoteId": string;
|
||||||
"copyFileId": string;
|
"copyFileId": string;
|
||||||
"copyFolderId": string;
|
"copyFolderId": string;
|
||||||
|
"copyProfileUrl": string;
|
||||||
"searchUser": string;
|
"searchUser": string;
|
||||||
"reply": string;
|
"reply": string;
|
||||||
"loadMore": string;
|
"loadMore": string;
|
||||||
|
|
|
@ -56,6 +56,7 @@ copyUserId: "ユーザーIDをコピー"
|
||||||
copyNoteId: "ノートIDをコピー"
|
copyNoteId: "ノートIDをコピー"
|
||||||
copyFileId: "ファイルIDをコピー"
|
copyFileId: "ファイルIDをコピー"
|
||||||
copyFolderId: "フォルダーIDをコピー"
|
copyFolderId: "フォルダーIDをコピー"
|
||||||
|
copyProfileUrl: "プロフィールURLをコピー"
|
||||||
searchUser: "ユーザーを検索"
|
searchUser: "ユーザーを検索"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
loadMore: "もっと見る"
|
loadMore: "もっと見る"
|
||||||
|
|
|
@ -2,13 +2,14 @@ import { defineAsyncComponent } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
import copyToClipboard from '@/scripts/copy-to-clipboard';
|
||||||
import { host } from '@/config';
|
import { host, url } from '@/config';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { defaultStore, userActions } from '@/store';
|
import { defaultStore, userActions } from '@/store';
|
||||||
import { $i, iAmModerator } from '@/account';
|
import { $i, iAmModerator } from '@/account';
|
||||||
import { mainRouter } from '@/router';
|
import { mainRouter } from '@/router';
|
||||||
import { Router } from '@/nirax';
|
import { Router } from '@/nirax';
|
||||||
import { rolesCache, userListsCache } from '@/cache';
|
import { rolesCache, userListsCache } from '@/cache';
|
||||||
|
import { toUnicode } from 'punycode';
|
||||||
|
|
||||||
export function getUserMenu(user: misskey.entities.UserDetailed, router: Router = mainRouter) {
|
export function getUserMenu(user: misskey.entities.UserDetailed, router: Router = mainRouter) {
|
||||||
const meId = $i ? $i.id : null;
|
const meId = $i ? $i.id : null;
|
||||||
|
@ -137,6 +138,13 @@ export function getUserMenu(user: misskey.entities.UserDetailed, router: Router
|
||||||
action: () => {
|
action: () => {
|
||||||
copyToClipboard(`${user.host ?? host}/@${user.username}.atom`);
|
copyToClipboard(`${user.host ?? host}/@${user.username}.atom`);
|
||||||
},
|
},
|
||||||
|
}, {
|
||||||
|
icon: 'ti ti-share',
|
||||||
|
text: i18n.ts.copyProfileUrl,
|
||||||
|
action: () => {
|
||||||
|
const canonical = user.host === null ? `@${user.username}` : `@${user.username}@${toUnicode(user.host)}`
|
||||||
|
copyToClipboard(`${url}/${canonical}`);
|
||||||
|
},
|
||||||
}, {
|
}, {
|
||||||
icon: 'ti ti-mail',
|
icon: 'ti ti-mail',
|
||||||
text: i18n.ts.sendMessage,
|
text: i18n.ts.sendMessage,
|
||||||
|
|
Loading…
Reference in a new issue