Skip to content

Lecture 5#333

Open
Pawlord wants to merge 7 commits intoylabio:lecture-5from
Pawlord:lecture-5
Open

Lecture 5#333
Pawlord wants to merge 7 commits intoylabio:lecture-5from
Pawlord:lecture-5

Conversation

@Pawlord
Copy link
Copy Markdown

@Pawlord Pawlord commented Apr 17, 2025

  1. Долго думал над рендером комментариев, сначала пробовал использовать обе функции listToTree и treeToList, в конечном итоге когда фиксил отображение окна комментариев под всеми ветками если это ответ пришел к выводу что лучше будет просто использовать форматирование одной функцией listToTree и потом внутри компонента обращаться к children и делать рекурсивный рендер, потому что если пытаться сделать как с категориями функция эта в лекции работала что там колбэк передается и внутри treeToList у нас увеличивался level, то там не совсем корректно это работало со списком комментариев, там level добавлялся только item который не внутри children ну либо я что то не правильно сделал, но пока реализовано так.
  2. Запросы на сервер описаны в редьюсере комментариев, там 3 функции, одна загружает коммнетарии, две другие отправляют запрос либо на создание комментария к товару, либо на ответ к комментарию.
  3. Над сервисом переводчика пришлось подумать хорошо, сначала думал тоже через редакс делать, потом пришел к выводу что через него тогда придется слишком усложнять себе жизнь, тем более в задании было написано что функция translate должна быть МЕТОДОМ сервиса, т.е. уже подразумевается класс.
    Создал отдельную папку services чтобы как то отделить сервисы от стора. Перенес все туда, обновил хук, насчет запроса на сервер я не до конца понял где использовать хук setHeaders по этому решил слегка вшить значение lang из сервиса I18n в метод request чтобы он при запросе проверял язык и если он изменился то делать запрос с новым языком. Также внутри Main прописал lang зависимостью в хук useInit чтобы повторно выполнялся запрос на сервер при смене языка.
    Компоненты фильтрации не переводил, в задании не написано что их надо менять поэтому от греха подальше не трогал их.

@Pawlord
Copy link
Copy Markdown
Author

Pawlord commented Apr 17, 2025

И еще, по поводу выбора архитектурного решения, ну про то что удобнее использовать методы класса и сам класс, учитывая что у нас в service.js создается экземпляр каждого сервиса, это понятно. По поводу улучшений, честно говоря тяжело сказать, уверен 100% что есть способы реализовать намного лучше. Банально это мб использовать какую то библиотеку переводов, впринципе лично на мой взгляд взаимодействие всех компонентов и логика сервисов и т.д. круто реализована, но я тут пожалуй не очень много знаю в связи с опытом :)

@VladimirShestakov
Copy link
Copy Markdown
Collaborator

Закинь любой новый комит в пулл-реквест, пожалуйста.

@Pawlord
Copy link
Copy Markdown
Author

Pawlord commented Apr 18, 2025

Закинь любой новый комит в пулл-реквест, пожалуйста.

Отправил

@Pawlord
Copy link
Copy Markdown
Author

Pawlord commented Apr 19, 2025

  1. Крашилось все из-за неисправленной переменной t;
  2. Отступы поправил, в последствии понял, что проблема в самом рендере комментариев, отрефакторил полностью логику вывода комментариев, теперь компонент Comment не рекурсивный, а просто занимается тем что выводит ui, рекурсию обрабатывает CommentsList;
  3. Добавил скролл к форме комментария;
  4. Обновил переводы;
  5. Поправил отступ формы, для будущего комментария;
  6. Комменты некоторые не выводились в бесконечной загрузке были, потому что логика условия загрузки было не от waiting в redux, а тупо от длины массива приходящего с апи, я это видимо как заглушку делал и забыл убрать);
  7. Ну и вместе с этим косяком поправил вывод общего количества комментариев;
  8. Предотвращение слишком сильной вложенности реализовал через отслеживания уровня, если уровень больше 8, то отступ будет отсчитываться всегда от 7.

@Pawlord
Copy link
Copy Markdown
Author

Pawlord commented Apr 21, 2025

  1. Ширина комментария ограничивается свойством word-wrap: break-words у родителя;
  2. Пробелы в пустом комментарии теперь тоже учитываются и для отображения ошибки пустого комментария console.log поменял на alert чтобы видно было

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.

2 participants