All files / src/components/common/TimeRangeSelector TimeRangeOptionsSection.tsx

0% Statements 0/14
0% Branches 0/2
0% Functions 0/5
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44                                                                                       
import React from "react";
import { timeRangeOptions } from "./utils/timeRangeOptions.ts";
import { useDispatch, useSelector } from "react-redux";
import {
  timeRangeSelector,
  updateProperty,
} from "../../../store/features/timeRange/timeRangeSlice.ts";
 
function TimeRangeOptionsSection() {
  const dispatch = useDispatch();
  const { startTime } = useSelector(timeRangeSelector);
 
  const setTime = (id: string) => {
    dispatch(
      updateProperty({
        key: "timeRange",
        value: timeRangeOptions.find((o) => o.id === id)?.label,
      }),
    );
    dispatch(updateProperty({ key: "startTime", value: id }));
    dispatch(updateProperty({ key: "endTime", value: "now" }));
  };
 
  return (
    <div className="h-full overflow-auto">
      <div className="p-1 sticky top-0"></div>
      <div className="overflow-scroll">
        {timeRangeOptions.map((timeRange) => (
          <div
            className={`${
              timeRange.id === startTime ? "bg-gray-100" : "bg-transparent"
            } hover:bg-gray-200 cursor-pointer w-full p-1`}
            key={timeRange.id}
            onClick={() => setTime(timeRange.id)}>
            <span className="text-sm text-left">{timeRange.label}</span>
          </div>
        ))}
      </div>
    </div>
  );
}
 
export default TimeRangeOptionsSection;