Skip to content

Feature/yh 1915#1249

Open
artem-Tolmachev wants to merge 5 commits into
developfrom
feature/YH-1915
Open

Feature/yh 1915#1249
artem-Tolmachev wants to merge 5 commits into
developfrom
feature/YH-1915

Conversation

@artem-Tolmachev

Copy link
Copy Markdown
Collaborator

Что сделано

  • Добавлен компонент SortTasksByField для выбора поля сортировки
  • Добавлен компонент SortTasksByOrder для выбора направления (ASC/DESC)
  • Обновлены хуки и фильтры для поддержки параметров sortBy и sortOrder
  • Добавлены переводы на русский и английский языки

Дополнительные исправления

  • Исправлен импорт в QuestionsFilters.tsx (ошибка pre-commit hook):
    • Было: import { TopicFilterField } from '@/entities/topic/ui/TopicFilterField/TopicFilterField'
    • Стало: import { TopicFilterField } from '@/entities/topic'

@artem-Tolmachev artem-Tolmachev added review the task is currently being reviewed feature New functionality or improvements labels May 22, 2026
@artem-Tolmachev artem-Tolmachev changed the base branch from main to develop May 22, 2026 10:47
Comment thread src/shared/libs/app/types.ts Outdated
@@ -1,5 +1,5 @@
export type SortOrder = 'ASC' | 'DESC';

export type SortBy = 'name' | 'difficulty' | 'createdAt' | 'updatedAt';

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Неправильно выносить типы относящиеся строго к задачам в shared. Перенеси туда же откуда ты вынес
Если ты делал по примеру SortOrder, то этот тип универсальный, так как других значений не будет. А название полей отличается у каждой сущности

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил

value?: string;
}

export const SortFilterSection = <T extends string>({value, onChange, data, title }: SortFilterSectionProps<T>) => {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Не вижу смысла создавать этот компонент фактически ради 1 функции обработчика. Так что предлагаю удалить его

onChangeSortField,
onChangeSortOrder,
} = useTasksFilters({ page: 1 });

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Не добавлены фильтры новые в запрос

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил

onChangeLangIds={onChangeLangIds}
onChangeCategory={onChangeCategory}
onChangeCompanyId={onChangeCompanyId}
onChangeSortField={onChangeSortField}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Не вижу чтобы в задаче говорилось добавлять фильтры на эту страницу

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил

<TaskLanguagesFilter selectedLangIds={langIds} onChangeLangIds={onChangeLangIds} />
<TaskCategoryFilterList onChooseCategory={onChangeCategory} selectedCategory={category} />
<PublicCompanySelect value={companyId} onChange={onChangeCompanyId} />
<SortTasksByField value={filters.sortBy} onChangeSortField={onChangeSortField} />

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Эти фильтры нужны только в админке

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил

active: boolean;
};

export default function prepareSortFilterData<T extends string>({data, value, t}: FilterDataProps<T>): PreparedSortFilterItem<T>[] {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Дефольтный экспорт мы не используем. Исключение - lazy компонент так как по другому там никак
Плюс не вижу смысл выносить эту функцию отдельно. Слишком много всего тут ненужного включая типы
Предлагаю удалить этот файл

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил

@@ -0,0 +1,12 @@
import { Tasks } from '@/shared/config';

export const SORT_ORDER_DATA = [

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Вынос этих данных тоже считаю не очень удачным решением, тем более в таком виду
Ты создаешь массив с полями, которые потом меняешь. Слишком много ненужных действий
К тому же тут нет нормальной типизации. as const здесь некорректен
Предлагаю не выносить эти данные тут

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Вернул обратно в компонент


export const SortTasksByField = ({ onChangeSortField, value }: SortTasksFieldProps) => {
const { t } = useTranslation(i18Namespace.task);
const preparedData = prepareSortFilterData({data: SORT_FIELDS_DATA, value, t})

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Учитывая комментарии о prepareSortFilterData и SortFilterSection, предлагаю сделать по аналогии так, как реализовано тут QuestionSortByFieldFilter. Учитывая что я указал это в задаче
Не зачем городить что-то новое, если уже есть готовый пример

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Удалил prepareSortFilterData и SortFilterSection


export const SortTasksByOrder = ({ onChangeSortOrder, value }: SortTasksByOrderProps) => {
const { t } = useTranslation(i18Namespace.task);
const preparedData = prepareSortFilterData({data: SORT_ORDER_DATA, value, t})

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[ISSUE] - Тут таке как и в соседнем компоненте

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил

@PerelomaDenis PerelomaDenis added comments Code improvements are required and removed review the task is currently being reviewed labels May 23, 2026
@artem-Tolmachev artem-Tolmachev added the review the task is currently being reviewed label May 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comments Code improvements are required feature New functionality or improvements review the task is currently being reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants