diff --git a/server/interfaces/api/userSettingsInterfaces.ts b/server/interfaces/api/userSettingsInterfaces.ts index a3e132d65..d0a0ff9f8 100644 --- a/server/interfaces/api/userSettingsInterfaces.ts +++ b/server/interfaces/api/userSettingsInterfaces.ts @@ -2,6 +2,7 @@ import { NotificationAgentKey } from '../../lib/settings'; export interface UserSettingsGeneralResponse { username?: string; + email?: string; discordId?: string; locale?: string; region?: string; diff --git a/server/routes/user/usersettings.ts b/server/routes/user/usersettings.ts index 0c53c94a0..a05311a22 100644 --- a/server/routes/user/usersettings.ts +++ b/server/routes/user/usersettings.ts @@ -51,6 +51,7 @@ userSettingsRoutes.get<{ id: string }, UserSettingsGeneralResponse>( return res.status(200).json({ username: user.username, + email: user.email, discordId: user.settings?.discordId, locale: user.settings?.locale, region: user.settings?.region, @@ -120,6 +121,7 @@ userSettingsRoutes.post< user.settings.locale = req.body.locale; user.settings.region = req.body.region; user.settings.originalLanguage = req.body.originalLanguage; + user.email = req.body.email ?? user.email; } await userRepository.save(user); @@ -130,6 +132,7 @@ userSettingsRoutes.post< locale: user.settings.locale, region: user.settings.region, originalLanguage: user.settings.originalLanguage, + email: user.email, }); } catch (e) { next({ status: 500, message: e.message }); diff --git a/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx b/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx index ba01428f9..5c6e4d2d0 100644 --- a/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx +++ b/src/components/UserProfile/UserSettings/UserGeneralSettings/index.tsx @@ -30,6 +30,7 @@ const messages = defineMessages({ general: 'General', generalsettings: 'General Settings', displayName: 'Display Name', + email: 'Email', save: 'Save Changes', saving: 'Saving…', mediaServerUser: '{mediaServerName} User', @@ -121,6 +122,7 @@ const UserGeneralSettings: React.FC = () => { { try { await axios.post(`/api/v1/user/${user?.id}/settings/main`, { username: values.displayName, + email: values.email, discordId: values.discordId, locale: values.locale, region: values.region, @@ -245,6 +248,24 @@ const UserGeneralSettings: React.FC = () => { )} +
+ +
+
+ +
+ {errors.email && touched.email && ( +
{errors.email}
+ )} +
+