UNPKG

kupos-ui-components-lib

Version:

A reusable UI components package

481 lines (480 loc) 31.3 kB
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;