(passwordRequirements ? false : true);
const { currentPassword, newPassword, newPasswordConfirmation } = state;
@@ -75,6 +79,10 @@ const EditPassword = () => {
onChange={handleInputChange}
value={newPassword}
/>
+
+ {passwordRequirements && (
+
+ )}
@@ -91,7 +99,7 @@ const EditPassword = () => {
{intl.formatMessage(messages.cancel)}
-
- Register
+
+ Register
+
diff --git a/app/soapbox/locales/en.json b/app/soapbox/locales/en.json
index 9f3894ac5..d6808069a 100644
--- a/app/soapbox/locales/en.json
+++ b/app/soapbox/locales/en.json
@@ -833,6 +833,9 @@
"registration.sign_up": "Sign up",
"registration.tos": "Terms of Service",
"registration.username_unavailable": "Username is already taken.",
+ "registration.validation.minimum_characters": "8 characters",
+ "registration.validation.capital_letter": "1 capital letter",
+ "registration.validation.lowercase_letter": "1 lowercase letter",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
"relative_time.just_now": "now",
diff --git a/app/soapbox/utils/features.ts b/app/soapbox/utils/features.ts
index 891cdd621..8f8a65cc1 100644
--- a/app/soapbox/utils/features.ts
+++ b/app/soapbox/utils/features.ts
@@ -380,6 +380,14 @@ const getInstanceFeatures = (instance: Instance) => {
*/
paginatedContext: v.software === TRUTHSOCIAL,
+ /**
+ * Require minimum password requirements.
+ * - 8 characters
+ * - 1 uppercase
+ * - 1 lowercase
+ */
+ passwordRequirements: v.software === TRUTHSOCIAL,
+
/**
* Displays a form to follow a user when logged out.
* @see POST /main/ostatus