diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx index 4a1f3fa57..87d4cba44 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx @@ -10,11 +10,15 @@ import Error from '../../../../pages/_error'; import Button from '../../../Common/Button'; import LoadingSpinner from '../../../Common/LoadingSpinner'; import { UserSettingsNotificationsResponse } from '../../../../../server/interfaces/api/userSettingsInterfaces'; +import * as Yup from 'yup'; const messages = defineMessages({ notificationsettings: 'Notification Settings', enableNotifications: 'Enable Notifications', - discordId: 'Discord ID', + discordId: 'Discord User ID', + discordIdTip: + 'The 18-digit ID number for your Discord user account', + validationDiscordId: 'You must provide a valid Discord user ID', save: 'Save Changes', saving: 'Saving…', plexuser: 'Plex User', @@ -32,6 +36,12 @@ const UserNotificationSettings: React.FC = () => { user ? `/api/v1/user/${user?.id}/settings/notifications` : null ); + const UserNotificationSettingsSchema = Yup.object().shape({ + discordId: Yup.string() + .optional() + .matches(/^\d{18}$/, intl.formatMessage(messages.validationDiscordId)), + }); + if (!data && !error) { return ; } @@ -52,6 +62,7 @@ const UserNotificationSettings: React.FC = () => { enableNotifications: data?.enableNotifications, discordId: data?.discordId, }} + validationSchema={UserNotificationSettingsSchema} enableReinitialize onSubmit={async (values) => { try { @@ -97,7 +108,23 @@ const UserNotificationSettings: React.FC = () => {
diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index c805abf40..caf39b890 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -676,6 +676,7 @@ "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Something went wrong while saving settings.", "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Settings successfully saved!", "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Discord ID", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "The 18-digit ID number for your Discord user account", "components.UserProfile.UserSettings.UserNotificationSettings.enableNotifications": "Enable Notifications", "components.UserProfile.UserSettings.UserNotificationSettings.localuser": "Local User", "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Notification Settings", @@ -684,6 +685,7 @@ "components.UserProfile.UserSettings.UserNotificationSettings.saving": "Saving…", "components.UserProfile.UserSettings.UserNotificationSettings.toastSettingsFailure": "Something went wrong while saving settings.", "components.UserProfile.UserSettings.UserNotificationSettings.toastSettingsSuccess": "Settings successfully saved!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "You must provide a valid Discord user ID", "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirm Password", "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Current Password", "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "New Password",