HEX
Server: LiteSpeed
System: Linux premium263.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: eastcjee (525)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //home/eastcjee/www/wp-content/plugins/presto-player/src/admin/analytics/components/DatePicker.js
const { __ } = wp.i18n;
const { useRef, useEffect, useState } = wp.element;

import Litepicker from "litepicker";
import "litepicker/dist/plugins/ranges";

export default ({ startDate, setStartDate, endDate, setEndDate }) => {
  const dateRef = useRef();
  const [inputSize, setInputSize] = useState(25);

  let datepicker;
  useEffect(() => {
    datepicker = new Litepicker({
      element: dateRef?.current,
      singleMode: false,
      format: "MMMM D YYYY",
      autoApply: false,
      plugins: ["ranges"],
      maxDate: new Date(),
      numberOfMonths: 2,
      buttonText: {
        apply: __("Apply", "presto-player"),
        cancel: __("Cancel", "presto-player"),
      },
      dropdowns: {
        minYear: 1990,
        maxYear: null,
        months: true,
        years: true,
      },
      setup: (picker) => {
        picker.setDateRange(startDate, endDate);
        picker.on("button:apply", (start, end) => {
          setStartDate(start.dateInstance);
          setEndDate(end.dateInstance);
          setInputSize(dateRef.current.value.length);
        });
      },
    });
  }, [dateRef]);

  return (
    <div className="component-base-control">
      <div className="components-base-control__field">
        <input
          className="components-text-control__input presto-settings__date-select"
          ref={dateRef}
          size={inputSize}
        />
      </div>
    </div>
  );
};