diff --git a/tg_bot/screens/creative_details.go b/tg_bot/screens/creative_details.go
index bf18b91..cc078b0 100644
--- a/tg_bot/screens/creative_details.go
+++ b/tg_bot/screens/creative_details.go
@@ -31,6 +31,12 @@ type CreativeDetails struct {
}
func (s *CreativeDetails) Enter(b *bot.Bot, mode bot.RenderMode) {
+ // Удаляем сообщение предыдущего экрана
+ if b.LastMessageID != 0 {
+ b.DeleteMessage(b.ChatID, b.LastMessageID)
+ b.LastMessageID = 0
+ }
+
creative, err := b.Backend.GetCreative(context.Background(), b.Session.JWT, b.Session.WorkspaceID, s.CreativeID)
if err != nil {
log.Error().Err(err).Str("creative_id", s.CreativeID).Msg("Failed to get creative")
diff --git a/tg_bot/screens/creative_view.go b/tg_bot/screens/creative_view.go
index 6a94151..e4c1160 100644
--- a/tg_bot/screens/creative_view.go
+++ b/tg_bot/screens/creative_view.go
@@ -2,6 +2,7 @@ package screens
import (
"context"
+ "fmt"
"strings"
"github.com/NicoNex/echotron/v3"
@@ -29,13 +30,17 @@ type CreativeView struct {
renaming bool // режим ввода нового названия
}
-const msgCreativeView = `
-📋 Просмотр креатива
-
-Выберите действие:
-`
+func msgCreativeView(name string) string {
+ return fmt.Sprintf("📋 %s\n\nВыберите действие:", name)
+}
func (s *CreativeView) Enter(b *bot.Bot, mode bot.RenderMode) {
+ // Удаляем сообщение предыдущего экрана (его клавиатуру не очищает SendCreativePreview)
+ if b.LastMessageID != 0 {
+ b.DeleteMessage(b.ChatID, b.LastMessageID)
+ b.LastMessageID = 0
+ }
+
// Сбрасываем старые ID — при re-enter всегда создаём свежие сообщения
s.CreativeMessageID = nil
s.ControlPanelMessageID = nil
@@ -201,7 +206,11 @@ func (s *CreativeView) showActionPanel(b *bot.Bot) {
),
}
- s.ShowControlPanel(b, msgCreativeView, buttons)
+ name := "Креатив"
+ if s.Name != nil && *s.Name != "" {
+ name = *s.Name
+ }
+ s.ShowControlPanel(b, msgCreativeView(name), buttons)
}
// toggleTag переключает тег креатива (testing <-> production)