/** * Возвращает уникальные группы фильтров (по `group.title`), отсортированные по `group.order`. * @param filters - список фильтров, у каждого поле `group` */ export function getSortedFilterGroups( filters: { group: G }[], ): G[] { const uniqueTitles = [...new Set(filters.map(item => item.group.title))]; return uniqueTitles .map(title => filters.find(filter => filter.group.title === title)?.group) .filter((group): group is G => Boolean(group)) .sort((a, b) => a.order - b.order); }