import Icon, { BankFilled, BarChartOutlined, CarFilled, CheckCircleOutlined, ClockCircleFilled, DashboardFilled, DollarCircleFilled, ExportOutlined, FieldTimeOutlined, FileAddFilled, FileAddOutlined, FileFilled, //GlobalOutlined, HomeFilled, ImportOutlined, LineChartOutlined, PaperClipOutlined, PhoneOutlined, QuestionCircleFilled, ScheduleOutlined, SettingOutlined, TeamOutlined, ToolFilled, UnorderedListOutlined, UserOutlined, } from "@ant-design/icons"; import { useTreatments } from "@splitsoftware/splitio-react"; import { Layout, Menu } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; import { BsKanban } from "react-icons/bs"; import { FaCalendarAlt, FaCarCrash, FaCreditCard, FaFileInvoiceDollar, } from "react-icons/fa"; import { GiPayMoney, GiPlayerTime, GiSettingsKnobs } from "react-icons/gi"; import { IoBusinessOutline } from "react-icons/io5"; import { RiSurveyLine } from "react-icons/ri"; import { connect } from "react-redux"; import { Link } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import { selectRecentItems, selectSelectedHeader, } from "../../redux/application/application.selectors"; import { setModalContext } from "../../redux/modals/modals.actions"; import { signOutStart } from "../../redux/user/user.actions"; import { selectBodyshop, selectCurrentUser, } from "../../redux/user/user.selectors"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, recentItems: selectRecentItems, selectedHeader: selectSelectedHeader, bodyshop: selectBodyshop, }); const mapDispatchToProps = (dispatch) => ({ setBillEnterContext: (context) => dispatch(setModalContext({ context: context, modal: "billEnter" })), setTimeTicketContext: (context) => dispatch(setModalContext({ context: context, modal: "timeTicket" })), setPaymentContext: (context) => dispatch(setModalContext({ context: context, modal: "payment" })), setReportCenterContext: (context) => dispatch(setModalContext({ context: context, modal: "reportCenter" })), signOutStart: () => dispatch(signOutStart()), }); function Header({ handleMenuClick, currentUser, bodyshop, selectedHeader, signOutStart, setBillEnterContext, setTimeTicketContext, setPaymentContext, setReportCenterContext, recentItems, }) { const { Simple_Inventory } = useTreatments( ["Simple_Inventory"], {}, bodyshop && bodyshop.imexshopid ); const { DmsAp } = useTreatments( ["DmsAp"], {}, bodyshop && bodyshop.imexshopid ); const { t } = useTranslation(); return ( }> {t("menus.header.home")} }> {t("menus.header.schedule")} } title={t("menus.header.jobs")} > }> {t("menus.header.activejobs")} }> {t("menus.header.readyjobs")} }> {t("menus.header.parts-queue")} }> {t("menus.header.availablejobs")} }> {t("menus.header.newjob")} }> {t("menus.header.alljobs")} }> {t("menus.header.productionlist")} }> {t("menus.header.productionboard")} }> {t("menus.header.scoreboard")} } title={t("menus.header.customers")} > }> {t("menus.header.owners")} }> {t("menus.header.vehicles")} } title={t("menus.header.courtesycars")} > }> {t("menus.header.courtesycars-all")} }> {t("menus.header.courtesycars-contracts")} }> {t("menus.header.courtesycars-newcontract")} } title={t("menus.header.accounting")} > } > {t("menus.header.bills")} } onClick={() => { setBillEnterContext({ actions: {}, context: {}, }); }} > {t("menus.header.enterbills")} {Simple_Inventory.treatment === "on" && ( <> } > {t("menus.header.inventory")} )} }> {t("menus.header.allpayments")} { setPaymentContext({ actions: {}, context: null, }); }} icon={} > {t("menus.header.enterpayment")} }> {t("menus.header.timetickets")} } onClick={() => { setTimeTicketContext({ actions: {}, context: { created_by: currentUser.displayName ? currentUser.email.concat(" | ", currentUser.displayName) : currentUser.email, }, }); }} > {t("menus.header.entertimeticket")} } > {t("menus.header.accounting-receivables")} {(!( (bodyshop && bodyshop.cdk_dealerid) || (bodyshop && bodyshop.pbs_serialnumber) ) || DmsAp.treatment === "on") && ( {t("menus.header.accounting-payables")} )} {!( (bodyshop && bodyshop.cdk_dealerid) || (bodyshop && bodyshop.pbs_serialnumber) ) && ( {t("menus.header.accounting-payments")} )} {t("menus.header.export-logs")} }> {t("menus.header.phonebook")} }> {t("menus.header.temporarydocs")} } > }> {t("menus.header.shop_config")} }> {t("menus.header.dashboard")} } onClick={() => { setReportCenterContext({ actions: {}, context: {}, }); }} > {t("menus.header.reportcenter")} } > {t("menus.header.shop_vendors")} }> {t("menus.header.shop_csi")} signOutStart()}> {t("user.actions.signout")} { window.open("https://help.imex.online/", "_blank"); }} icon={} > {t("menus.header.help")} { window.open("https://imexrescue.com/", "_blank"); }} > {t("menus.header.rescueme")} {t("menus.header.shiftclock")} {t("menus.currentuser.profile")} { // // // {t("menus.currentuser.languageselector")} // // } // > // // {t("general.languages.english")} // // // {t("general.languages.french")} // // // {t("general.languages.spanish")} // // } }> {recentItems.map((i, idx) => ( {i.label} ))} ); } export default connect(mapStateToProps, mapDispatchToProps)(Header);