import PropTypes from 'prop-types'; import React, { useEffect, useRef } from 'react'; import Alert from 'Components/Alert'; import FormGroup from 'Components/Form/FormGroup'; import FormInputGroup from 'Components/Form/FormInputGroup'; import FormLabel from 'Components/Form/FormLabel'; import SpinnerButton from 'Components/Link/SpinnerButton'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; import { inputTypes, kinds } from 'Helpers/Props'; import { authenticationMethodOptions, authenticationRequiredOptions } from 'Settings/General/SecuritySettings'; import translate from 'Utilities/String/translate'; import styles from './AuthenticationRequiredModalContent.css'; function onModalClose() { // No-op } function AuthenticationRequiredModalContent(props) { const { isPopulated, error, isSaving, settings, onInputChange, onSavePress, dispatchFetchStatus } = props; const { authenticationMethod, authenticationRequired, username, password } = settings; const authenticationEnabled = authenticationMethod && authenticationMethod.value !== 'none'; const didMount = useRef(false); useEffect(() => { if (!isSaving && didMount.current) { dispatchFetchStatus(); } didMount.current = true; }, [isSaving, dispatchFetchStatus]); return ( {translate('AuthenticationRequired')} {translate('AuthenticationRequiredWarning')} { isPopulated && !error ?
{translate('Authentication')} {translate('AuthenticationRequired')} {translate('Username')} {translate('Password')}
: null } { !isPopulated && !error ? : null }
{translate('Save')}
); } AuthenticationRequiredModalContent.propTypes = { isPopulated: PropTypes.bool.isRequired, error: PropTypes.object, isSaving: PropTypes.bool.isRequired, saveError: PropTypes.object, settings: PropTypes.object.isRequired, onInputChange: PropTypes.func.isRequired, onSavePress: PropTypes.func.isRequired, dispatchFetchStatus: PropTypes.func.isRequired }; export default AuthenticationRequiredModalContent;