All files / src/components/common/AddressInputs ProvinceInput.tsx

76.92% Statements 10/13
46.66% Branches 7/15
75% Functions 3/4
76.92% Lines 10/13

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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80                                      66x             30x   30x 3x 3x 3x       30x                               30x 30x           1770x                                          
import React from "react";
import { RHFInput } from "@common/Input";
import { RHFSelect } from "@common/Select";
import { getUSNames } from "@utils/country_dial_codes";
type ProvinceInputProps = {
  id?: string;
  isUS?: boolean | null;
  name?: string;
  disabled?: boolean;
  focusViewColor?: string;
  helperText?: string;
  sx?: any;
  multiChoiceCountry?:
    | {
        [key: string]: string;
      }
    | [];
};
 
const ProvinceInput = ({
  isUS,
  name,
  disabled,
  multiChoiceCountry,
  ...rest
}: ProvinceInputProps) => {
  const isMount = React.useRef(true);
 
  React.useEffect(() => {
    Eif (isMount.current) {
      isMount.current = false;
      return;
    }
  }, [isUS]);
 
  Iif (multiChoiceCountry && !Array.isArray(multiChoiceCountry) && !isUS) {
    return (
      <RHFSelect
        name={name || "businessAddress.province"}
        label="Province"
        placeholder="Province"
        disabled={disabled}
        options={Object.entries(multiChoiceCountry).map(([_key, value]) => ({
          value: value,
          label: value,
        }))}
        {...rest}
      />
    );
  }
 
  Eif (isUS)
    return (
      <RHFSelect
        name={name || "businessAddress.province"}
        label="State"
        placeholder="Select State"
        disabled={disabled}
        options={getUSNames().map((state) => ({
          value: state,
          label: state,
        }))}
        {...rest}
      />
    );
 
  return (
    <RHFInput
      name={name || "businessAddress.province"}
      label="Province"
      fullWidth
      placeholder="Type in your Province"
      disabled={disabled}
      {...rest}
    />
  );
};
 
export default ProvinceInput;