правки
This commit is contained in:
@@ -14,7 +14,7 @@ type MainMenu struct{}
|
||||
const msgAbout = `
|
||||
<i>Главное меню</i>
|
||||
|
||||
<pre>
|
||||
<blockquote>
|
||||
За что отвечает каждая кнопка в этом окне:
|
||||
|
||||
<b>• Рабочее пространство</b> — Одно можно использовать для своих проектов, а другое, например, для проектов, где вы являетесь закупщиком.
|
||||
@@ -26,7 +26,7 @@ const msgAbout = `
|
||||
<b>• Веб-платформа</b> — Используйте функционал нашего сервиса на все 100%: планируйте размещения, просматривайте аналитику, следите за показателями проектов.
|
||||
|
||||
<b>• Помощь</b> — Изучите инструкции, как пользоваться нашим сервисом или напишите в поддержку, если возникли какие-то вопросы.
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
Чтобы делать закупы, добавьте канал и креатив:
|
||||
<b>/addchannel</b> — новый канал
|
||||
|
||||
@@ -252,6 +252,7 @@ func (s *PurchaseOptionalDetails) HandleCallback(b *bot.Bot, u *echotron.Update)
|
||||
s.Enter(b, bot.EditMessage)
|
||||
|
||||
case "back":
|
||||
// Сохраняем текущее состояние перед возвратом назад
|
||||
b.SetState(&SelectChannelsForPurchase{
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
@@ -260,6 +261,7 @@ func (s *PurchaseOptionalDetails) HandleCallback(b *bot.Bot, u *echotron.Update)
|
||||
Channels: s.Channels,
|
||||
Duplicates: []string{},
|
||||
ParsingErrors: []ParseError{},
|
||||
OptionalDetailsState: s, // Сохраняем текущее состояние
|
||||
BackState: s.BackState,
|
||||
}, bot.EditMessage)
|
||||
case "next":
|
||||
@@ -2234,6 +2236,12 @@ func (s *PurchaseOptionalDetails) createPurchase(b *bot.Bot, jwt string) {
|
||||
}
|
||||
}
|
||||
|
||||
// Очищаем сохранённое состояние после успешного создания
|
||||
// Находим SelectChannelsForPurchase в BackState и очищаем его OptionalDetailsState
|
||||
if selectState, ok := s.BackState.(*SelectChannelsForPurchase); ok {
|
||||
selectState.OptionalDetailsState = nil
|
||||
}
|
||||
|
||||
b.SetState(&Placements{
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
|
||||
@@ -34,6 +34,7 @@ type SelectChannelsForPurchase struct {
|
||||
InvalidUsernames []string
|
||||
Duplicates []string // дубликаты каналов
|
||||
ParsingErrors []ParseError // ошибки парсинга с предложениями
|
||||
OptionalDetailsState *PurchaseOptionalDetails // сохранённое состояние деталей
|
||||
BackState bot.State
|
||||
}
|
||||
|
||||
@@ -216,14 +217,23 @@ func (s *SelectChannelsForPurchase) HandleCallback(b *bot.Bot, u *echotron.Updat
|
||||
}
|
||||
|
||||
// Каналы уже резолвлены в HandleMessage, переходим к следующему шагу
|
||||
b.SetState(&PurchaseOptionalDetails{
|
||||
// Если есть сохранённое состояние - используем его, иначе создаём новое
|
||||
var optionalDetails *PurchaseOptionalDetails
|
||||
if s.OptionalDetailsState != nil {
|
||||
optionalDetails = s.OptionalDetailsState
|
||||
// Обновляем каналы на случай если они изменились
|
||||
optionalDetails.Channels = s.Channels
|
||||
} else {
|
||||
optionalDetails = &PurchaseOptionalDetails{
|
||||
ProjectID: s.ProjectID,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
CreativeID: s.CreativeID,
|
||||
CreativeTitle: s.CreativeTitle,
|
||||
Channels: s.Channels,
|
||||
BackState: s.BackState,
|
||||
}, bot.EditMessage)
|
||||
BackState: s,
|
||||
}
|
||||
}
|
||||
b.SetState(optionalDetails, bot.EditMessage)
|
||||
|
||||
case "back_to_select":
|
||||
s.Enter(b, bot.EditMessage)
|
||||
|
||||
Reference in New Issue
Block a user