{"version":3,"sources":["index.jsx"],"names":["Input","props","value","handleChange","inputValid","setInputInvalid","test","match","id","type","placeholder","success","error","disabled","loading","autoFocus","e","currentTarget","onEvent","data","event","origin","key","testMessage","defaultProps","propTypes","PropTypes","bool","any","string","isRequired","func","object"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport\n  StyledInput,\n  {\n    StyledIconLoading,\n    StyledIconError,\n    StyledErrorMessage\n  }\nfrom './styles'\n\nconst Input = props => {\n  const [value, handleChange] = useState(props.value);\n  const [inputValid, setInputInvalid] = useState(true);\n\n  useEffect(() =>{\n    if ( props.test && value ) {\n      setInputInvalid(value.match(props.test))\n    }\n  }, [props.value])\n\n  return (\n    <>\n      <StyledInput\n        id={props.id}\n        type={props.type}\n        placeholder={props.placeholder}\n        success={props.success}\n        error={props.error || !inputValid}\n        disabled={props.disabled || props.loading}\n        loading={props.loading}\n        autoFocus={props.autoFocus}\n        value={value}\n        onChange={e => {\n          handleChange(e.currentTarget.value)\n          if (!e.currentTarget.value) {\n            setInputInvalid(true)\n          } else if (props.test) {\n            setInputInvalid(e.currentTarget.value.match(props.test))\n          }\n        }}\n        onBlur={e => {\n          inputValid && props.onEvent({\n            data: {\n              value,\n              data: props.data\n            },\n            event: \"onBlur\",\n            origin: \"Input\"\n          })\n        }}\n\n        onFocus={e => {\n          inputValid && props.onEvent({\n            data: {\n              value,\n              data: props.data\n            },\n            event: \"onFocus\",\n            origin: \"Input\"\n          })\n        }}\n\n        onKeyUp={e => {\n          if (e.key === \"Enter\") {\n            inputValid && props.onEvent({\n              data: {\n                value,\n                data: props.data\n              },\n              event: \"onKeyUpAction\",\n              origin: \"Input\"\n            })\n          } else {\n            handleChange(e.currentTarget.value)\n            inputValid && props.onEvent({\n                data: {\n                  value: e.currentTarget.value,\n                  data: props.data\n                },\n                event: \"onKeyUp\",\n                origin: \"Input\"\n              })\n            }\n        }}\n    />\n    {\n      props.loading && <StyledIconLoading />\n    }\n    {\n      (props.error || !inputValid)  &&\n        <>\n          <StyledIconError />\n          <StyledErrorMessage>\n            {\n              !inputValid ? props.testMessage :  props.error\n            }\n          </StyledErrorMessage>\n        </>\n    }\n  </>\n  )\n}\n\nInput.defaultProps = {\n  type: \"text\",\n  testMessage: \"\",\n  disabled: false,\n  loading: false,\n  placeholder: '',\n  onEvent: () => {}\n}\n\nInput.propTypes = {\n  disabled: PropTypes.bool,\n  test: PropTypes.any,\n  loading: PropTypes.bool,\n  placeholder: PropTypes.string,\n  type: PropTypes.string,\n  testMessage: PropTypes.string,\n  value: PropTypes.string.isRequired,\n  onEvent: PropTypes.func,\n  data: PropTypes.object,\n}\n\nexport default Input\n"]}