Feature: Add board creation

+ Refactor form-error settings and reset function
This commit is contained in:
winkidney
2019-12-05 00:49:07 +08:00
committed by Isaac Bythewood
parent b3a065a4fb
commit 41cac8e784
6 changed files with 174 additions and 24 deletions

View File

@@ -0,0 +1,52 @@
function createFormModel(fields) {
const form = {};
fields.forEach(
(fieldName) => {
form[fieldName] = {
value: null,
error: null,
type: null,
};
},
);
return form;
}
function FormHelper(form, fields = []) {
const self = form;
function resetField(fieldName) {
self[fieldName].type = 'is-info';
self[fieldName].error = null;
}
function markFieldAsDanger(fieldName, errorMsg) {
self[fieldName].error = errorMsg;
self[fieldName].type = 'is-danger';
}
function resetAllFields() {
fields.forEach(
(fieldName) => {
resetField(fieldName);
},
);
}
return {
form,
fields,
markFieldAsDanger,
resetField,
resetAllFields,
};
}
function fromFields(fields) {
const form = createFormModel(fields);
return FormHelper(form, fields);
}
export default {
createFormModel,
FormHelper,
fromFields,
};