From 8c0239972e9959fb354446d894e0015b427d8f8d Mon Sep 17 00:00:00 2001 From: Lukas Jezek Date: Tue, 9 Jun 2026 13:35:11 +0000 Subject: [PATCH 1/7] Fixes #39409 - Move FieldConstructor from webhooks plugin to core --- .../Components/FieldConstructor.js | 312 ------------------ .../WebhookForm/Components/WebhookFormTabs.js | 2 +- .../__tests__/FieldConstructor.test.js | 216 ------------ .../Components/WebhookTestModal.js | 2 +- 4 files changed, 2 insertions(+), 530 deletions(-) delete mode 100644 webpack/ForemanWebhooks/Routes/Webhooks/Components/WebhookForm/Components/FieldConstructor.js delete mode 100644 webpack/ForemanWebhooks/Routes/Webhooks/Components/WebhookForm/Components/__tests__/FieldConstructor.test.js diff --git a/webpack/ForemanWebhooks/Routes/Webhooks/Components/WebhookForm/Components/FieldConstructor.js b/webpack/ForemanWebhooks/Routes/Webhooks/Components/WebhookForm/Components/FieldConstructor.js deleted file mode 100644 index f7e8197..0000000 --- a/webpack/ForemanWebhooks/Routes/Webhooks/Components/WebhookForm/Components/FieldConstructor.js +++ /dev/null @@ -1,312 +0,0 @@ -/* eslint-disable max-lines */ -import React, { useEffect, useState } from 'react'; -import PropTypes from 'prop-types'; -import AutocompleteInput from 'foremanReact/components/common/AutocompleteInput/AutocompleteInput'; -import { translate as __ } from 'foremanReact/common/I18n'; -import { - ExclamationCircleIcon, - HelpIcon, - PencilAltIcon, -} from '@patternfly/react-icons'; -import { - TextInput, - Checkbox, - Button, - FormHelperText, - HelperText, - HelperTextItem, - Icon, - TextArea, - FormGroup, - Popover, - Grid, - GridItem, -} from '@patternfly/react-core'; - -const FormField = ({ - name, - type, - required, - options, - validated, - value, - disabled, - setValue, - placeholder, - errMsg, - fieldId, - setIsPasswordDisabled, - ...props -}) => { - const [fieldValidated, setFieldValidated] = useState('default'); - const [firstLoad, setFirstLoad] = useState(true); - - const requiredValidate = () => { - if (firstLoad || !required) return; - if (!value || value === '' || validated === 'error') - setFieldValidated('error'); - else setFieldValidated('success'); - }; - - const localHandler = (_event, newValue) => { - setValue(name, newValue); - }; - - useEffect(() => { - setFirstLoad(false); - }, []); - - useEffect(() => { - requiredValidate(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [value]); - - if (type === 'checkbox') { - return ( - <> - { - setValue(name, newValue); - }} - isDisabled={disabled} - isRequired={required} - type={type} - validated={fieldValidated} - /> - - - ); - } else if (type === 'textarea') { - return ( - <> -