diff --git a/locales/index.d.ts b/locales/index.d.ts index 981c0f15aa..071629296e 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -9842,6 +9842,21 @@ export interface Locale extends ILocale { */ "summaryProxyDescription2": string; }; + "_urlWarning": { + /** + * 外部サイトに移動します + */ + "title": string; + /** + * 別のサイトに移動しようとしています。 + * リンク先の安全性を十分に確認した上で進んでください。 + */ + "description": string; + /** + * 今後{domain}のリンクを信頼する + */ + "trustThisDomain": ParameterizedString<"domain">; + }; } declare const locales: { [lang: string]: Locale; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index db877de7e8..e024d22b06 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -2621,3 +2621,8 @@ _urlPreviewSetting: summaryProxy: "プレビューを生成するプロキシのエンドポイント" summaryProxyDescription: "Misskey本体ではなく、サマリープロキシを使用してプレビューを生成します。" summaryProxyDescription2: "プロキシには下記パラメータがクエリ文字列として連携されます。プロキシ側がこれらをサポートしない場合、設定値は無視されます。" + +_urlWarning: + title: "外部サイトに移動します" + description: "別のサイトに移動しようとしています。\nリンク先の安全性を十分に確認した上で進んでください。" + trustThisDomain: "今後{domain}のリンクを信頼する" diff --git a/packages/frontend/src/components/MkUrlWarningDialog.vue b/packages/frontend/src/components/MkUrlWarningDialog.vue new file mode 100644 index 0000000000..de0df86e72 --- /dev/null +++ b/packages/frontend/src/components/MkUrlWarningDialog.vue @@ -0,0 +1,136 @@ + + + + + + + diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 7742acc60d..c2ee298b7b 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -132,6 +132,10 @@ export const defaultStore = markRaw(new Storage('base', { where: 'account', default: [] as string[], }, + trustedDomains: { + where: 'account', + default: [] as string[], + }, menu: { where: 'deviceAccount',