diff --git a/web/source/css/base.css b/web/source/css/base.css index cd65a617e..06ce28ff6 100644 --- a/web/source/css/base.css +++ b/web/source/css/base.css @@ -315,7 +315,7 @@ input, select, textarea, .input { border-color: $input-focus-border; } - &:invalid { + &:invalid, .invalid & { border-color: $input-error-border; } diff --git a/web/source/index.js b/web/source/index.js index 0f80ef22c..26340ec19 100644 --- a/web/source/index.js +++ b/web/source/index.js @@ -66,10 +66,15 @@ skulk({ ], }, settings: { - debug: false, entryFile: "settings", outputFile: "settings.js", prodCfg: prodCfg, + transform: [ + ["babelify", { + global: true, + ignore: [/node_modules\/(?!nanoid)/] + }] + ], presets: [ "react", ["postcss", { diff --git a/web/source/package.json b/web/source/package.json index f9520baba..9e7951620 100644 --- a/web/source/package.json +++ b/web/source/package.json @@ -19,9 +19,12 @@ "langs": "^2.0.0", "match-sorter": "^6.3.1", "modern-normalize": "^1.1.0", + "nanoid": "^4.0.0", + "papaparse": "^5.3.2", "photoswipe": "^5.3.3", "photoswipe-dynamic-caption-plugin": "^1.2.7", "photoswipe-video-plugin": "^1.0.2", + "psl": "^1.9.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^3.1.4", diff --git a/web/source/settings/admin/emoji/remote/parse-from-toot.js b/web/source/settings/admin/emoji/remote/parse-from-toot.js index 309619ea4..84bbbdc92 100644 --- a/web/source/settings/admin/emoji/remote/parse-from-toot.js +++ b/web/source/settings/admin/emoji/remote/parse-from-toot.js @@ -129,14 +129,16 @@ function CopyEmojiForm({ localEmojiCodes, type, emojiList }) { title: "No emoji selected, cannot perform any actions" }; + const checkListExtraProps = React.useCallback(() => ({ localEmojiCodes }), [localEmojiCodes]); + return (
{entry[commentType]}
+ This page can be used to import and export lists of domains to suspend. + Exports can be done in various formats, with varying functionality and support in other software. + Imports will automatically detect what format is being processed. +
+ {entries.length} {entries.length == 1 ? "entry uses" : "entries use"} a specific subdomain, + which you might want to change to the main domain, as that includes all it's (future) subdomains. +
{comment}