много багфикса

This commit is contained in:
Professional 2025-05-25 01:35:58 +07:00
parent e858568e9b
commit 3d178ed486
5 changed files with 13 additions and 15 deletions

View File

@ -18,9 +18,9 @@ const registerUser = async (req, res, next) => {
console.log('Начало регистрации пользователя с email:', email);
if (!name || !email || !password) {
if (!name || !email || !password || !dateOfBirth) {
res.status(400);
throw new Error('Пожалуйста, заполните все обязательные поля: имя, email и пароль.');
throw new Error('Пожалуйста, заполните все обязательные поля: имя, email, пароль и дату рождения.');
}
const normalizedEmail = email.toLowerCase();

View File

@ -18,12 +18,11 @@ const updateUserProfile = async (req, res, next) => {
// Обновляем только те поля, которые пользователь может изменять
user.name = req.body.name || user.name;
// Обрабатываем dateOfBirth, учитывая null и пустые строки
if (req.body.dateOfBirth === null || req.body.dateOfBirth === '') {
user.dateOfBirth = undefined; // Удаляем поле, если оно пустое или null
} else if (req.body.dateOfBirth) {
// Обрабатываем dateOfBirth, но не позволяем удалять её
if (req.body.dateOfBirth && req.body.dateOfBirth !== '') {
user.dateOfBirth = req.body.dateOfBirth;
}
// Примечание: Мы больше не позволяем устанавливать dateOfBirth в undefined
// Обрабатываем gender, учитывая null и пустые строки
if (req.body.gender === null || req.body.gender === '') {

View File

@ -27,6 +27,7 @@ const userSchema = new mongoose.Schema(
},
dateOfBirth: {
type: Date,
required: [true, 'Пожалуйста, укажите дату рождения'],
},
gender: {
type: String,

View File

@ -66,13 +66,6 @@
<p v-if="currentUserAge">
Ваш возраст: {{ currentUserAge }} лет
</p>
<button
type="button"
class="default-range-btn"
@click="setDefaultAgeRange"
>
Установить ±2 года от моего возраста
</button>
</div>
</section>

View File

@ -1403,8 +1403,9 @@ onUnmounted(() => {
.avatar-section {
display: flex;
align-items: flex-start;
gap: 1rem;
gap: 1.5rem; /* увеличиваем отступ между элементами */
margin-bottom: 1rem;
flex-wrap: wrap; /* позволяет кнопке переноситься на новую строку при необходимости */
}
.avatar-container {
@ -1480,6 +1481,7 @@ onUnmounted(() => {
display: flex;
flex-direction: column;
gap: 0.3rem;
max-width: calc(100% - 175px); /* ограничиваем ширину, чтобы оставить место для кнопки */
}
.user-main-info {
@ -1507,6 +1509,7 @@ onUnmounted(() => {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%; /* заставляем почту занимать всю доступную ширину */
}
.user-badges {
@ -1689,11 +1692,12 @@ onUnmounted(() => {
.tabs-container {
display: flex;
border-bottom: 1px solid rgba(0, 0, 0, 0.08);
width: 100%;
}
.tab-btn {
flex: 1;
padding: 0.8rem 1rem;
padding: 0.8rem 0.5rem;
text-align: center;
font-size: 0.85rem;
font-weight: 500;
@ -1707,6 +1711,7 @@ onUnmounted(() => {
align-items: center;
justify-content: center;
gap: 0.4rem;
width: 33.333%; /* Явно задаём ширину каждой вкладке */
}
.tab-btn.active {