изображения projects!
This commit is contained in:
@@ -29,6 +29,11 @@ func (s *ProjectDetails) Enter(b *bot.Bot, mode bot.RenderMode) {
|
||||
text := s.formatProjectDetails()
|
||||
keyboard := s.buildKeyboard()
|
||||
b.Render(text, keyboard, mode)
|
||||
|
||||
messageID := b.LastMessageID
|
||||
username := usernameFromProject(s.Project)
|
||||
status := statusFromProject(s.Project)
|
||||
updateProjectHeaderMedia(b, messageID, text, keyboard, s.Project.TelegramID, s.Project.Title, username, status)
|
||||
}
|
||||
|
||||
func (s *ProjectDetails) formatProjectDetails() string {
|
||||
@@ -123,24 +128,31 @@ func (s *ProjectDetails) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
case data == "back_to_projects", data == "back":
|
||||
s.confirmingLinkTypeChange = false // Сбрасываем флаг подтверждения
|
||||
if s.BackState != nil {
|
||||
b.SetState(s.BackState, bot.EditMessage)
|
||||
s.transitionWithNewMessage(b, s.BackState)
|
||||
}
|
||||
|
||||
case strings.HasPrefix(data, "creatives:"):
|
||||
s.confirmingLinkTypeChange = false // Сбрасываем флаг подтверждения
|
||||
b.SetState(&Creatives{
|
||||
ProjectID: s.Project.ID,
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
BackState: s,
|
||||
ProjectID: s.Project.ID,
|
||||
ProjectTitle: s.Project.Title,
|
||||
ProjectTelegramID: s.Project.TelegramID,
|
||||
ProjectUsername: usernameFromProject(s.Project),
|
||||
ProjectStatus: statusFromProject(s.Project),
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
BackState: s,
|
||||
}, bot.EditMessage)
|
||||
|
||||
case strings.HasPrefix(data, "placements:"):
|
||||
s.confirmingLinkTypeChange = false // Сбрасываем флаг подтверждения
|
||||
b.SetState(&Placements{
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
ProjectID: s.Project.ID,
|
||||
ProjectTitle: s.Project.Title,
|
||||
BackState: s,
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
ProjectID: s.Project.ID,
|
||||
ProjectTitle: s.Project.Title,
|
||||
ProjectTelegramID: s.Project.TelegramID,
|
||||
ProjectUsername: usernameFromProject(s.Project),
|
||||
ProjectStatus: statusFromProject(s.Project),
|
||||
BackState: s,
|
||||
}, bot.EditMessage)
|
||||
|
||||
case data == "back_to_project":
|
||||
@@ -203,3 +215,28 @@ func (s *ProjectDetails) HandleMessage(_ *bot.Bot, _ *echotron.Update) { return
|
||||
func (s *ProjectDetails) Handle(_ *bot.Bot, _ *echotron.Update) { return }
|
||||
|
||||
func (s *ProjectDetails) Exit() {}
|
||||
|
||||
func (s *ProjectDetails) transitionWithNewMessage(b *bot.Bot, next bot.State) {
|
||||
if b.LastMessageID != 0 {
|
||||
if _, err := b.DeleteMessage(b.ChatID, b.LastMessageID); err != nil {
|
||||
log.Error().Err(err).Msg("DeleteMessage failed")
|
||||
} else {
|
||||
b.LastMessageID = 0
|
||||
}
|
||||
}
|
||||
b.SetState(next, bot.NewMessage)
|
||||
}
|
||||
|
||||
func usernameFromProject(p *backend.Project) string {
|
||||
if p == nil || p.Username == nil {
|
||||
return ""
|
||||
}
|
||||
return *p.Username
|
||||
}
|
||||
|
||||
func statusFromProject(p *backend.Project) string {
|
||||
if p == nil {
|
||||
return ""
|
||||
}
|
||||
return p.Status
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user