This release of Bubbles allows you to handle input validation by defining validation functions that ensure the user is typing text that you expect.
The Validate API introduces a function that is called every time the input changes to ensure that it is still valid input.
// ValidateFunc is a function that returns an error if the input is invalid.
type ValidateFunc func(string) error
// Validate is a function that checks whether or not the text within the
// input is valid. If it is not valid, the Err field will be set to the
// error returned by the function. If the function is not defined, all
// input is considered valid.
Validate ValidateFunc
View the Example Code to see Validate and ValidateFuncs work in code.
With these awesome changes introduced by @IllusionMan1212, we can now build forms that ensure all input is valid like a credit card input form!
See the full example to handle input validation in your Bubble Tea apps.
Custom List Status Bar Item Names
Thanks to @wesleimp, lists now have a new function to allow you to set a custom status bar item name. Simply call SetStatusBarItemName on your list with the singular and plural name of your list item and Bubbles will handle the rest (defaults to "item", "items").
list.SetStatusBarItemName("grocery", "groceries")
This will change the string displayed underneath the Title of the list, in this case the item name is being used for displaying 2 groceries.
New Spinners 💫
This release contains two brand new spinners introduced by @wesleimp, check them out:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/charmbracelet/bubbles from 0.11.0 to 0.12.0.
Release notes
Sourced from github.com/charmbracelet/bubbles's releases.
... (truncated)
Commits
42f85b4
docs: fix paginator example link (#177)4d0a0ea
docs(spinner): correct comment about internal ID (#171)658a4fe
feat: new Hamburger + Meter spinners (#172)93e4642
docs(list): fix linting errors57d79da
feat(list): ability toSetStatusBarItemName
(#169)e57fd29
feat: added Validate function for textinput54869f7
docs(spinner): remove obsolete comment (#168)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)