OpenZeppelin / OpenZeppelin/contracts-wizard
Provide better feedback in UI when input is invalid
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 294
- Forks
- 186
- Avg merge
- 6h 46m
- Merged PRs (30d)
- 22
Description
Certain input fields in the UI perform validations on the input, and would show an error on that field if the input is deemed to be invalid.
If a field has an error, no other input takes effect until the error is fixed.
If multiple fields have errors, only the first one is shown. For example, this can be seen when inputting just a in both Voting Delay and Proposal Threshold for Governor.
This can be improved to give better feedback to the user, in case the user did not notice the error. If the user keeps making input changes while there is an error, they may not realize that the resulting contract is not being updated, and may download or copy the stale contract anyways.
Specifically, consider:
- Making input errors more obvious (e.g. always showing the error message, not just when hovering over the field).
- Disabling the Copy, Open in Remix, or Download buttons until all errors are fixed, and show a hover message for those on why they are disabled.
- Allowing multiple errors to be shown at the same time.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the UI validation behavior for Voting Delay and Proposal Threshold, then inspect the Copy, Open in Remix, and Download controls. Compare how field errors and blocked updates are currently presented. Done means invalid input is clearly surfaced, all relevant errors can be seen, and export or copy actions explain why they are unavailable until errors are fixed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100