All files / src/components/Inputs/InputTypes TextButton.tsx

0% Statements 0/9
0% Branches 0/4
0% Functions 0/2
0% Lines 0/9

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                                                                                                     
import React, { HTMLInputTypeAttribute } from "react";
import CustomInput from "../CustomInput";
import { InputTypes } from "../../../types";
import CustomButton from "../../common/CustomButton";
 
type TextButtonInputTypes = {
  label?: string;
  value: string;
  handleChange: (val: string) => void;
  error?: string;
  placeholder?: string;
  disabled?: boolean;
  className?: string;
  type?: HTMLInputTypeAttribute;
  buttonText: string;
  buttonClickValue: string;
} & React.InputHTMLAttributes<HTMLInputElement>;
 
function TextButton({
  buttonText,
  buttonClickValue,
  ...props
}: TextButtonInputTypes) {
  const handleClick = () => {
    props.handleChange(buttonClickValue);
  };
 
  const isButtonText = buttonClickValue === props.value;
  const buttonClassName = isButtonText ? "!bg-violet-500 !text-white" : "";
 
  return (
    <div className="flex flex-wrap">
      <CustomInput
        {...props}
        label=""
        inputType={InputTypes.TEXT}
        className={`${
          isButtonText ? "bg-gray-50" : ""
        } min-w-[200px] rounded-r-none`}
      />
      <CustomButton
        onClick={handleClick}
        className={`${buttonClassName} rounded-l-none`}>
        {buttonText}
      </CustomButton>
    </div>
  );
}
 
export default TextButton;