From eb3c952c12ef3a044d339b1093a821f1c0d0cd07 Mon Sep 17 00:00:00 2001 From: Artem Tsyrulnikov Date: Mon, 2 Feb 2026 12:13:37 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tg_bot/screens/creative_details.go | 16 ---------------- tg_bot/screens/creative_editor.go | 7 ++++--- tg_bot/screens/creative_view.go | 11 ++--------- 3 files changed, 6 insertions(+), 28 deletions(-) diff --git a/tg_bot/screens/creative_details.go b/tg_bot/screens/creative_details.go index 3e7ef21..961b1d9 100644 --- a/tg_bot/screens/creative_details.go +++ b/tg_bot/screens/creative_details.go @@ -121,19 +121,6 @@ func (s *CreativeDetails) HandleCallback(b *bot.Bot, u *echotron.Update) { s.UpdateCreativePreview(b) s.showManagementPanelWithDelete(b) - case data == "edit_tag": - s.ShowTagPanel(b) - - case data == "tag_testing": - tag := "testing" - s.Tag = &tag - s.showManagementPanelWithDelete(b) - - case data == "tag_production": - tag := "production" - s.Tag = &tag - s.showManagementPanelWithDelete(b) - case data == "cancel_add_button": // Отменяем добавление кнопки s.CancelPendingButton(b) @@ -366,11 +353,9 @@ func (s *CreativeDetails) updateCreative(b *bot.Bot) { // Возвращаемся назад if s.ViewMode && s.ViewBackTo != nil { // Если открыты из view mode, возвращаемся к просмотру - b.SendNew("✅ Креатив успешно обновлен!", Keyboard()) b.SetState(s.ViewBackTo, bot.EditMessage) } else if s.BackState != nil { // Иначе возвращаемся к BackState - b.SendNew("✅ Креатив успешно обновлен!", Keyboard()) b.SetState(s.BackState, bot.EditMessage) } } @@ -388,7 +373,6 @@ func (s *CreativeDetails) deleteCreative(b *bot.Bot) { } if s.BackState != nil { - b.SendNew("✅ Креатив успешно удален!", Keyboard()) b.SetState(s.BackState, bot.EditMessage) } } diff --git a/tg_bot/screens/creative_editor.go b/tg_bot/screens/creative_editor.go index a5e1065..f700618 100644 --- a/tg_bot/screens/creative_editor.go +++ b/tg_bot/screens/creative_editor.go @@ -400,6 +400,10 @@ func (e *CreativeEditorFields) SendCreativePreview(b *bot.Bot) { // ВАЖНО: Сохраняем копию значения, а не указатель на переменную! e.CreativeMessageID = &msgID e.previousMediaItems = copyMediaItems(e.MediaItems) + + // Устанавливаем LastMessageID чтобы ShowControlPanel мог корректно работать + // ВАЖНО: Это позволяет избежать конфликтов при навигации между экранами + b.LastMessageID = msgID } // UpdateCreativePreview обновляет превью креатива @@ -664,9 +668,6 @@ func (e *CreativeEditorFields) BuildEditorButtons(confirmText, confirmCallback, } buttons = append(buttons, Row(Button(addButtonLabel, addButtonCallback))) - // Кнопка выбора тега - buttons = append(buttons, Row(Button(e.GetTagLabel(), "edit_tag"))) - // Кнопка удаления медиа (если медиа добавлено) if len(e.MediaItems) > 0 { label := "⌫ Убрать медиа" diff --git a/tg_bot/screens/creative_view.go b/tg_bot/screens/creative_view.go index 01e4ffc..03c50f7 100644 --- a/tg_bot/screens/creative_view.go +++ b/tg_bot/screens/creative_view.go @@ -108,7 +108,7 @@ func (s *CreativeView) HandleCallback(b *bot.Bot, u *echotron.Update) { ViewBackTo: s, // Возврат к этому экрану после сохранения ProjectTitle: s.ProjectTitle, BackState: s.BackState, - }, bot.NewMessage) + }, bot.EditMessage) case data == "toggle_tag": // Переключение тега (testing <-> production) @@ -206,13 +206,6 @@ func (s *CreativeView) toggleTag(b *bot.Bot) { // Обновляем локальное значение s.Tag = &newTag - // Показываем успех и обновляем панель - tagText := "🧪 Тестовый" - if newTag == "production" { - tagText = "🚀 Рабочий" - } - b.SendNew(fmt.Sprintf("✅ Тег изменен на «%s»", tagText), Keyboard()) - - // Обновляем панель + // Обновляем панель (показывает новый тег) s.showActionPanel(b) }