fix(platform): keep vehicle list source filter
This commit is contained in:
@@ -20,7 +20,9 @@ export default function App() {
|
||||
const [analysisVin, setAnalysisVin] = useState(initialVehicleKey);
|
||||
const [activeProtocol, setActiveProtocol] = useState(initialRoute.protocol ?? '');
|
||||
const [historyTab, setHistoryTab] = useState(initialRoute.filters?.tab ?? 'location');
|
||||
const [vehicleFilters, setVehicleFilters] = useState<Record<string, string>>(initialRoute.filters ?? {});
|
||||
const [vehicleFilters, setVehicleFilters] = useState<Record<string, string>>(
|
||||
initialRoute.page === 'vehicles' ? vehicleFiltersFromRoute(initialRoute) : {}
|
||||
);
|
||||
const [qualityFilters, setQualityFilters] = useState<Record<string, string>>(
|
||||
initialRoute.page === 'quality' ? qualityFiltersFromRoute(initialRoute) : {}
|
||||
);
|
||||
@@ -89,7 +91,7 @@ export default function App() {
|
||||
}
|
||||
}
|
||||
if (route.page === 'vehicles') {
|
||||
setVehicleFilters(route.filters ?? {});
|
||||
setVehicleFilters(vehicleFiltersFromRoute(route));
|
||||
}
|
||||
if (route.page === 'quality') {
|
||||
setQualityFilters(qualityFiltersFromRoute(route));
|
||||
@@ -122,18 +124,27 @@ export default function App() {
|
||||
replaceQualityHash(qualityFilters);
|
||||
return;
|
||||
}
|
||||
replaceHash(page, undefined, undefined, page === 'vehicles' ? vehicleFilters : undefined);
|
||||
if (page === 'vehicles') {
|
||||
replaceVehicleHash(vehicleFilters);
|
||||
return;
|
||||
}
|
||||
replaceHash(page);
|
||||
};
|
||||
|
||||
const openVehicles = (filters: Record<string, string> = {}) => {
|
||||
setVehicleFilters(filters);
|
||||
setActivePage('vehicles');
|
||||
replaceHash('vehicles', undefined, undefined, filters);
|
||||
replaceVehicleHash(filters);
|
||||
};
|
||||
|
||||
const updateVehicleFilters = (filters: Record<string, string> = {}) => {
|
||||
setVehicleFilters(filters);
|
||||
replaceHash('vehicles', undefined, undefined, filters);
|
||||
replaceVehicleHash(filters);
|
||||
};
|
||||
|
||||
const replaceVehicleHash = (filters: Record<string, string> = {}) => {
|
||||
const { keyword, protocol, ...restFilters } = filters;
|
||||
replaceHash('vehicles', keyword, protocol, restFilters);
|
||||
};
|
||||
|
||||
const replaceQualityHash = (filters: Record<string, string> = {}) => {
|
||||
@@ -247,6 +258,14 @@ function qualityFiltersFromRoute(route: ReturnType<typeof parseAppHash>): Record
|
||||
};
|
||||
}
|
||||
|
||||
function vehicleFiltersFromRoute(route: ReturnType<typeof parseAppHash>): Record<string, string> {
|
||||
return {
|
||||
...(route.keyword ? { keyword: route.keyword } : {}),
|
||||
...(route.protocol ? { protocol: route.protocol } : {}),
|
||||
...(route.filters ?? {})
|
||||
};
|
||||
}
|
||||
|
||||
function serviceStatusFromOverview(overview: VehicleServiceOverview): VehicleServiceStatus {
|
||||
const sourceCount = overview.sourceCount;
|
||||
const onlineSourceCount = overview.onlineSourceCount;
|
||||
|
||||
Reference in New Issue
Block a user