@@ -74,7 +74,8 @@ func (lt *Layout) UnmarshalYAML(data []byte) error {
7474 // 1. Shortened reply button
7575
7676 if v , ok := v .(string ); ok {
77- lt .buttons [k ] = Button {Text : v }
77+ btn := tele.Btn {Text : v }
78+ lt .buttons [k ] = Button {Btn : btn }
7879 continue
7980 }
8081
@@ -85,29 +86,26 @@ func (lt *Layout) UnmarshalYAML(data []byte) error {
8586 return err
8687 }
8788
88- var btn struct {
89- Button `yaml:",inline"`
90- Data interface {} `yaml:"data"`
91- }
89+ var btn Button
9290 if err := yaml .Unmarshal (data , & btn ); err != nil {
9391 return err
9492 }
9593
96- if btn .Data != nil {
94+ if ! btn . IsReply && btn .Data != nil {
9795 if a , ok := btn .Data .([]interface {}); ok {
9896 s := make ([]string , len (a ))
9997 for i , v := range a {
10098 s [i ] = fmt .Sprint (v )
10199 }
102- btn .Button .Data = strings .Join (s , "|" )
100+ btn .Btn .Data = strings .Join (s , "|" )
103101 } else if s , ok := btn .Data .(string ); ok {
104- btn .Button .Data = s
102+ btn .Btn .Data = s
105103 } else {
106104 return fmt .Errorf ("telebot/layout: invalid callback_data for %s button" , k )
107105 }
108106 }
109107
110- lt .buttons [k ] = btn . Button
108+ lt .buttons [k ] = btn
111109 }
112110
113111 lt .markups = make (map [string ]Markup , len (aux .Markups ))
@@ -152,7 +150,10 @@ func (lt *Layout) UnmarshalYAML(data []byte) error {
152150 inline := btn .URL != "" ||
153151 btn .Unique != "" ||
154152 btn .InlineQuery != "" ||
155- btn .InlineQueryChat != ""
153+ btn .InlineQueryChat != "" ||
154+ btn .Login != nil ||
155+ btn .WebApp != nil
156+ inline = ! btn .IsReply && inline
156157
157158 if markup .inline == nil {
158159 markup .inline = & inline
0 commit comments