/** * * Input * */ import * as React from 'react'; import { TextInput, Toggle, Field } from '@strapi/design-system'; import PropTypes from 'prop-types'; import { useIntl } from 'react-intl'; const Input = ({ description, disabled, intlLabel, error, name, onChange, placeholder, providerToEditName, type, value, }) => { const { formatMessage } = useIntl(); const inputValue = name === 'noName' ? `${window.strapi.backendURL}/api/connect/${providerToEditName}/callback` : value; const label = formatMessage( { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage }, { provider: providerToEditName, ...intlLabel.values } ); const hint = description ? formatMessage( { id: description.id, defaultMessage: description.defaultMessage }, { provider: providerToEditName, ...description.values } ) : ''; if (type === 'bool') { return ( {label} { onChange({ target: { name, value: e.target.checked } }); }} /> ); } const formattedPlaceholder = placeholder ? formatMessage( { id: placeholder.id, defaultMessage: placeholder.defaultMessage }, { ...placeholder.values } ) : ''; const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : ''; return ( {label} ); }; Input.defaultProps = { description: null, disabled: false, error: '', placeholder: null, value: '', }; Input.propTypes = { description: PropTypes.shape({ id: PropTypes.string.isRequired, defaultMessage: PropTypes.string.isRequired, values: PropTypes.object, }), disabled: PropTypes.bool, error: PropTypes.string, intlLabel: PropTypes.shape({ id: PropTypes.string.isRequired, defaultMessage: PropTypes.string.isRequired, values: PropTypes.object, }).isRequired, name: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, placeholder: PropTypes.shape({ id: PropTypes.string.isRequired, defaultMessage: PropTypes.string.isRequired, values: PropTypes.object, }), providerToEditName: PropTypes.string.isRequired, type: PropTypes.string.isRequired, value: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), }; export default Input;