Skip to content

Commit

Permalink
Merge pull request #120 from Suraj3620/visual-feedback
Browse files Browse the repository at this point in the history
Added simple warning for incorrect input
  • Loading branch information
dokempf authored Jan 21, 2025
2 parents 60fa129 + d1c2908 commit f0e51fe
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion ipywidgets_jsonschema/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,25 @@ def pattern_checker(val):
def _register_observer(h, n, t):
widget.observe(h, names=n, type=t)

warning_label = ipywidgets.Label(
"", layout=ipywidgets.Layout(color="red", display="none")
)

def _observer(change):
if not pattern_checker(widget.value):
pattern = schema.get("pattern", ".*")
warning_label.value = (
f"Warning: Input does not match the specified pattern"
)
warning_label.layout.display = "block"
change.owner.layout.border = "2px solid red"
else:
change.owner.layout.border = "none"
warning_label.value = ""
warning_label.layout.display = "none"

widget.observe(_observer, names="value", type="change")

def _setter(_d):
if pattern_checker(_d):
widget.value = _d
Expand Down Expand Up @@ -486,7 +505,7 @@ def _getter():
getter=_getter,
setter=_setter,
resetter=_resetter,
widgets=[box],
widgets=[box, warning_label],
register_observer=_register_observer,
)

Expand Down

0 comments on commit f0e51fe

Please sign in to comment.