diff --git a/classes/Models/FormPage.php b/classes/Models/FormPage.php index 75ab2c4..3a895ea 100644 --- a/classes/Models/FormPage.php +++ b/classes/Models/FormPage.php @@ -57,7 +57,7 @@ public function htmxAttr(Page $page, array $attr): array 'hx-vals' => Json::encode(array_filter([ 'dreamform:page' => Htmx::encrypt($page->uuid()->toString()), 'dreamform:attr' => Htmx::encrypt(Json::encode($attr)) - ], fn ($value) => $value !== null)) + ], fn($value) => $value !== null)) ]; return $htmx; @@ -333,7 +333,14 @@ public function render(array $data = [], $contentType = 'html'): string // if dreamform is used in API mode, return the submission state as JSON if ($mode === 'api') { $kirby->response()->code($submission->isSuccessful() ? 200 : 400); - return json_encode(A::merge($submission->state()->toArray(), $this->isMultiStep() ? [ + return json_encode(A::merge(array_filter($submission->state()->toArray(), fn($key) => A::has([ + 'success', + 'step', + 'redirect', + 'error', + 'errors', + 'actions' + ], $key), ARRAY_FILTER_USE_KEY), $this->isMultiStep() ? [ 'session' => Htmx::encrypt($submission->slug()) ] : []), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT); }