summaryrefslogtreecommitdiff
path: root/web/source/settings/views/moderation/domain-permissions
diff options
context:
space:
mode:
Diffstat (limited to 'web/source/settings/views/moderation/domain-permissions')
-rw-r--r--web/source/settings/views/moderation/domain-permissions/detail.tsx32
-rw-r--r--web/source/settings/views/moderation/domain-permissions/form.tsx5
-rw-r--r--web/source/settings/views/moderation/domain-permissions/overview.tsx10
3 files changed, 41 insertions, 6 deletions
diff --git a/web/source/settings/views/moderation/domain-permissions/detail.tsx b/web/source/settings/views/moderation/domain-permissions/detail.tsx
index 47072b8cb..2b27b534d 100644
--- a/web/source/settings/views/moderation/domain-permissions/detail.tsx
+++ b/web/source/settings/views/moderation/domain-permissions/detail.tsx
@@ -39,6 +39,7 @@ import { NoArg } from "../../../lib/types/query";
import { Error } from "../../../components/error";
import { useBaseUrl } from "../../../lib/navigation/util";
import { PermType } from "../../../lib/types/perm";
+import isValidDomain from "is-valid-domain";
export default function DomainPermDetail() {
const baseUrl = useBaseUrl();
@@ -139,7 +140,32 @@ function DomainPermForm({ defaultDomain, perm, permType }: DomainPermFormProps)
};
const form = {
- domain: useTextInput("domain", { source: perm, defaultValue: defaultDomain }),
+ domain: useTextInput("domain", {
+ source: perm,
+ defaultValue: defaultDomain,
+ validator: (v: string) => {
+ if (v.length === 0) {
+ return "";
+ }
+
+ if (v[v.length-1] === ".") {
+ return "invalid domain";
+ }
+
+ const valid = isValidDomain(v, {
+ subdomain: true,
+ wildcard: false,
+ allowUnicode: true,
+ topLevel: false,
+ });
+
+ if (valid) {
+ return "";
+ }
+
+ return "invalid domain";
+ }
+ }),
obfuscate: useBoolInput("obfuscate", { source: perm }),
commentPrivate: useTextInput("private_comment", { source: perm }),
commentPublic: useTextInput("public_comment", { source: perm })
@@ -208,6 +234,8 @@ function DomainPermForm({ defaultDomain, perm, permType }: DomainPermFormProps)
field={form.domain}
label="Domain"
placeholder="example.com"
+ autoCapitalize="none"
+ spellCheck="false"
{...disabledForm}
/>
@@ -220,6 +248,7 @@ function DomainPermForm({ defaultDomain, perm, permType }: DomainPermFormProps)
<TextArea
field={form.commentPrivate}
label="Private comment"
+ autoCapitalize="sentences"
rows={3}
{...disabledForm}
/>
@@ -227,6 +256,7 @@ function DomainPermForm({ defaultDomain, perm, permType }: DomainPermFormProps)
<TextArea
field={form.commentPublic}
label="Public comment"
+ autoCapitalize="sentences"
rows={3}
{...disabledForm}
/>
diff --git a/web/source/settings/views/moderation/domain-permissions/form.tsx b/web/source/settings/views/moderation/domain-permissions/form.tsx
index ea7fdbc23..204e9510c 100644
--- a/web/source/settings/views/moderation/domain-permissions/form.tsx
+++ b/web/source/settings/views/moderation/domain-permissions/form.tsx
@@ -80,9 +80,12 @@ export default function ImportExportForm({ form, submitParse, parseResult }: Imp
<div className="import-export">
<TextArea
field={form.domains}
- label="Domains"
+ label="Domains (newline-separated)"
placeholder={`google.com\nfacebook.com`}
rows={8}
+ autoCapitalize="none"
+ spellCheck="false"
+ className={"monospace"}
/>
<RadioGroup
diff --git a/web/source/settings/views/moderation/domain-permissions/overview.tsx b/web/source/settings/views/moderation/domain-permissions/overview.tsx
index 1c919c14d..78560ba34 100644
--- a/web/source/settings/views/moderation/domain-permissions/overview.tsx
+++ b/web/source/settings/views/moderation/domain-permissions/overview.tsx
@@ -66,9 +66,11 @@ export default function DomainPermissionsOverview() {
}
return (
- <>
- <h1>Domain {permTypeUpper}s</h1>
- { permType == "block" ? <BlockHelperText/> : <AllowHelperText/> }
+ <div className={`domain-${permType}`}>
+ <div className="form-section-docs">
+ <h1>Domain {permTypeUpper}s</h1>
+ { permType == "block" ? <BlockHelperText/> : <AllowHelperText/> }
+ </div>
<DomainPermsList
data={data}
permType={permType}
@@ -77,7 +79,7 @@ export default function DomainPermissionsOverview() {
<Link to={`~${baseUrl}/import-export`}>
Or use the bulk import/export interface
</Link>
- </>
+ </div>
);
}