tg/src/behx/action.go

36 lines
689 B
Go
Raw Normal View History

2023-07-09 01:28:59 +03:00
package behx
// Implementing the intereface lets you
// provide behaviour for the buttons etc.
type Action interface {
Act(*Context)
2023-07-09 01:28:59 +03:00
}
// Customized action for the bot.
type CustomAction func(*Context)
2023-07-09 01:28:59 +03:00
// The type implements changing screen to the underlying ScreenId
type ScreenChange ScreenId
// Returns new ScreenChange.
func NewScreenChange(screen string) ScreenChange {
return ScreenChange(screen)
}
// Returns new CustomAction.
func NewCustomAction(fn func(*Context)) CustomAction {
2023-07-09 01:28:59 +03:00
return CustomAction(fn)
}
func (sc ScreenChange) Act(c *Context) {
2023-07-12 14:06:05 +03:00
err := c.ChangeScreen(ScreenId(sc))
if err != nil {
panic(err)
}
2023-07-09 01:28:59 +03:00
}
func (ca CustomAction) Act(c *Context) {
ca(c)
2023-07-09 01:28:59 +03:00
}