moderator-toolbox-nxg-for-reddit / modules/shared/usernotes/requireRules
modules/shared/usernotes/requireRules¶
Functions¶
resolveUsernoteRequirements()¶
resolveUsernoteRequirements(
subRequirements,personal):UsernoteRequireFlags
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:67
Combines a subreddit’s requirement flags with a moderator’s personal flags into the effective requirements, applying the “more restrictive wins” rule.
Parameters¶
subRequirements¶
The subreddit’s requirement flags and enforcement mode.
personal¶
The acting moderator’s personal requirement flags.
Returns¶
The effective per-field requirements to enforce when saving a note.
subUsernoteRequireFromConfig()¶
subUsernoteRequireFromConfig(
config):SubUsernoteRequire
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:51
Builds a SubUsernoteRequire from a (possibly absent or partial) config,
applying the per-field defaults: type/link default off (absent/garbage -> false)
and text defaults on (only an explicit false disables it). This is the single
source of truth for reading the four require fields off a config object.
Parameters¶
config¶
RequireConfig | undefined
The subreddit’s toolbox config, or undefined if unavailable.
Returns¶
The subreddit’s requirement flags and enforcement mode.
unmetUsernoteRequirement()¶
unmetUsernoteRequirement(
require,draft):string|null
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:105
Checks a draft note against the effective requirements, returning a
user-facing message for the first unmet requirement, or null when every
requirement is satisfied. Both the Save-button disabled state and the
save handler share this so they can never disagree.
Parameters¶
require¶
The effective per-field requirements to enforce.
draft¶
The draft note’s current contents.
Returns¶
string | null
The message for the first unmet requirement, or null if all met.
Interfaces¶
SubUsernoteRequire¶
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:27
A subreddit’s requirement flags plus the enforcement mode that gates them.
Extends¶
Properties¶
link¶
link:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:23
Whether a link to the content is required.
Inherited from¶
mode¶
mode:
string|undefined
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:34
The subreddit’s usernoteRequirementOption: 'suggest'/'force' make the
flags a floor; anything else (including undefined/'leave') defers to the
moderator’s personal settings. The token set matches removal reasons’
removalOption.
text¶
text:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:21
Whether note body text is required.
Inherited from¶
type¶
type:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:19
Whether a note type/tag is required.
Inherited from¶
UsernoteDraftState¶
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:82
A draft note’s current contents, used to check it against the requirements.
Properties¶
hasLink¶
hasLink:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:88
Whether a link is currently attached/included.
hasText¶
hasText:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:84
Whether the note body currently has non-whitespace text.
hasType¶
hasType:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:86
Whether a note type/tag is currently selected.
linkEnforceable¶
linkEnforceable:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:93
Whether a link requirement is even enforceable in this context - false in edit mode or when no linkable item exists, where the user cannot attach one.
UsernoteRequireFlags¶
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:17
A set of per-field “is this required” booleans for type, text, and link.
Extended by¶
Properties¶
link¶
link:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:23
Whether a link to the content is required.
text¶
text:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:21
Whether note body text is required.
type¶
type:
boolean
Defined in: extension/data/modules/shared/usernotes/requireRules.ts:19
Whether a note type/tag is required.