diff --git a/src/apps/actor/base-sheet.js b/src/apps/actor/base-sheet.js index 764608aa..7e7258a9 100644 --- a/src/apps/actor/base-sheet.js +++ b/src/apps/actor/base-sheet.js @@ -12,7 +12,6 @@ export class DS4ActorSheet extends foundry.applications.api.DocumentSheetV2 { classes: ["sheet", "ds4-actor-sheet"], tag: "form", form: { - handler: DS4ActorSheet.prototype._onSubmitForm, submitOnChange: true, closeOnSubmit: false, }, @@ -172,30 +171,19 @@ export class DS4ActorSheet extends foundry.applications.api.DocumentSheetV2 { } /** - * Handle form submission + * Process form data for submission * @param {Event} event - The form submission event * @param {HTMLFormElement} form - The form element * @param {FormDataExtended} formData - The form data + * @returns {object} The processed form data */ - async _onSubmitForm(event, form, formData) { - const submitData = this._prepareSubmitData(event, form, formData); - await this.document.update(submitData); - } - - /** - * Prepare data for form submission - * @param {Event} event - The form submission event - * @param {HTMLFormElement} form - The form element - * @param {FormDataExtended} formData - The form data - * @returns {object} The prepared submit data - */ - _prepareSubmitData(event, form, formData) { - const submitData = super._prepareSubmitData(event, form, formData); + _processFormData(event, form, formData) { + const submitData = foundry.utils.expandObject(formData.object); // Parse values for specific fields - for (const [key, value] of Object.entries(submitData)) { + for (const [key, value] of Object.entries(formData.object)) { if (key.includes("system.") && typeof value === "string") { - submitData[key] = this.parseValue(value); + foundry.utils.setProperty(submitData, key, this.parseValue(value)); } }