1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-06-06 23:46:13 +02:00

pkg/gui: Add support for 'notification' popups

Add a new 'Notification()' method to 'IPopupHandler' that makes it easier to
show a modal info message to the user. This is simply a convenience wrapper
around 'Ask()', so the popup can be closed using both 'Enter' and 'ESC'.
This commit is contained in:
Moritz Haase 2022-03-24 11:19:08 +01:00 committed by Jesse Duffield
parent ac406f57ff
commit 9bccc20888
2 changed files with 13 additions and 1 deletions

View File

@ -85,6 +85,10 @@ func (self *RealPopupHandler) ErrorMsg(message string) error {
}) })
} }
func (self *RealPopupHandler) Alert(title string, message string) error {
return self.Ask(types.AskOpts{Title: title, Prompt: message})
}
func (self *RealPopupHandler) Ask(opts types.AskOpts) error { func (self *RealPopupHandler) Ask(opts types.AskOpts) error {
self.Lock() self.Lock()
self.index++ self.index++
@ -147,7 +151,7 @@ func (self *RealPopupHandler) WithLoaderPanel(message string, f func() error) er
} }
// returns the content that has currently been typed into the prompt. Useful for // returns the content that has currently been typed into the prompt. Useful for
// asyncronously updating the suggestions list under the prompt. // asynchronously updating the suggestions list under the prompt.
func (self *RealPopupHandler) GetPromptInput() string { func (self *RealPopupHandler) GetPromptInput() string {
return self.getPromptInputFn() return self.getPromptInputFn()
} }
@ -168,6 +172,10 @@ func (self *TestPopupHandler) ErrorMsg(message string) error {
return self.OnErrorMsg(message) return self.OnErrorMsg(message)
} }
func (self *TestPopupHandler) Alert(title string, message string) error {
panic("not yet implemented")
}
func (self *TestPopupHandler) Ask(opts types.AskOpts) error { func (self *TestPopupHandler) Ask(opts types.AskOpts) error {
return self.OnAsk(opts) return self.OnAsk(opts)
} }

View File

@ -50,6 +50,10 @@ type IGuiCommon interface {
type IPopupHandler interface { type IPopupHandler interface {
ErrorMsg(message string) error ErrorMsg(message string) error
Error(err error) error Error(err error) error
// Shows a notification popup with the given title and message to the user.
//
// This is a convenience wrapper around Ask(), thus the popup can be closed using both 'Enter' and 'ESC'.
Alert(title string, message string) error
Ask(opts AskOpts) error Ask(opts AskOpts) error
Prompt(opts PromptOpts) error Prompt(opts PromptOpts) error
WithLoaderPanel(message string, f func() error) error WithLoaderPanel(message string, f func() error) error