import React, { useEffect, useState } from 'react'; import useFieldApi from '@data-driven-forms/react-form-renderer/use-field-api'; import useFormApi from '@data-driven-forms/react-form-renderer/use-form-api'; import { FormGroup, Select, SelectOption, SelectVariant, Spinner, } from '@patternfly/react-core'; import PropTypes from 'prop-types'; import api from '../../../api'; const ActivationKeys = ({ label, isRequired, ...props }) => { const { change, getState } = useFormApi(); const { input } = useFieldApi(props); const [activationKeys, setActivationKeys] = useState([]); const [isOpen, setIsOpen] = useState(false); const [isLoading, setIsLoading] = useState(false); const [activationKeySelected, selectActivationKey] = useState( getState()?.values?.['subscription-activation-key'] ); useEffect(() => { setIsLoading(true); const data = api.getActivationKeys(); data.then((keys) => { setActivationKeys(keys); setIsLoading(false); }); if (insights.chrome.isProd()) { change('subscription-server-url', 'subscription.rhsm.redhat.com'); change('subscription-base-url', 'https://cdn.redhat.com/'); } else { change('subscription-server-url', 'subscription.rhsm.stage.redhat.com'); change('subscription-base-url', 'https://cdn.stage.redhat.com/'); } }, []); const setActivationKey = (_, selection) => { selectActivationKey(selection); setIsOpen(false); change(input.name, selection); }; const handleClear = () => { selectActivationKey(); change(input.name, undefined); }; return ( ); }; ActivationKeys.propTypes = { label: PropTypes.node, isRequired: PropTypes.bool, }; ActivationKeys.defaultProps = { label: '', isRequired: false, }; export default ActivationKeys;