import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { FormattedMessage, useIntl } from '@edx/frontend-platform/i18n'; import get from 'lodash.get'; import { Form } from '@openedx/paragon'; import messages from './Education.messages'; import FormControls from './elements/FormControls'; import EditableItemHeader from './elements/EditableItemHeader'; import EmptyContent from './elements/EmptyContent'; import SwitchContent from './elements/SwitchContent'; import { EDUCATION_LEVELS } from '../data/constants'; import { editableFormSelector } from '../data/selectors'; import { useCloseOpenHandler, useHandleChange, useHandleSubmit, useIsVisibilityEnabled, } from '../data/hooks'; const Education = ({ formId, levelOfEducation, visibilityLevelOfEducation, editMode, saveState, error, changeHandler, submitHandler, closeHandler, openHandler, }) => { const isVisibilityEnabled = useIsVisibilityEnabled(); const intl = useIntl(); const handleChange = useHandleChange(changeHandler); const handleSubmit = useHandleSubmit(submitHandler, formId); const handleOpen = useCloseOpenHandler(openHandler, formId); const handleClose = useCloseOpenHandler(closeHandler, formId); return (

{intl.formatMessage(messages['profile.education.education'])}

{error !== null && ( {error} )}
), editable: ( <>

{intl.formatMessage(messages['profile.education.education'])}

), empty: ( <>

{intl.formatMessage(messages['profile.education.education'])}

), static: ( <>

{intl.formatMessage(messages['profile.education.education'])}

), }} /> ); }; Education.propTypes = { formId: PropTypes.string.isRequired, levelOfEducation: PropTypes.string, visibilityLevelOfEducation: PropTypes.oneOf(['private', 'all_users']), editMode: PropTypes.oneOf(['editing', 'editable', 'empty', 'static']), saveState: PropTypes.string, error: PropTypes.string, changeHandler: PropTypes.func.isRequired, submitHandler: PropTypes.func.isRequired, closeHandler: PropTypes.func.isRequired, openHandler: PropTypes.func.isRequired, }; Education.defaultProps = { editMode: 'static', saveState: null, levelOfEducation: null, visibilityLevelOfEducation: 'private', error: null, }; export default connect( editableFormSelector, {}, )(Education);