import React from "react"; // nodejs library to set properties for components import PropTypes from "prop-types"; // nodejs library that concatenates classes import classNames from "classnames"; // @material-ui/core components import { makeStyles } from "@material-ui/core/styles"; import FormControl from "@material-ui/core/FormControl"; import InputLabel from "@material-ui/core/InputLabel"; import Input from "@material-ui/core/Input"; import styles from "assets/jss/nextjs-material-kit/components/customInputStyle.js"; const useStyles = makeStyles(styles); export default function CustomInput(props) { const classes = useStyles(); const { formControlProps, labelText, id, labelProps, inputProps, error, white, inputRootCustomClasses, success } = props; const labelClasses = classNames({ [" " + classes.labelRootError]: error, [" " + classes.labelRootSuccess]: success && !error }); const underlineClasses = classNames({ [classes.underlineError]: error, [classes.underlineSuccess]: success && !error, [classes.underline]: true, [classes.whiteUnderline]: white }); const marginTop = classNames({ [inputRootCustomClasses]: inputRootCustomClasses !== undefined }); const inputClasses = classNames({ [classes.input]: true, [classes.whiteInput]: white }); var formControlClasses; if (formControlProps !== undefined) { formControlClasses = classNames( formControlProps.className, classes.formControl ); } else { formControlClasses = classes.formControl; } return ( {labelText !== undefined ? ( {labelText} ) : null} ); } CustomInput.propTypes = { labelText: PropTypes.node, labelProps: PropTypes.object, id: PropTypes.string, inputProps: PropTypes.object, formControlProps: PropTypes.object, inputRootCustomClasses: PropTypes.string, error: PropTypes.bool, success: PropTypes.bool, white: PropTypes.bool };