diff --git a/locales/index.d.ts b/locales/index.d.ts
index cb467f690a..9c2769ab82 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -6005,6 +6005,14 @@ export interface Locale extends ILocale {
* New
*/
"new": string;
+ /**
+ * Throw confetti
+ */
+ "confetti": string;
+ /**
+ * If enabled, the announcement will display a confetti effect when viewed.
+ */
+ "confettiDescription": string;
};
"_initialAccountSetting": {
/**
@@ -11984,6 +11992,14 @@ export interface Locale extends ILocale {
* Separate with spaces for an AND condition or with line breaks for an OR condition. Using surrounding keywords with slashes will turn them into a regular expression. If you write only the domain name, it will be a backward match.
*/
"trustedLinkUrlPatternsDescription": string;
+ /**
+ * Link to external site warning exclusion list
+ */
+ "trustedDomainsList": string;
+ /**
+ * Following links to these domains will not show a warning. Write one domain per line.
+ */
+ "trustedDomainsListDescription": string;
/**
* Mutuals
*/
diff --git a/packages/frontend/src/components/MkUrlWarningDialog.vue b/packages/frontend/src/components/MkUrlWarningDialog.vue
index 01ecba1817..8b18942719 100644
--- a/packages/frontend/src/components/MkUrlWarningDialog.vue
+++ b/packages/frontend/src/components/MkUrlWarningDialog.vue
@@ -64,7 +64,7 @@ function done(canceled: boolean, result?: Result): void { // eslint-disable-line
async function ok() {
const result = true;
if (!prefer.s.trustedDomains.includes(domain.value) && trustThisDomain.value) {
- prefer.r.trustedDomains.value = prefer.s.trustedDomains.concat(domain.value);
+ prefer.commit('trustedDomains', prefer.s.trustedDomains.concat(domain.value));
}
done(false, result);
}
diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue
index 54b5b6be1c..d21faf61e9 100644
--- a/packages/frontend/src/pages/settings/preferences.vue
+++ b/packages/frontend/src/pages/settings/preferences.vue
@@ -829,6 +829,15 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
+
+ {{ i18n.ts.trustedDomainsList }}
+ {{ i18n.ts.trustedDomainsListDescription }}
+
+
+
+
@@ -967,6 +976,7 @@ import FormLink from '@/components/form/link.vue';
import MkLink from '@/components/MkLink.vue';
import MkInfo from '@/components/MkInfo.vue';
import MkInput from '@/components/MkInput.vue';
+import MkTextarea from '@/components/MkTextarea.vue';
import { store } from '@/store.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
@@ -1073,6 +1083,11 @@ const lang = prefer.model('lang');
const fontSize = prefer.model('fontSize');
const useSystemFont = prefer.model('useSystemFont');
const cornerRadius = prefer.model('cornerRadius');
+const trustedDomains = prefer.model(
+ 'trustedDomains',
+ (domainsList) => domainsList.join('\n'),
+ (domainsString) => domainsString.split('\n').map( d => d.trim() ).filter( x => x.length > 0),
+);
watch([
hemisphere,
diff --git a/packages/frontend/src/utility/warning-external-website.ts b/packages/frontend/src/utility/warning-external-website.ts
index 33cf379b50..28c03c419d 100644
--- a/packages/frontend/src/utility/warning-external-website.ts
+++ b/packages/frontend/src/utility/warning-external-website.ts
@@ -36,8 +36,8 @@ export async function warningExternalWebsite(url: string) {
}
});
- const isTrustedByUser = prefer.r.trustedDomains.value.includes(hostname);
- const isDisabledByUser = !prefer.r.warnExternalUrl.value;
+ const isTrustedByUser = prefer.s.trustedDomains.includes(hostname);
+ const isDisabledByUser = !prefer.s.warnExternalUrl;
if (!isTrustedByInstance && !isTrustedByUser && !isDisabledByUser) {
const confirm = await new Promise<{ canceled: boolean }>(resolve => {
diff --git a/sharkey-locales/en-US.yml b/sharkey-locales/en-US.yml
index 140d8f16a3..99fe75b26b 100644
--- a/sharkey-locales/en-US.yml
+++ b/sharkey-locales/en-US.yml
@@ -8,6 +8,8 @@ deleteAndEditConfirm: "Are you sure you want to redraft this note? This means yo
openRemoteProfile: "Open remote profile"
trustedLinkUrlPatterns: "Link to external site warning exclusion list"
trustedLinkUrlPatternsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition. Using surrounding keywords with slashes will turn them into a regular expression. If you write only the domain name, it will be a backward match."
+trustedDomainsList: "Link to external site warning exclusion list"
+trustedDomainsListDescription: "Following links to these domains will not show a warning. Write one domain per line."
mutuals: "Mutuals"
isLocked: "Private account"
isAdmin: "Administrator"