Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SOK-22] User profile page #13

Merged
merged 26 commits into from
Oct 3, 2024
Merged

[SOK-22] User profile page #13

merged 26 commits into from
Oct 3, 2024

Conversation

VladToby
Copy link
Collaborator

@VladToby VladToby commented Oct 1, 2024

### Какую задачу решаем

Скриншоты/видяшка (если есть)

Снимок экрана 2024-10-01 в 09 46 44

TBD (если есть)

gloginov and others added 17 commits September 27, 2024 10:48
+add backendApi
+create axios interceptors
+add userReducer and create function for use yandex api
+add env
*update SignIn.tsx for use backendApi
*update SignUp.tsx for use backendApi
*format and lint
*update yarn.lock
*fix lint error
*add types from yandex api for user
*rename UserReducer to AuthReducer
*rename methods in auth-reducer.ts
-remove origin host from methods in auth-reducer.ts because base url set in backendApi
Общие доработки:
 - Верстка шапки
 - Компонент заголовка
 - Перенос лайоутов в отдельные папки
 - PublicLayout
 - Добавил систему гридов
 - Доработки базовых стилей
Сам лайоут написал внутри страницы.
# Conflicts:
#	packages/client/src/app/App.tsx
 с подложкой переименовал в СustomPageTitle
 - Добавил tag main в компонент PublicLayout
Copy link
Owner

@Timur233 Timur233 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет! Классно придумал как сделать редактирование информации о пользователе 👍
У меня много правок по верстке и есть предложение добавить компонент для уведомлений пользователя. Я сейчас накидаю дизайн, если ты занят могу сам компонент сверстать, ты просто к себе затянешь.

Комментов много, если что пиши в тг.

alt?: string
}

export const Image = (props: ImageProps) => {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Честно говоря, не понимаю зачем нужен этот компонент, выглядит как будто проще написать img

import { Image } from '@/components/ui/Image/Image'
import { Button } from '@/components/ui/Button/Button'

export const AVATAR_SRC = 'https://ya-praktikum.tech/api/v2/resources'
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эту константу стоит вынести в env файл, обсуди с Георгием.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перенёс

src: string
containerClassName?: string
imageClassName?: string
onAvatarChange: (file: File) => void
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В этом компоненте ничего больше нельзя поменять, я думаю проще переименовать onAvatarChange > onChange

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поправил

packages/client/src/components/ui/Avatar/Avatar.tsx Outdated Show resolved Hide resolved
<div
className={`${containerClassName}`}
onMouseEnter={() => setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кажется ты чуть-чуть усложнил)) Как по мне проще сделать так:

.avatar-editor {
&::hover {
.avatar-editor__overlay {
display: block;
}
}
}

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть такое)
Исправил

flex-direction: column;
width: 90%;
max-width: 400px;
margin: 0 auto;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перед кнопками нужен отступ, как в макете

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поправил

}

&__edit-button {
margin-bottom: 2rem;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут отступ больше чем в макете

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поправил

&__change-password {
display: flex;
flex-direction: column;
margin-bottom: 2rem;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут тоже отступ виликоват

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поправил

}
}

button {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я что-то не нашел этот элемент на странице

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправил

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По верстке у тебя получилась большая, сложная вложенность, плюс можно использовать систему гридов из проекта, да и в целом уменьшить количество кода. Я накидаю вариант, закреплю в этом сообщении.
Profile.tsx.zip

Copy link
Collaborator

@gloginov gloginov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть крутые решения над которыми задумался

packages/client/src/pages/Profile/Profile.scss Outdated Show resolved Hide resolved
packages/client/src/pages/Profile/Profile.scss Outdated Show resolved Hide resolved
packages/client/src/pages/Profile/Profile.scss Outdated Show resolved Hide resolved
packages/client/src/pages/Profile/Profile.tsx Outdated Show resolved Hide resolved
packages/client/src/pages/Profile/Profile.tsx Outdated Show resolved Hide resolved
Copy link
Collaborator

@shamemask shamemask left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Попробовал, работает с апи яндекса, отображение симпотичное!

Copy link
Owner

@Timur233 Timur233 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Получилось отлично!
Единственное, нужно ограничить ширину инпута, при редактировании информации на странице профиля)

border-radius: 20px;
background-color: rgba(0, 0, 0, 0.5);
transition: background-color 0.3s ease;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне кажется, что такие цвета лучше вынести в константы

const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {
const file = event.target.files?.[0]
if (file) {
const fileUrl = URL.createObjectURL(file)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Логику с генерацией url я бы вынес в отдельный хук

@@ -34,19 +34,18 @@ export default function PrivateLayout() {
}, [])

// useEffect(() => {
// console.log(user)
// console.log(user)
// }, [user])
Copy link

@kyzinatra kyzinatra Oct 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лишние комментарии стоит убрать

Copy link

@kyzinatra kyzinatra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Отличная работа! Хорошая верстка страниц для пользователя. Понравилось, что вы выделяете Интпуты в отдельные компоненты. В целом, хорошо организована логика в компонентах. Так что ваша работа принята! Желаю успехов в дальнейшем обучении!

@VladToby VladToby merged commit af09e99 into develop Oct 3, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants