All files / src/components/common/CronInput index.tsx

0% Statements 0/12
0% Branches 0/2
0% Functions 0/3
0% Lines 0/12

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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60                                                                                                                       
import { useState } from "react";
import { InputTypes } from "../../../types";
import CustomInput from "../../Inputs/CustomInput";
import CronOverlay from "./CronOverlay";
import { AccessTimeRounded } from "@mui/icons-material";
 
type CronInputTypes = {
  label?: string;
  value: string;
  handleChange: (val: string) => void;
  error?: string;
  placeholder?: string;
  disabled?: boolean;
  className?: string;
};
 
function CronInput(props: CronInputTypes) {
  const [isOpen, setIsOpen] = useState(false);
 
  const handleClose = () => {
    setIsOpen(false);
  };
 
  const handleOpenOverlay = () => {
    setIsOpen(true);
  };
 
  return (
    <div>
      <div className="cursor-pointer" onClick={handleOpenOverlay}>
        <CustomInput
          {...props}
          label=""
          inputType={InputTypes.TEXT}
          className="border-none !p-0 cursor-pointer disabled:!bg-transparent"
          disabled={true}
          containerClassName="border p-2 rounded"
          suffix={
            <div className="text-gray-400 flex items-center gap-1">
              <span className="text-xs">UTC</span>
              <AccessTimeRounded fontSize="small" />
            </div>
          }
        />
      </div>
 
      {isOpen && (
        <CronOverlay
          isOpen={isOpen}
          close={handleClose}
          value={props.value}
          setValue={props.handleChange}
        />
      )}
    </div>
  );
}
 
export default CronInput;