import moment from "moment";
import React from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
import AlertComponent from "../alert/alert.component";

const mapStateToProps = createStructuredSelector({
  bodyshop: selectBodyshop,
});

function FeatureWrapper({
  bodyshop,
  featureName,
  noauth,
  children,
  ...restProps
}) {
  const { t } = useTranslation();

  if (HasFeatureAccess({ featureName, bodyshop })) return children;

  return (
    noauth || (
      <AlertComponent
        message={t("general.messages.nofeatureaccess")}
        type="warning"
      />
    )
  );
}

export function HasFeatureAccess({ featureName, bodyshop }) {
  return (
    bodyshop.features.allAccess ||
    moment(bodyshop.features[featureName]).isAfter(moment())
  );
}

export default connect(mapStateToProps, null)(FeatureWrapper);

/* 
dashboard
production-board
scoreboard
csi
tech-console
mobile-imaging
*/
