Skip to content

Commit f0e51fe

Browse files
authored
Merge pull request #120 from Suraj3620/visual-feedback
Added simple warning for incorrect input
2 parents 60fa129 + d1c2908 commit f0e51fe

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

ipywidgets_jsonschema/form.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,25 @@ def pattern_checker(val):
439439
def _register_observer(h, n, t):
440440
widget.observe(h, names=n, type=t)
441441

442+
warning_label = ipywidgets.Label(
443+
"", layout=ipywidgets.Layout(color="red", display="none")
444+
)
445+
446+
def _observer(change):
447+
if not pattern_checker(widget.value):
448+
pattern = schema.get("pattern", ".*")
449+
warning_label.value = (
450+
f"Warning: Input does not match the specified pattern"
451+
)
452+
warning_label.layout.display = "block"
453+
change.owner.layout.border = "2px solid red"
454+
else:
455+
change.owner.layout.border = "none"
456+
warning_label.value = ""
457+
warning_label.layout.display = "none"
458+
459+
widget.observe(_observer, names="value", type="change")
460+
442461
def _setter(_d):
443462
if pattern_checker(_d):
444463
widget.value = _d
@@ -486,7 +505,7 @@ def _getter():
486505
getter=_getter,
487506
setter=_setter,
488507
resetter=_resetter,
489-
widgets=[box],
508+
widgets=[box, warning_label],
490509
register_observer=_register_observer,
491510
)
492511

0 commit comments

Comments
 (0)