All files / src/components/common/BusinessProfileInputs OwnerShipInput.tsx

8.33% Statements 1/12
0% Branches 0/5
0% Functions 0/3
10% Lines 1/10

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                        89x                                                                        
import React from "react";
import { RHFInput } from "@common/Input";
import { useFormContext } from "react-hook-form";
import { isEmpty } from "lodash";
 
type OwnershipInputProps = {
  name: string;
  label: string;
  placeholder: string;
  disabled?: boolean;
};
 
const OwnershipInput = ({
  name,
  label,
  placeholder,
  disabled = false,
}: OwnershipInputProps) => {
  const { setValue, watch } = useFormContext();
 
  const normalizeInput = (value: string) => {
    if (isEmpty(value)) return value;
    const currentValue = value?.replace(/[^\d.]/g, "");
    if (parseFloat(currentValue) > 100) return "100";
 
    return currentValue;
  };
 
  React.useEffect(() => {
    setValue(name, normalizeInput(watch(name)));
  }, [watch(name)]);
 
  return (
    <RHFInput
      name={name}
      label={label}
      placeholder={placeholder}
      fullWidth
      disabled={disabled}
      // inputProps={{
      //   maxLength: "3",
      // }}
      endIcon="%"
    />
  );
};
 
export default OwnershipInput;