Merge pull request #128 from NicolaiVdS/feature-add-email-field
feat: add email field in the profile settings
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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 });
|
||||||
|
|||||||
@@ -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)}
|
||||||
|
|||||||
Reference in New Issue
Block a user