import React, { ReactElement, useEffect, useState } from 'react' import Button from '@shared/atoms/Button' import { ErrorMessage, useField } from 'formik' import Loader from '@shared/atoms/Loader' import styles from './index.module.css' import InputGroup from '@shared/FormInput/InputGroup' import InputElement from '@shared/FormInput/InputElement' import isUrl from 'is-url-superb' export default function URLInput({ submitText, handleButtonClick, isLoading, name, checkUrl, ...props }: { submitText: string handleButtonClick(e: React.SyntheticEvent, data: string): void isLoading: boolean name: string checkUrl?: boolean }): ReactElement { const [field, meta] = useField(name) const [isButtonDisabled, setIsButtonDisabled] = useState(true) useEffect(() => { if (!field?.value) return setIsButtonDisabled( !field?.value || field.value === '' || (checkUrl && !isUrl(field.value)) || field.value.includes('javascript:') || meta?.error ) }, [field?.value, meta?.error]) return ( <> {meta.touched && meta.error && (
)} ) }