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

Fix/contacts - Исправление раздела "Контакты" #206

Merged
merged 17 commits into from
Jun 14, 2024

Conversation

IvannaBalanyuk
Copy link
Contributor

@IvannaBalanyuk IvannaBalanyuk commented Jun 12, 2024

  • Реализовала получение данных о контактах с бэка.
    Коллекция для тестирования:
    ya-pomogau-db.contacts.json

  • Редактирование доступно только для root-администратора (обеспечено сокрытием блоков от остальных пользователей + дублирующая проверка на этапе сабмита).

  • Не нашла ручку для редактирования контактов (есть метод сервиса, но нет соответствующего метода в контроллере, скрины ниже), поэтому реализовала на фронте пока в черновом варианте.

В ContactsService есть метод для редактирования:

image

В контроллере только GET-метод для роута /contacts:

image

  • Вёрстку поправила, адаптивность обеспечила.

@IvannaBalanyuk IvannaBalanyuk self-assigned this Jun 12, 2024
@IvannaBalanyuk IvannaBalanyuk linked an issue Jun 12, 2024 that may be closed by this pull request
@IvannaBalanyuk IvannaBalanyuk changed the title Fix/contacts Fix/contacts - Исправление раздела "Контакты" Jun 12, 2024
@kspshnik
Copy link
Collaborator

kspshnik commented Jun 12, 2024

В контроллере только GET-метод для роута /contacts:

Создал задачу #99 в репозитории бэкенда.

Copy link
Collaborator

@INextYP INextYP left a comment

Choose a reason for hiding this comment

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

Привет! Хорошая работа!

По верстке есть ещё косяк на этой странице
image

src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
const [userData, setUserData] = React.useState({
userEmail: 'www@yandex.ru',
userVKLink: 'https://vk.com/me2help',
const [contactsData, setContactsData] = useState<TContacts>({
Copy link
Collaborator

Choose a reason for hiding this comment

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

По-хорошему, тут должен быть хук useForm

Copy link
Contributor Author

Choose a reason for hiding this comment

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

  • переписала код с использованием хука useForm

Не смогла решить такую проблему - при обновлении страницы инпуты опустошаются и значения снова отображаются только после ререндера (например, после нажатия на кнопку редактирования или перехода между вкладками)

Copy link
Collaborator

Choose a reason for hiding this comment

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

  • переписала код с использованием хука useForm

Не смогла решить такую проблему - при обновлении страницы инпуты опустошаются и значения снова отображаются только после ререндера (например, после нажатия на кнопку редактирования или перехода между вкладками)

Проблема актуальна?

Copy link
Contributor Author

@IvannaBalanyuk IvannaBalanyuk Jun 13, 2024

Choose a reason for hiding this comment

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

Да, корректно в этом плане работало только когда обращение за данными на бэк и setContsctsData были обернуты в UseEffect (по отдельности). Тогда при обновлении происходил запрос к бэку и после этого отрабатывал второй useEffect (с setContsctsData), так как у него в зависимостях были данные, получаемые с бэка.

Может из хука useForm ёще setValues возвращать?

Вот так всё работает корректно:

image

Copy link
Collaborator

@INextYP INextYP Jun 13, 2024

Choose a reason for hiding this comment

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

Да, так в принципе можно сделать, только вынести за пределы компонента:

const initialContactsValues = {
    email: null,
    socialNetwork: null,
  }

export function ContactsPage() {
...
,...
....
const { values, handleChange, isValid, setValues } = useForm<TContacts>(initialContactsValues);

Чуть позже мы перейдем на нормальный хук)

Как исправишь - пингани, я апрувну

Copy link
Collaborator

Choose a reason for hiding this comment

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

Да, корректно в этом плане работало только когда обращение за данными на бэк и setContsctsData были обернуты в UseEffect (по отдельности). Тогда при обновлении происходил запрос к бэку и после этого отрабатывал второй useEffect (с setContsctsData), так как у него в зависимостях были данные, получаемые с бэка.

@INextYP слушай, а может просто завести слайс system в хранилище, и туда прям на монтировании App затягивать конфиденциальность, контакты и всё прочее такое?

А потом по WS сделаем апдейты при изменении.

src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
src/pages/contacts/contacts.tsx Outdated Show resolved Hide resolved
@IvannaBalanyuk
Copy link
Contributor Author

вынести за пределы компонента

@INextYP , готово)

  • вынесла начальное значение за пределы компонента
  • добавила возврат setValue из useForm
  • поместила в useEffect присвоение values значений, полученных с бэка

Copy link
Collaborator

@INextYP INextYP left a comment

Choose a reason for hiding this comment

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

Отлично;)

@INextYP INextYP merged commit 8cd452d into develop Jun 14, 2024
@INextYP INextYP deleted the fix/contacts branch July 8, 2024 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Исправление раздела "Контакты"
3 participants