import type { RouteLocationNormalizedLoaded } from 'vue-router'; import type { INavLinkItem, ISelectItem } from '../../types'; import { getSelectedQuery } from '../utils/get-selected-query'; /** * Возвращает query-объект для диапазонного фильтра (min/max) на основе текущего маршрута. * @param route - текущий маршрут Vue Router * @param items - список элементов фильтра * @param minKey - ключ минимального значения в query * @param maxKey - ключ максимального значения в query */ export function getMultipleQuery ( route: RouteLocationNormalizedLoaded, items: ISelectItem[] | INavLinkItem[], minKey: string, maxKey: string, ) { const query = getSelectedQuery(route, items); if (Array.isArray(query)) { return { [minKey]: query[0], [maxKey]: query[1], }; } else if (query === items[items.length - 1]?.query) { return { [minKey]: query, }; } else { return { [maxKey]: query, }; } }