Merge pull request #128 from NicolaiVdS/feature-add-email-field

feat: add email field in the profile settings
This commit is contained in:
Fallenbagel
2022-06-05 21:53:53 +05:00
committed by GitHub
3 changed files with 25 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ import { NotificationAgentKey } from '../../lib/settings';
export interface UserSettingsGeneralResponse { export interface UserSettingsGeneralResponse {
username?: string; username?: string;
email?: string;
discordId?: string; discordId?: string;
locale?: string; locale?: string;
region?: string; region?: string;

View File

@@ -51,6 +51,7 @@ userSettingsRoutes.get<{ id: string }, UserSettingsGeneralResponse>(
return res.status(200).json({ return res.status(200).json({
username: user.username, username: user.username,
email: user.email,
discordId: user.settings?.discordId, discordId: user.settings?.discordId,
locale: user.settings?.locale, locale: user.settings?.locale,
region: user.settings?.region, region: user.settings?.region,
@@ -120,6 +121,7 @@ userSettingsRoutes.post<
user.settings.locale = req.body.locale; user.settings.locale = req.body.locale;
user.settings.region = req.body.region; user.settings.region = req.body.region;
user.settings.originalLanguage = req.body.originalLanguage; user.settings.originalLanguage = req.body.originalLanguage;
user.email = req.body.email ?? user.email;
} }
await userRepository.save(user); await userRepository.save(user);
@@ -130,6 +132,7 @@ userSettingsRoutes.post<
locale: user.settings.locale, locale: user.settings.locale,
region: user.settings.region, region: user.settings.region,
originalLanguage: user.settings.originalLanguage, originalLanguage: user.settings.originalLanguage,
email: user.email,
}); });
} catch (e) { } catch (e) {
next({ status: 500, message: e.message }); next({ status: 500, message: e.message });

View File

@@ -30,6 +30,7 @@ const messages = defineMessages({
general: 'General', general: 'General',
generalsettings: 'General Settings', generalsettings: 'General Settings',
displayName: 'Display Name', displayName: 'Display Name',
email: 'Email',
save: 'Save Changes', save: 'Save Changes',
saving: 'Saving…', saving: 'Saving…',
mediaServerUser: '{mediaServerName} User', mediaServerUser: '{mediaServerName} User',
@@ -121,6 +122,7 @@ const UserGeneralSettings: React.FC = () => {
<Formik <Formik
initialValues={{ initialValues={{
displayName: data?.username, displayName: data?.username,
email: data?.email,
discordId: data?.discordId, discordId: data?.discordId,
locale: data?.locale, locale: data?.locale,
region: data?.region, region: data?.region,
@@ -136,6 +138,7 @@ const UserGeneralSettings: React.FC = () => {
try { try {
await axios.post(`/api/v1/user/${user?.id}/settings/main`, { await axios.post(`/api/v1/user/${user?.id}/settings/main`, {
username: values.displayName, username: values.displayName,
email: values.email,
discordId: values.discordId, discordId: values.discordId,
locale: values.locale, locale: values.locale,
region: values.region, region: values.region,
@@ -245,6 +248,24 @@ const UserGeneralSettings: React.FC = () => {
)} )}
</div> </div>
</div> </div>
<div className="form-row">
<label htmlFor="email" className="text-label">
{intl.formatMessage(messages.email)}
</label>
<div className="form-input-area">
<div className="form-input-field">
<Field
id="email"
name="email"
type="text"
placeholder={user?.email}
/>
</div>
{errors.email && touched.email && (
<div className="error">{errors.email}</div>
)}
</div>
</div>
<div className="form-row"> <div className="form-row">
<label htmlFor="discordId" className="text-label"> <label htmlFor="discordId" className="text-label">
{intl.formatMessage(messages.discordId)} {intl.formatMessage(messages.discordId)}