ShestakovAndrew / ReactStudy

Изучение основ React JS
0 stars 0 forks source link

CR-1 #2

Open DenisovVladimir opened 1 year ago

DenisovVladimir commented 1 year ago

Вынеси callback в отдельную функцию, сейчас она одна в объявлении редюсера, а может быть 15. Можно пока в этом же файле, но лучше в отдельный. +легче будет покрыть тестами Стоит добавить типы к аргументам https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/model/todoSlice.ts#L17

На экспорт, может быть нужен снаружи https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/todoItem/TodoItem.tsx#L4

Перенос строки https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/DropDown.module.css#L4

Перенос строки https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/DropDown.module.css#L21

В отдельную папку по названию компонента https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/DropDown.tsx#L5

У него есть какой-то тип, погугли. Any - это плохо https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/DropDown.tsx#L11

выбранный статус в модель и в state. То, что у тебя сейчас только dropdown пользуется состоянием - частный случай. У тебя будет navBar использовать это же самое состояние при смене страницы https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/DropDown.tsx#L8

плохой вариант сравнивать с содержимым. Сегодня у тебя оно одно, завтра у тебя добавятся 3 языка и на каждом содерживмое будет разным. Давай всё таки не через один обработчик. Добавь дополнительный для клика по конкретному критерию. Не подумал про это, когда говорил про единый обработчик. Альтернативой является хранить ссылку на каждый пункт меню, но выглядит очень костыльно. Лучше обработчик в который ты будешь передавать enum приоритета, по которому тыкнули https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/DropDown.tsx#L14

Key не нужен? https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/DropDown.tsx#L43

Выглядит не как попсы, а как модель. https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/navigationBar/NavigationBar.tsx#L7

Нужен action для всего этого https://github.com/ShestakovAndrew/ReactStudy/blob/ac3bd7c24e3eb3f8a19b4a4af86d3fcaa08eb278/todo-list-project/src/pages/todoList/navigationBar/NavigationBar.tsx#L10

DenisovVladimir commented 1 year ago
enum TodoPriority {
    Low,
    Medium,
    Hight
}

...
onPriorityClick = (priority: TodoPriority) => {
    dispatch(changePriorityAction(priority))
    ...
}
...
return (
    <ul>
        <li onClick={() => onPriorityClick(TodoPriority.Low)}>Низкий</li>
        ...
    </ul>
)