Skip to content

Commit 1bcdff1

Browse files
committed
issue 2142 has been fixed.
1 parent 3391eb5 commit 1bcdff1

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

packages/Webkul/WebForm/src/Resources/views/settings/web-forms/preview.blade.php

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,21 @@ class="primary-button"
8080
},
8181
8282
methods: {
83-
create(params, { resetForm }) {
83+
create(params, { resetForm, setErrors }) {
8484
this.isStoring = true;
8585
8686
const formData = new FormData(this.$refs.webForm);
8787
88+
let inputNames = Array.from(formData.keys());
89+
90+
inputNames = inputNames.reduce((acc, name) => {
91+
const dotName = name.replace(/\[([^\]]+)\]/g, '.$1');
92+
93+
acc[dotName] = name;
94+
95+
return acc;
96+
}, {});
97+
8898
this.$axios
8999
.post('{{ route('admin.settings.web_forms.form_store', $webForm->id) }}', formData, {
90100
headers: {
@@ -105,7 +115,30 @@ class="primary-button"
105115
return;
106116
}
107117
108-
this.$emitter.emit('add-flash', { type: 'error', message: error.response.data.message });
118+
if (! error.response.data.errors) {
119+
this.$emitter.emit('add-flash', { type: 'error', message: error.response.data.message });
120+
121+
return;
122+
}
123+
124+
const laravelErrors = error.response.data.errors || {};
125+
const mappedErrors = {};
126+
127+
for (
128+
const [dotKey, messages]
129+
of Object.entries(laravelErrors)
130+
) {
131+
const inputName = inputNames[dotKey];
132+
133+
if (
134+
inputName
135+
&& messages.length
136+
) {
137+
mappedErrors[inputName] = messages[0];
138+
}
139+
}
140+
141+
setErrors(mappedErrors);
109142
})
110143
.finally(() => {
111144
this.isStoring = false;

0 commit comments

Comments
 (0)