It is finally time for another Bubble Tea release!
This release contains 31 commits by 14 contributors. Thank you everyone! 💕
Without further ado, here's a list of the most important changes:
Message handling and filtering
The tea.QuitMsg
is now exported and you can use tea.WithFilter
to filter which messages your model will receive:
func filter(m tea.Model, msg tea.Msg) tea.Msg {
if _, ok := msg.(tea.QuitMsg); !ok {
return msg
}
model := m.(myModel)
if model.hasChanges {
return nil
}
return msg
}
p := tea.NewProgram(Model{}, tea.WithFilter(filter));
if _,err := p.Run(); err != nil {
fmt.Println("Error running program:", err)
os.Exit(1)
}
Testing
We are introducing an our very own /x
package, which contains the teatest
package.
With teatest
, you can easily run a tea.Program
, assert its final model and/or output.
This package required a couple of new methods on Bubble Tea, namely Program.Wait()
, WithoutSignals
.
You can see an example usage in the simple
example.
Bug fixing
We try hard to not let any of them pass, but we know, sometimes a few of them do. This release also gets rid of a bunch of them.
What's Changed
- feat: LogToFileWith by @caarlos0 in #692
- feat: add generic event filter by @muesli in #536
- feat(deps): bump golang.org/x/text from 0.3.7 to 0.3.8 by @dependabot in #674
- feat(ci): auto go mod tidy examples by @caarlos0 in #561
- feat: tea.Wait by @caarlos0 in #722
- feat: allow to disable signals by @caarlos0 in #721
- fix: Check if program cancelReader is is nil before invoking by @nderjung in #643
- fix: renderer only stops once by @muesli in #685
- fix: stop renderer before launching a child process. by @muesli in #686
- fix(output): reuse termenv output by @aymanbagabas in #715
- chore: make input options mutually exclusive by @meowgorithm in #734
- chore: bump console dep by @muesli in #700
- chore(deps): bump actions/setup-go from 3 to 4 by @dependabot in #701
- chore: bump termenv, lipgloss, x/term by @muesli in #711
- docs: using the x/exp/teatest package by @caarlos0 in #352
- docs: fix portal markdown URL syntax by @mjmammoth in #669
- docs: fix typos and clean up comments by @gzipChrist in #672
- docs: countdown to Bubble Tea in the Wild by @aldernero in #679
- docs: issue template by @caarlos0 in #389
- docs: update issue templates by @bashbunni in #712
- docs: remove british spelling by @bashbunni in #719
- docs: add WG Commander to README.md by @AndrianBdn in #667
- docs: filepicker Example by @maaslalani in #683
- docs(README): add eks-node-viewer to "Bubble Tea in the Wild" list by @Nezz7 in #619
New Contributors
- @mjmammoth made their first contribution in #669
- @gzipChrist made their first contribution in #672
- @Nezz7 made their first contribution in #619
- @AndrianBdn made their first contribution in #667
- @aldernero made their first contribution in #679
Full Changelog: v0.23.2...v0.24.0
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.