1. Нет ни еслинта, ни преттиера.
2. Нет тестов.
3. Все коммиты без названий.
4. Почти все комментарии на русском. Да и большая часть описывает банальные вещи.
state[0] = state[index] // запись нового выбора на первое место
state.splice(index, 1) // удаление нового выбора с предыдущей позиции в массиве
5. Использование комментариев для функций вместо жсдока.
6. Мне лень разбираться, но sort тут не подходит разве?
spoilerfor (let i = 1; i < state.length; i++) { // сортировка от меньшего к большему по первому числу для возврата предыдущего выбора на правильную позицию
if (state[i].split(' ')[0] > beforeSelected.split(' ')[0]) {
state.splice(i, 0, beforeSelected) // запись предыдущего выбора на правильную позицию
break
} else if (state[i].split(' ')[0] === beforeSelected.split(' ')[0]) { // если первые числа равны проверка по второму числу
if (state[i].split(' ')[2] >= beforeSelected.split(' ')[2]) {
state.splice(i, 0, beforeSelected) // запись предыдущего выбора на правильную позицию
break
}
}
if (i === state.length - 1) { // если предыдущий выбор оказалася наибольшим
state.push(beforeSelected)
break
}
}
7. Не используй деструктуризацию в аргументе функции, если используешь параметр лишь раз.
spoilerconst resize = ({ param }) => { // изменение select
...
}
Это равносильно:
const resize = (obj) => { // изменение select
const param = obj.param;
...
}
8. Все тексты захардкожены прямо в коде.
9. Питон-стайл (где точки с запятой?).
10. Почему в папка types лежат компоненты, а не типы? Это, конечно, жс, а не тс, но сути это не меняет.
Короче, это так, беглый осмотр.