import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import useFormApi from '@data-driven-forms/react-form-renderer/use-form-api'; import useFieldApi from '@data-driven-forms/react-form-renderer/use-field-api'; import { FormGroup, Tile } from '@patternfly/react-core'; import './TargetEnvironment.scss'; const TargetEnvironment = ({ label, isRequired, ...props }) => { const { getState, change } = useFormApi(); const { input } = useFieldApi({ label, isRequired, ...props }); const [ environemt, setEnvironment ] = useState({ aws: false, azure: false, google: false, }); useEffect(() => { if (getState()?.values?.[input.name]) { setEnvironment(getState().values[input.name]); } }, []); return
} onClick={ () => setEnvironment((prevEnv) => { const newEnv = ({ ...prevEnv, aws: !prevEnv.aws }); change(input.name, newEnv); return newEnv; }) } isSelected={ environemt.aws } isStacked isDisplayLarge /> } onClick={ () => setEnvironment((prevEnv) => { const newEnv = ({ ...prevEnv, google: !prevEnv.google }); change(input.name, newEnv); return newEnv; }) } isSelected={ environemt.google } isStacked isDisplayLarge /> } onClick={ () => setEnvironment((prevEnv) => { const newEnv = ({ ...prevEnv, azure: !prevEnv.azure }); input.value = newEnv; change(input.name, newEnv); return newEnv; }) } isSelected={ environemt.azure } isStacked isDisplayLarge />
; }; TargetEnvironment.propTypes = { label: PropTypes.node, isRequired: PropTypes.bool }; TargetEnvironment.defaultProps = { label: '', isRequired: false }; export default TargetEnvironment;