фиксы

This commit is contained in:
Artem Tsyrulnikov
2026-02-28 13:37:58 +03:00
parent 9c8fd68ee3
commit ffd7a7c10f
4 changed files with 28 additions and 14 deletions

View File

@@ -351,12 +351,11 @@ func (s *CreativeDetails) updateCreative(b *bot.Bot) {
log.Info().Str("creative_id", s.CreativeID).Msg("Creative updated successfully")
// Возвращаемся назад
s.CleanupMessages(b)
if s.ViewMode && s.ViewBackTo != nil {
// Если открыты из view mode, возвращаемся к просмотру
b.SetState(s.ViewBackTo, bot.EditMessage)
b.SetState(s.ViewBackTo, bot.NewMessage)
} else if s.BackState != nil {
// Иначе возвращаемся к BackState
b.SetState(s.BackState, bot.EditMessage)
b.SetState(s.BackState, bot.NewMessage)
}
}
@@ -372,7 +371,8 @@ func (s *CreativeDetails) deleteCreative(b *bot.Bot) {
return
}
s.CleanupMessages(b)
if s.BackState != nil {
b.SetState(s.BackState, bot.EditMessage)
b.SetState(s.BackState, bot.NewMessage)
}
}

View File

@@ -146,6 +146,7 @@ func (e *CreativeEditorFields) CleanupMessages(b *bot.Bot) {
b.DeleteMessage(b.ChatID, *e.ControlPanelMessageID)
e.ControlPanelMessageID = nil
}
b.LastMessageID = 0
}
const mediaGroupDebounce = 2 * time.Second

View File

@@ -101,8 +101,9 @@ func (s *CreativeView) HandleCallback(b *bot.Bot, u *echotron.Update) {
switch {
case data == "back":
s.CleanupMessages(b)
if s.BackState != nil {
b.SetState(s.BackState, bot.EditMessage)
b.SetState(s.BackState, bot.NewMessage)
}
case data == "rename":
@@ -116,22 +117,22 @@ func (s *CreativeView) HandleCallback(b *bot.Bot, u *echotron.Update) {
s.showActionPanel(b)
case data == "edit":
// Переход к редактированию креатива
s.CleanupMessages(b)
b.SetState(&CreativeDetails{
CreativeID: s.CreativeID,
ProjectID: s.ProjectID,
ViewMode: true, // Флаг, что мы открылись из view mode
ViewBackTo: s, // Возврат к этому экрану после сохранения
ViewMode: true,
ViewBackTo: s,
ProjectTitle: s.ProjectTitle,
BackState: s.BackState,
}, bot.EditMessage)
}, bot.NewMessage)
case data == "toggle_tag":
// Переключение тега (testing <-> production)
s.toggleTag(b)
case data == "purchase_creative":
// Переход к созданию закупа с предвыбором проекта и креатива
s.CleanupMessages(b)
creativeTitle := ""
if s.Name != nil {
creativeTitle = *s.Name

View File

@@ -328,13 +328,25 @@ func (s *PurchaseOptionalDetails) HandleCallback(b *bot.Bot, u *echotron.Update)
if strings.HasPrefix(u.CallbackQuery.Data, "type:") {
value := strings.TrimPrefix(u.CallbackQuery.Data, "type:")
// Нормализуем значение для БД
var normalized string
switch value {
case "mutual_pr":
s.PurchaseType = "взаимный пиар"
normalized = "взаимный пиар"
case "standard":
s.PurchaseType = "стандарт"
normalized = "стандарт"
}
s.InputMode = ""
if s.CurrentChannel != "" {
s.PurchaseTypeByChannel[s.CurrentChannel] = normalized
} else {
s.PurchaseType = normalized
}
if s.ReturnMode != "" {
s.InputMode = s.ReturnMode
s.ReturnMode = ""
} else {
s.InputMode = ""
}
s.CurrentChannel = ""
s.Enter(b, bot.EditMessage)
return
}