removes unused props from field types
This commit is contained in:
@@ -14,7 +14,6 @@ const Email = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
style,
|
||||
width,
|
||||
@@ -32,7 +31,6 @@ const Email = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
});
|
||||
|
||||
@@ -72,7 +70,6 @@ Email.defaultProps = {
|
||||
label: null,
|
||||
required: false,
|
||||
defaultValue: null,
|
||||
valueOverride: null,
|
||||
placeholder: undefined,
|
||||
validate: defaultValidate,
|
||||
errorMessage: defaultError,
|
||||
@@ -85,7 +82,6 @@ Email.propTypes = {
|
||||
required: PropTypes.bool,
|
||||
placeholder: PropTypes.string,
|
||||
defaultValue: PropTypes.string,
|
||||
valueOverride: PropTypes.string,
|
||||
validate: PropTypes.func,
|
||||
errorMessage: PropTypes.string,
|
||||
width: PropTypes.number,
|
||||
|
||||
@@ -7,14 +7,12 @@ const HiddenInput = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
} = props;
|
||||
|
||||
const { value, onChange } = useFieldType({
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
});
|
||||
|
||||
return (
|
||||
@@ -31,14 +29,12 @@ const HiddenInput = (props) => {
|
||||
HiddenInput.defaultProps = {
|
||||
required: false,
|
||||
defaultValue: null,
|
||||
valueOverride: null,
|
||||
};
|
||||
|
||||
HiddenInput.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
required: PropTypes.bool,
|
||||
defaultValue: PropTypes.string,
|
||||
valueOverride: PropTypes.string,
|
||||
};
|
||||
|
||||
export default HiddenInput;
|
||||
|
||||
@@ -14,13 +14,11 @@ const Password = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
style,
|
||||
width,
|
||||
errorMessage,
|
||||
label,
|
||||
placeholder,
|
||||
} = props;
|
||||
|
||||
const {
|
||||
@@ -32,49 +30,58 @@ const Password = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
});
|
||||
|
||||
const fieldWidth = width ? `${width}%` : null;
|
||||
|
||||
return (
|
||||
<div className="field-type password" style={{
|
||||
...style,
|
||||
width: width ? `${width}%` : null
|
||||
}}>
|
||||
<Error showError={showError} message={errorMessage} />
|
||||
<Label htmlFor={name} label={label} required={required} />
|
||||
<div
|
||||
className="field-type password"
|
||||
style={{
|
||||
...style,
|
||||
width: fieldWidth,
|
||||
}}
|
||||
>
|
||||
<Error
|
||||
showError={showError}
|
||||
message={errorMessage}
|
||||
/>
|
||||
<Label
|
||||
htmlFor={name}
|
||||
label={label}
|
||||
required={required}
|
||||
/>
|
||||
<input
|
||||
value={value || ''}
|
||||
onChange={onFieldChange}
|
||||
disabled={processing ? 'disabled' : undefined}
|
||||
placeholder={placeholder}
|
||||
type="password"
|
||||
id={name}
|
||||
name={name} />
|
||||
name={name}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
Password.defaultProps = {
|
||||
required: false,
|
||||
processing: false,
|
||||
defaultValue: null,
|
||||
validate: defaultValidate,
|
||||
errorMessage: defaultError,
|
||||
width: 100,
|
||||
style: {},
|
||||
}
|
||||
};
|
||||
|
||||
Password.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
required: PropTypes.bool,
|
||||
defaultValue: PropTypes.string,
|
||||
defaultValidate: PropTypes.func,
|
||||
errorMessage: PropTypes.string,
|
||||
width: PropTypes.number,
|
||||
style: PropTypes.shape({}),
|
||||
processing: PropTypes.bool,
|
||||
label: PropTypes.string.isRequired,
|
||||
}
|
||||
validate: PropTypes.func,
|
||||
};
|
||||
|
||||
export default Password;
|
||||
|
||||
@@ -15,7 +15,6 @@ const Select = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
style,
|
||||
width,
|
||||
@@ -34,7 +33,6 @@ const Select = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
});
|
||||
|
||||
@@ -87,7 +85,6 @@ Select.defaultProps = {
|
||||
required: false,
|
||||
errorMessage: defaultError,
|
||||
validate: defaultValidate,
|
||||
valueOverride: null,
|
||||
defaultValue: null,
|
||||
hasMany: false,
|
||||
width: 100,
|
||||
@@ -97,7 +94,6 @@ Select.propTypes = {
|
||||
required: PropTypes.bool,
|
||||
style: PropTypes.shape({}),
|
||||
errorMessage: PropTypes.string,
|
||||
valueOverride: PropTypes.string,
|
||||
label: PropTypes.string.isRequired,
|
||||
defaultValue: PropTypes.oneOfType([
|
||||
PropTypes.string,
|
||||
|
||||
@@ -14,7 +14,6 @@ const Text = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
style,
|
||||
width,
|
||||
@@ -32,7 +31,6 @@ const Text = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
});
|
||||
|
||||
@@ -78,7 +76,6 @@ Text.defaultProps = {
|
||||
label: null,
|
||||
required: false,
|
||||
defaultValue: null,
|
||||
valueOverride: null,
|
||||
placeholder: undefined,
|
||||
validate: defaultValidate,
|
||||
errorMessage: defaultError,
|
||||
@@ -91,7 +88,6 @@ Text.propTypes = {
|
||||
required: PropTypes.bool,
|
||||
placeholder: PropTypes.string,
|
||||
defaultValue: PropTypes.string,
|
||||
valueOverride: PropTypes.string,
|
||||
validate: PropTypes.func,
|
||||
errorMessage: PropTypes.string,
|
||||
width: PropTypes.number,
|
||||
|
||||
@@ -14,7 +14,6 @@ const Textarea = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
style,
|
||||
width,
|
||||
@@ -32,7 +31,6 @@ const Textarea = (props) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
validate,
|
||||
});
|
||||
|
||||
@@ -42,13 +40,25 @@ const Textarea = (props) => {
|
||||
showError && 'error',
|
||||
].filter(Boolean).join(' ');
|
||||
|
||||
const fieldWidth = width ? `${width}%` : undefined;
|
||||
|
||||
return (
|
||||
<div className={classes} style={{
|
||||
...style,
|
||||
width: width ? `${width}%` : null
|
||||
}}>
|
||||
<Error showError={showError} message={errorMessage} />
|
||||
<Label htmlFor={name} label={label} required={required} />
|
||||
<div
|
||||
className={classes}
|
||||
style={{
|
||||
...style,
|
||||
width: fieldWidth,
|
||||
}}
|
||||
>
|
||||
<Error
|
||||
showError={showError}
|
||||
message={errorMessage}
|
||||
/>
|
||||
<Label
|
||||
htmlFor={name}
|
||||
label={label}
|
||||
required={required}
|
||||
/>
|
||||
<textarea
|
||||
value={value || ''}
|
||||
onChange={onFieldChange}
|
||||
@@ -59,29 +69,27 @@ const Textarea = (props) => {
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
Textarea.defaultProps = {
|
||||
required: false,
|
||||
label: null,
|
||||
processing: false,
|
||||
defaultValue: null,
|
||||
validate: defaultValidate,
|
||||
errorMessage: defaultError,
|
||||
width: 100,
|
||||
style: {},
|
||||
}
|
||||
};
|
||||
|
||||
Textarea.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
required: PropTypes.bool,
|
||||
defaultValue: PropTypes.string,
|
||||
defaultValidate: PropTypes.func,
|
||||
validate: PropTypes.func,
|
||||
errorMessage: PropTypes.string,
|
||||
width: PropTypes.number,
|
||||
style: PropTypes.shape({}),
|
||||
processing: PropTypes.bool,
|
||||
label: PropTypes.string,
|
||||
}
|
||||
};
|
||||
|
||||
export default Textarea;
|
||||
|
||||
@@ -12,7 +12,6 @@ const useFieldType = (options) => {
|
||||
name,
|
||||
required,
|
||||
defaultValue,
|
||||
valueOverride,
|
||||
onChange,
|
||||
validate,
|
||||
} = options;
|
||||
@@ -28,24 +27,17 @@ const useFieldType = (options) => {
|
||||
}, [name, required, setField, validate]);
|
||||
|
||||
useMountEffect(() => {
|
||||
let valueToInitialize = defaultValue;
|
||||
if (valueOverride) valueToInitialize = valueOverride;
|
||||
sendField(valueToInitialize);
|
||||
sendField(defaultValue);
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
sendField(defaultValue);
|
||||
}, [defaultValue, sendField]);
|
||||
|
||||
useEffect(() => {
|
||||
sendField(valueOverride);
|
||||
}, [valueOverride, sendField]);
|
||||
}, [defaultValue, name, sendField]);
|
||||
|
||||
const valid = formContext.fields[name] ? formContext.fields[name].valid : true;
|
||||
const showError = valid === false && formContext.submitted;
|
||||
|
||||
let valueToRender = formContext.fields[name] ? formContext.fields[name].value : '';
|
||||
valueToRender = valueOverride || valueToRender;
|
||||
const valueToRender = formContext.fields[name] ? formContext.fields[name].value : '';
|
||||
|
||||
return {
|
||||
...options,
|
||||
|
||||
Reference in New Issue
Block a user