mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-10-08 22:52:12 +02:00
So far, confirmations and prompts were handled by the same view, context, and controller, with a bunch of conditional code based on whether the view is editable. This was more or less ok so far, since it does save a little bit of code duplication; however, now we need separate views, because we don't have dynamic keybindings, but we want to map "confirm" to different keys in confirmations (the "universal.confirm" user config) and prompts (hard-coded to enter, because it doesn't make sense to customize it there). It also allows us to get rid of the conditional code, which is a nice benefit; and the code duplication is actually not *that* bad.
31 lines
635 B
Go
31 lines
635 B
Go
package context
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
|
)
|
|
|
|
type PromptContext struct {
|
|
*SimpleContext
|
|
c *ContextCommon
|
|
|
|
State ConfirmationContextState
|
|
}
|
|
|
|
var _ types.Context = (*PromptContext)(nil)
|
|
|
|
func NewPromptContext(
|
|
c *ContextCommon,
|
|
) *PromptContext {
|
|
return &PromptContext{
|
|
c: c,
|
|
SimpleContext: NewSimpleContext(NewBaseContext(NewBaseContextOpts{
|
|
View: c.Views().Prompt,
|
|
WindowName: "prompt",
|
|
Key: PROMPT_CONTEXT_KEY,
|
|
Kind: types.TEMPORARY_POPUP,
|
|
Focusable: true,
|
|
HasUncontrolledBounds: true,
|
|
})),
|
|
}
|
|
}
|