Skip to content

Commit 22535f4

Browse files
committed
feat: hide empty errors option
1 parent eb8e9f2 commit 22535f4

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

config/options.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
],
1818
'useDataAttributes' => false, // uses data-form-url instead of action
1919
'mode' => 'prg', // prg / api / htmx
20+
'hideEmptyErrors' => false, // hide error elements when there's no error message
2021
'multiStep' => true, // Enable multi-step forms
2122
'storeSubmissions' => true, // Store submissions in the content folder
2223
'partialSubmissions' => true, // Allow partial submissions toggle in panel (requires precognition)

snippets/fields/partials/error.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010
*/
1111

1212
use Kirby\Toolkit\A;
13+
use tobimori\DreamForm\DreamForm;
1314

14-
$error = $submission?->errorFor($block->key(), $form) ?>
15+
$error = $submission?->errorFor($block->key(), $form);
16+
$hideEmptyErrors = DreamForm::option('hideEmptyErrors');
17+
18+
if (!$hideEmptyErrors || $error) : ?>
1519

1620
<span <?= attr(A::merge(
1721
$attr['error'] ?? [],
@@ -21,4 +25,6 @@
2125
'role' => 'alert',
2226
'aria-atomic' => true
2327
]
24-
)) ?>><?= $error ?></span>
28+
)) ?>><?= $error ?></span>
29+
30+
<?php endif; ?>

snippets/form.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*/
1111

1212
use Kirby\Toolkit\A;
13+
use tobimori\DreamForm\DreamForm;
1314

1415
$attr = A::merge([
1516
// general attributes
@@ -98,16 +99,21 @@
9899
)) ?>>
99100
<?php snippet('dreamform/session', ['form' => $form, 'submission' => $submission]) ?>
100101

101-
<div <?= attr(A::merge(['data-error' => true, 'role' => 'alert', 'aria-atomic' => true], $attr['error'])) ?>><?= $submission?->errorFor(null, $form) ?></div>
102+
<?php
103+
$formError = $submission?->errorFor(null, $form);
104+
$hideEmptyErrors = DreamForm::option('hideEmptyErrors');
105+
if (!$hideEmptyErrors || $formError) : ?>
106+
<div <?= attr(A::merge(['data-error' => true, 'role' => 'alert', 'aria-atomic' => true], $attr['error'])) ?>><?= $formError ?></div>
107+
<?php endif; ?>
102108

103109
<?php foreach ($form->currentLayouts() as $layoutRow) : ?>
104110
<div <?= attr(A::merge($attr['row'], [
105-
'style' => 'display: grid; grid-template-columns: repeat(12, 1fr);',
106-
])) ?>>
111+
'style' => 'display: grid; grid-template-columns: repeat(12, 1fr);',
112+
])) ?>>
107113
<?php foreach ($layoutRow->columns() as $layoutColumn) : ?>
108114
<div <?= attr(A::merge($attr['column'], [
109-
'style' => "grid-column-start: span {$layoutColumn->span(12)};",
110-
])) ?>>
115+
'style' => "grid-column-start: span {$layoutColumn->span(12)};",
116+
])) ?>>
111117
<?php foreach ($layoutColumn->blocks() as $block) {
112118
// get the field instance to access field methods
113119
$field = $block->toFormField($form->formFields());
@@ -128,4 +134,4 @@
128134
<?php endforeach ?>
129135
</div>
130136
<?php endforeach; ?>
131-
</form>
137+
</form>

0 commit comments

Comments
 (0)