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 {
username?: string;
email?: string;
discordId?: string;
locale?: string;
region?: string;

View File

@@ -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 });

View File

@@ -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 = () => {
<Formik
initialValues={{
displayName: data?.username,
email: data?.email,
discordId: data?.discordId,
locale: data?.locale,
region: data?.region,
@@ -136,6 +138,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 = () => {
)}
</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">
<label htmlFor="discordId" className="text-label">
{intl.formatMessage(messages.discordId)}