@dile/crud
Advanced tools
Comparing version 0.0.46 to 0.0.47
@@ -21,3 +21,3 @@ import { LitElement, html, css } from 'lit'; | ||
.actions { | ||
margin-top: var(--dile-ajax-form-actions-margin-top, 1.2rem); | ||
margin-top: var(--dile-ajax-form-actions-margin-top, 1rem); | ||
padding-left: 3px; | ||
@@ -40,2 +40,3 @@ } | ||
responseAdapter: { type: Object }, | ||
sendDataAsFormData: { type: Boolean }, | ||
}; | ||
@@ -103,2 +104,3 @@ } | ||
language="${this.language}" | ||
?sendDataAsFormData=${this.sendDataAsFormData} | ||
></dile-ajax> | ||
@@ -105,0 +107,0 @@ ` |
@@ -12,2 +12,3 @@ import { LitElement, html } from 'lit'; | ||
statusSuccessCodes: { type: Array }, | ||
sendDataAsFormData: { type: Boolean }, | ||
} | ||
@@ -18,3 +19,2 @@ } | ||
super(); | ||
this.data = {}; | ||
this.method = 'post'; | ||
@@ -25,7 +25,17 @@ this.url = ''; | ||
get computedData() { | ||
if(this.formData) { | ||
return this.formData; | ||
} | ||
return this.data || {}; | ||
} | ||
generateRequest() { | ||
let request; | ||
if(this.sendDataAsFormData) { | ||
this._prepareFormData(); | ||
} | ||
switch(this.method.toLowerCase().trim()) { | ||
case 'post': | ||
request = this.axiosInstance.post(this.url, this.data); | ||
request = this.axiosInstance.post(this.url, this.computedData); | ||
break; | ||
@@ -38,9 +48,9 @@ case 'get': | ||
case 'put': | ||
request = this.axiosInstance.put(this.url, this.data); | ||
request = this.axiosInstance.put(this.url, this.computedData); | ||
break; | ||
case 'delete': | ||
request = this.axiosInstance.delete(this.url, this.data); | ||
request = this.axiosInstance.delete(this.url, this.computedData); | ||
break; | ||
case 'patch': | ||
request = this.axiosInstance.patch(this.url, this.data); | ||
request = this.axiosInstance.patch(this.url, this.computedData); | ||
break | ||
@@ -69,2 +79,5 @@ } | ||
}) | ||
.finally(() => { | ||
this.formData = null; | ||
}); | ||
} | ||
@@ -118,3 +131,21 @@ | ||
} | ||
_prepareFormData() { | ||
this._createFormData(); | ||
this._addObjectToFormData(this.data); | ||
} | ||
_createFormData() { | ||
this.formData = new FormData(); | ||
} | ||
_addObjectToFormData(data) { | ||
if (!this.formData) { | ||
this.createFormData(); | ||
} | ||
for (const key in data) { | ||
this.formData.append(key, data[key]); | ||
} | ||
} | ||
} | ||
{ | ||
"name": "@dile/crud", | ||
"version": "0.0.46", | ||
"version": "0.0.47", | ||
"description": "Components to create a generic crud system based on Web Components and Lit", | ||
@@ -27,3 +27,3 @@ "main": "index.js", | ||
"dependencies": { | ||
"@dile/ui": "^2.1.23", | ||
"@dile/ui": "^2.1.24", | ||
"axios": "^1.7.2", | ||
@@ -35,3 +35,3 @@ "lit": "^2.7.0 || ^3.0.0" | ||
}, | ||
"gitHead": "453ef1fb92c0c84f23635cb36a7d4896cdabd845" | ||
"gitHead": "a4a717f1aa0deee5f86b7c74b53a9ccaee11552d" | ||
} |
112969
3428
Updated@dile/ui@^2.1.24