package handlers import ( "strings" "example.com/m/bot" "example.com/m/screens" ) // HandleGlobalCallback обрабатывает глобальные callbacks из уведомлений // Возвращает новый State если callback был обработан, иначе nil func HandleGlobalCallback(callbackData string) bot.State { // pending_channel:{channel_id} - выбор workspace для нового канала if strings.HasPrefix(callbackData, "pending_channel:") { parts := strings.Split(callbackData, ":") if len(parts) == 2 { channelID := parts[1] return &screens.SelectWorkspace{ ChannelID: channelID, BackState: &screens.MainMenu{}, } } } // workspace_invite_accept:{invite_id} - принятие приглашения в workspace if strings.HasPrefix(callbackData, "workspace_invite_accept:") { parts := strings.Split(callbackData, ":") if len(parts) == 2 { inviteID := parts[1] return &screens.AcceptWorkspaceInvite{ InviteID: inviteID, } } } // Здесь можно добавлять другие глобальные callback паттерны // Например: // if strings.HasPrefix(callbackData, "notification:") { ... } // if strings.HasPrefix(callbackData, "alert:") { ... } return nil }