layout: wrap Callback function for DefaultLayout

pull/447/head
Demian 3 years ago
parent 346b6bfe9d
commit d89e904397

@ -15,6 +15,11 @@ func (dlt *DefaultLayout) Text(k string, args ...interface{}) string {
return dlt.lt.TextLocale(dlt.locale, k, args...)
}
// Callback returns a callback endpoint used to handle buttons.
func (dlt *DefaultLayout) Callback(k string) tele.CallbackEndpoint {
return dlt.lt.Callback(k)
}
// Button wraps localized layout function Button using your default locale.
func (dlt *DefaultLayout) Button(k string, args ...interface{}) *tele.Btn {
return dlt.lt.ButtonLocale(dlt.locale, k, args...)

@ -60,7 +60,7 @@ type (
ResultContent map[string]interface{}
)
// New reads and parses the given layout file.
// New parses the given layout file.
func New(path string, funcs ...template.FuncMap) (*Layout, error) {
data, err := ioutil.ReadFile(path)
if err != nil {
@ -84,6 +84,16 @@ func New(path string, funcs ...template.FuncMap) (*Layout, error) {
return &lt, yaml.Unmarshal(data, &lt)
}
// NewDefault parses the given layout file without localization features.
// See Layout.Default for more details.
func NewDefault(path, locale string, funcs ...template.FuncMap) (*DefaultLayout, error) {
lt, err := New(path, funcs...)
if err != nil {
return nil, err
}
return lt.Default(locale), nil
}
var builtinFuncs = template.FuncMap{
// Built-in blank and helper functions.
"locale": func() string { return "" },
@ -187,8 +197,7 @@ func (lt *Layout) TextLocale(locale, k string, args ...interface{}) string {
return buf.String()
}
// Callback returns casted to CallbackEndpoint button, which mostly
// useful for handlers registering.
// Callback returns a callback endpoint used to handle buttons.
//
// Example:
// // Handling settings button

Loading…
Cancel
Save