mark as nsfw
+
+
+ - Let stackers know that your territory may contain explicit content
+ - Your territory will get a nsfw badge
+
+
+
+ }
+ name='nsfw'
+ groupClassName='ms-1'
+ />
+ >
+
+}
+ />
archived}
{(sub.moderated || sub.moderatedCount > 0) && moderated{sub.moderatedCount > 0 && ` ${sub.moderatedCount}`}}
+ {(sub.nsfw) && nsfw}
}
>
diff --git a/fragments/items.js b/fragments/items.js
index 2e3b8e30..96b67360 100644
--- a/fragments/items.js
+++ b/fragments/items.js
@@ -22,6 +22,7 @@ export const ITEM_FIELDS = gql`
userId
moderated
meMuteSub
+ nsfw
}
otsHash
position
diff --git a/fragments/subs.js b/fragments/subs.js
index b8aac40d..800b4e99 100644
--- a/fragments/subs.js
+++ b/fragments/subs.js
@@ -19,6 +19,7 @@ export const SUB_FIELDS = gql`
moderated
moderatedCount
meMuteSub
+ nsfw
}`
export const SUB_FULL_FIELDS = gql`
diff --git a/fragments/users.js b/fragments/users.js
index 13030e5e..7a1c8d47 100644
--- a/fragments/users.js
+++ b/fragments/users.js
@@ -82,6 +82,7 @@ export const SETTINGS_FIELDS = gql`
nostrRelays
wildWestMode
greeterMode
+ nsfwMode
authMethods {
lightning
nostr
diff --git a/lib/validate.js b/lib/validate.js
index 2526b4d5..7d56d552 100644
--- a/lib/validate.js
+++ b/lib/validate.js
@@ -304,7 +304,8 @@ export function territorySchema (args) {
.min(1, 'must be at least 1')
.max(100000, 'must be at most 100k'),
postTypes: array().of(string().oneOf(POST_TYPES)).min(1, 'must support at least one post type'),
- billingType: string().required('required').oneOf(TERRITORY_BILLING_TYPES, 'required')
+ billingType: string().required('required').oneOf(TERRITORY_BILLING_TYPES, 'required'),
+ nsfw: boolean()
})
}
diff --git a/pages/settings/index.js b/pages/settings/index.js
index 935dbb48..5161c708 100644
--- a/pages/settings/index.js
+++ b/pages/settings/index.js
@@ -82,6 +82,7 @@ export default function Settings ({ ssrData }) {
imgproxyOnly: settings?.imgproxyOnly,
wildWestMode: settings?.wildWestMode,
greeterMode: settings?.greeterMode,
+ nsfwMode: settings?.nsfwMode,
nostrPubkey: settings?.nostrPubkey ? bech32encode(settings.nostrPubkey) : '',
nostrCrossposting: settings?.nostrCrossposting,
nostrRelays: settings?.nostrRelays?.length ? settings?.nostrRelays : [''],
@@ -354,6 +355,19 @@ export default function Settings ({ ssrData }) {
}
name='greeterMode'
+ groupClassName='mb-0'
+ />
+ nsfw mode
+
+
+ - see posts from nsfw territories
+
+
+
+ }
+ name='nsfwMode'
/>
nostr