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

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

View File

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

View File

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

View File

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

View File

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