parent
88b9bc32ff
commit
279148fb0f
@ -512,7 +512,14 @@ func actionChangeChannel(ctx *context.AppContext) {
|
|||||||
var haveThreads bool
|
var haveThreads bool
|
||||||
if len(threads) > 0 {
|
if len(threads) > 0 {
|
||||||
haveThreads = true
|
haveThreads = true
|
||||||
ctx.View.Threads.SetChannels(threads)
|
|
||||||
|
// Make the first thread the current Channel
|
||||||
|
ctx.View.Threads.SetChannels(
|
||||||
|
append(
|
||||||
|
[]components.ChannelItem{ctx.View.Channels.GetSelectedChannel()},
|
||||||
|
threads...,
|
||||||
|
),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set channel name for the Chat pane
|
// Set channel name for the Chat pane
|
||||||
@ -549,17 +556,40 @@ func actionChangeThread(ctx *context.AppContext) {
|
|||||||
// Clear messages from Chat pane
|
// Clear messages from Chat pane
|
||||||
ctx.View.Chat.ClearMessages()
|
ctx.View.Chat.ClearMessages()
|
||||||
|
|
||||||
// TODO: err
|
// The first channel in the Thread list is current Channel. Set context
|
||||||
msgs, _ := ctx.Service.GetMessageByID(
|
// Focus and messages accordingly.
|
||||||
|
var err error
|
||||||
|
msgs := []components.Message{}
|
||||||
|
if ctx.View.Threads.SelectedChannel == 0 {
|
||||||
|
ctx.Focus = context.ChatFocus
|
||||||
|
|
||||||
|
msgs, _, err = ctx.Service.GetMessages(
|
||||||
|
ctx.View.Channels.ChannelItems[ctx.View.Channels.SelectedChannel].ID,
|
||||||
|
ctx.View.Chat.GetMaxItems(),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
termbox.Close()
|
||||||
|
log.Println(err)
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ctx.Focus = context.ThreadFocus
|
||||||
|
|
||||||
|
msgs, err = ctx.Service.GetMessageByID(
|
||||||
ctx.View.Threads.ChannelItems[ctx.View.Threads.SelectedChannel].ID,
|
ctx.View.Threads.ChannelItems[ctx.View.Threads.SelectedChannel].ID,
|
||||||
ctx.View.Channels.ChannelItems[ctx.View.Channels.SelectedChannel].ID,
|
ctx.View.Channels.ChannelItems[ctx.View.Channels.SelectedChannel].ID,
|
||||||
)
|
)
|
||||||
|
if err != nil {
|
||||||
|
termbox.Close()
|
||||||
|
log.Println(err)
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Set messages for the channel
|
// Set messages for the channel
|
||||||
ctx.View.Chat.SetMessages(msgs)
|
ctx.View.Chat.SetMessages(msgs)
|
||||||
|
|
||||||
// Set focus, necessary to know when replying to thread or chat
|
// Set focus, necessary to know when replying to thread or chat
|
||||||
ctx.Focus = context.ThreadFocus
|
|
||||||
|
|
||||||
termui.Render(ctx.View.Channels)
|
termui.Render(ctx.View.Channels)
|
||||||
termui.Render(ctx.View.Threads)
|
termui.Render(ctx.View.Threads)
|
||||||
|
Loading…
Reference in New Issue
Block a user