removes unused props from field types

This commit is contained in:
James
2020-01-26 11:27:35 -05:00
parent 46584971e2
commit 030e750d2a
8 changed files with 73 additions and 82 deletions

View File

@@ -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,

View File

@@ -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;

View File

@@ -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;

View File

@@ -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,

View File

@@ -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,

View File

@@ -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;

View File

@@ -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,