psu-libraries/psulib_blacklight

View on GitHub
app/javascript/availability/components/course_reserve_due_date.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import PropTypes from 'prop-types';
import availability from '../index';

const CourseReserveDueDate = ({ holding }) => {
  const isOnCourseReserve = () =>
    holding.reserveCirculationRule && holding.dueDate;

  if (!isOnCourseReserve()) {
    return null;
  }

  const dueDate = new Date(holding.dueDate);

  const day = dueDate.toLocaleDateString('en-us', {
    year: 'numeric',
    month: 'numeric',
    day: 'numeric',
    timeZone: 'America/New_York',
  });

  const time = dueDate.toLocaleTimeString('en-us', {
    hour: 'numeric',
    minute: '2-digit',
    timeZone: 'America/New_York',
  });

  const circulationRule =
    availability.reserveCirculationRules[holding.reserveCirculationRule];

  return (
    <div>
      <strong>Due back at:</strong>
      <span>{` ${time} on ${day}`}</span>
      <br />
      <span>{circulationRule}</span>
    </div>
  );
};

// eslint-react: defines valid prop types passed to this component
CourseReserveDueDate.propTypes = {
  holding: PropTypes.object,
};

export default CourseReserveDueDate;