kupos-ui-components-lib
Version:
A reusable UI components package
481 lines (480 loc) • 31.3 kB
JavaScript
import React from "react";
import commonService from "../../utils/CommonService";
import ServiceFilter from "./ServiceFilter";
const FilterBarDesktop = ({ t, serviceList, setServiceList, allSchedules, showReturnTripModal, filterArrData, isBlankTicket, operatorId, filtersArray, setFiltersArray, metaData, busTerminals, setTypes, colors, icons, translation, isTrain, isPeru, }) => {
const filterBy = (filters) => {
console.log("🚀 ~ filterBy ~ filters:", filters);
try {
let routes = allSchedules;
let filteredRoutes = commonService.copyObject(routes);
for (let fil of filters) {
if (fil.type == "train_type") {
let activeOptions = fil.options.filter((it) => it.active);
filteredRoutes = filteredRoutes.filter((it) => {
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
if (f.value == "regular" &&
it.train_type_label == "Tren Regular") {
return true;
}
else if (f.value == "express" &&
it.train_type_label == "Tren Express (Nuevo)") {
return true;
}
}
}
else
return true;
});
}
if (fil.type == "time") {
let activeOptions = fil.options.filter((it) => it.active);
filteredRoutes = filteredRoutes.filter((it) => {
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
if (f.value == "sunrise" && it.dep_time < "06:00") {
return true;
}
else if (f.value == "morning" &&
it.dep_time >= "06:00" &&
it.dep_time < "12:00") {
return true;
}
else if (f.value == "sunset" &&
it.dep_time >= "12:00" &&
it.dep_time < "18:00") {
return true;
}
else if (f.value == "night" && it.dep_time >= "18:00") {
return true;
}
}
}
else
return true;
});
}
if (fil.type == "special_departure") {
let activeOptions = fil.options.filter((it) => it.active);
filteredRoutes = filteredRoutes.filter((it) => {
const labelId = it.boarding_stages.split("|")[0];
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
if (labelId == f.value) {
return true;
}
}
else
return false;
}
else
return true;
});
}
if (fil.type == "tipo") {
let activeOptions = fil.options.filter((it) => it.active);
filteredRoutes = filteredRoutes.filter((it) => {
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
if (Object.keys(it.pet_seat_info).length > 0 &&
f.value === "Pet Friendly") {
return true;
}
if (it.is_direct_trip && f.value === "Servicio Directo") {
return true;
}
if (it.is_change_ticket && f.value === "Pasaje flexible") {
return true;
}
}
}
else
return true;
});
}
if (fil.type == "operator") {
let activeOptions = fil.options.filter((it) => it.active);
filteredRoutes = filteredRoutes.filter((it) => {
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
if (it.operator_service_name
.toLowerCase()
.indexOf(f.value.toLowerCase()) >= 0) {
return true;
}
}
}
else
return true;
});
}
if (fil.type == "amenities") {
let activeOptions = fil.options.filter((it) => it.active);
// if (activeOptions && activeOptions.length > 0) {
filteredRoutes = filteredRoutes.filter((it) => {
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
if (it.operator_details[4]) {
for (let a of it.operator_details[4]) {
let am = metaData === null || metaData === void 0 ? void 0 : metaData.amenities[a].split(".")[0].toLowerCase();
if (am && am.indexOf(f.value.toLowerCase()) >= 0) {
return true;
}
}
}
}
}
else
return true;
});
// }
}
if (isPeru) {
if (fil.type == "seat_types") {
let activeOptions = fil.options.filter((it) => it.active);
// if (activeOptions && activeOptions.length > 0) {
filteredRoutes = filteredRoutes.filter((it) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
// New condition for B/C 140
if (f.value.toLowerCase().indexOf("b/c 140") > -1) {
for (let bt of it.seat_types) {
if (((_a = bt === null || bt === void 0 ? void 0 : bt.label) === null || _a === void 0 ? void 0 : _a.toLowerCase().indexOf("b/c 140")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("v.relax 180") > -1) {
for (let bt of it.seat_types) {
if (((_b = bt === null || bt === void 0 ? void 0 : bt.label) === null || _b === void 0 ? void 0 : _b.toLowerCase().indexOf("v.relax 180")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("vip 2p 160") > -1) {
for (let bt of it.seat_types) {
if (((_c = bt === null || bt === void 0 ? void 0 : bt.label) === null || _c === void 0 ? void 0 : _c.toLowerCase().indexOf("vip 2p 160")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("180°") > -1) {
for (let bt of it.seat_types) {
if (((_d = bt === null || bt === void 0 ? void 0 : bt.label) === null || _d === void 0 ? void 0 : _d.toLowerCase().indexOf("180°")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("160°") > -1) {
for (let bt of it.seat_types) {
if (((_e = bt === null || bt === void 0 ? void 0 : bt.label) === null || _e === void 0 ? void 0 : _e.toLowerCase().indexOf("160°")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("140°") > -1) {
for (let bt of it.seat_types) {
if (((_f = bt === null || bt === void 0 ? void 0 : bt.label) === null || _f === void 0 ? void 0 : _f.toLowerCase().indexOf("140°")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("salon cama low") > -1) {
for (let bt of it.seat_types) {
if (((_g = bt === null || bt === void 0 ? void 0 : bt.label) === null || _g === void 0 ? void 0 : _g.toLowerCase().indexOf("salon cama low")) >
-1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("salón cama low") > -1) {
for (let bt of it.seat_types) {
if (((_h = bt === null || bt === void 0 ? void 0 : bt.label) === null || _h === void 0 ? void 0 : _h.toLowerCase().indexOf("salón cama low")) >
-1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("semi cama low") > -1) {
for (let bt of it.seat_types) {
if (((_j = bt === null || bt === void 0 ? void 0 : bt.label) === null || _j === void 0 ? void 0 : _j.toLowerCase().indexOf("semi cama low")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("cama premium (i)") > -1) {
for (let bt of it.seat_types) {
if (((_k = bt === null || bt === void 0 ? void 0 : bt.label) === null || _k === void 0 ? void 0 : _k.toLowerCase().indexOf("cama premium (i)")) >
-1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("ejecutivo") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (
// bt.toLowerCase().split(":")[0].indexOf("ejecutivo") > -1
// ) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_l = bt === null || bt === void 0 ? void 0 : bt.label) === null || _l === void 0 ? void 0 : _l.toLowerCase().indexOf("ejecutivo")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("semi") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (bt.toLowerCase().split(":")[0].indexOf("semi") > -1) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_m = bt === null || bt === void 0 ? void 0 : bt.label) === null || _m === void 0 ? void 0 : _m.toLowerCase().indexOf("semi")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("salon") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (
// bt.toLowerCase().split(":")[0].indexOf("salon") > -1
// ) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_o = bt === null || bt === void 0 ? void 0 : bt.label) === null || _o === void 0 ? void 0 : _o.toLowerCase().indexOf("salon")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("salón") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (
// bt.toLowerCase().split(":")[0].indexOf("salon") > -1
// ) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_p = bt === null || bt === void 0 ? void 0 : bt.label) === null || _p === void 0 ? void 0 : _p.toLowerCase().indexOf("salón")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("suite") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (
// bt.toLowerCase().split(":")[0].indexOf("suite") > -1
// ) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_q = bt === null || bt === void 0 ? void 0 : bt.label) === null || _q === void 0 ? void 0 : _q.toLowerCase().indexOf("suite")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("premium") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (bt.toLowerCase().split(":")[0].indexOf("premium") > -1) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_r = bt === null || bt === void 0 ? void 0 : bt.label) === null || _r === void 0 ? void 0 : _r.toLowerCase().indexOf("premium")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("vip") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (bt.toLowerCase().split(":")[0].indexOf("vip") > -1) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_s = bt === null || bt === void 0 ? void 0 : bt.label) === null || _s === void 0 ? void 0 : _s.toLowerCase().indexOf("vip")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase() == "cama") {
// for (let bt of it.fare_str.split(",")) {
// if (bt.toLowerCase().split(":")[0] == "cama") {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_t = bt === null || bt === void 0 ? void 0 : bt.label) === null || _t === void 0 ? void 0 : _t.toLowerCase().indexOf("cama")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase() == "preferente") {
// for (let bt of it.fare_str.split(",")) {
// if (bt.toLowerCase().split(":")[0] == "preferente") {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_u = bt === null || bt === void 0 ? void 0 : bt.label) === null || _u === void 0 ? void 0 : _u.toLowerCase().indexOf("preferente")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("vent") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (bt.toLowerCase().split(":")[0].indexOf("vent") > -1) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_v = bt === null || bt === void 0 ? void 0 : bt.label) === null || _v === void 0 ? void 0 : _v.toLowerCase().indexOf("vent")) > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("clasico") > -1) {
// for (let bt of it.fare_str.split(",")) {
// if (
// bt.toLowerCase().split(":")[0].indexOf("clasico") > -1
// ) {
// return true;
// }
// }
for (let bt of it.seat_types) {
if (((_w = bt === null || bt === void 0 ? void 0 : bt.label) === null || _w === void 0 ? void 0 : _w.toLowerCase().indexOf("clasico")) > -1) {
return true;
}
}
}
}
}
else
return true;
});
// }
}
}
else {
if (fil.type == "seat_types") {
let activeOptions = fil.options.filter((it) => it.active);
// if (activeOptions && activeOptions.length > 0) {
filteredRoutes = filteredRoutes.filter((it) => {
if (activeOptions && activeOptions.length)
for (let f of activeOptions) {
if (f.active) {
if (f.value.toLowerCase().indexOf("semi") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("semi") > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("salon") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("salon") > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("ejecutivo") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("ejecutivo") >
-1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("suite") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("suite") > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("premium") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("vip") > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("vip") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("vip") > -1) {
return true;
}
}
}
else if (f.value.toLowerCase() == "cama") {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0] == "cama") {
return true;
}
}
}
else if (f.value.toLowerCase() == "preferente") {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0] == "preferente") {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("vent") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("vent") > -1) {
return true;
}
}
}
else if (f.value.toLowerCase().indexOf("clasico") > -1) {
for (let bt of it.fare_str.split(",")) {
if (bt.toLowerCase().split(":")[0].indexOf("clasico") > -1) {
return true;
}
}
}
}
}
else
return true;
});
// }
}
}
}
routes = filteredRoutes;
// this.setState({
// serviceList: routes,
// });
setServiceList(routes);
}
catch (e) {
console.log(e);
}
};
const onFilterSelected = (option, key, i) => {
let filters = commonService.copyObject(filtersArray);
filters[key].options[i].active = !filters[key].options[i].active;
filterBy(filters);
setFiltersArray(filters);
};
return (React.createElement(ServiceFilter, { filtersArray: filtersArray, onFilterSelected: onFilterSelected, onFilterClear: (val) => {
setFiltersArray(val);
filterBy(val);
}, showReturnTripModal: showReturnTripModal, initialOpenFilters: isBlankTicket ? ["operator"] : [], colors: colors, icons: icons, translation: translation, isTrain: isTrain, t: t }));
};
export default FilterBarDesktop;