@@ -25,6 +25,7 @@ const (
25
25
func (m model ) Update (msg tea.Msg ) (tea.Model , tea.Cmd ) {
26
26
var cmd tea.Cmd
27
27
var cmds []tea.Cmd
28
+ m .successMsg = ""
28
29
m .errorMsg = ""
29
30
30
31
if m .activeView == taskEntryView {
@@ -33,14 +34,14 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
33
34
switch keypress := msg .String (); keypress {
34
35
case "esc" , "ctrl+c" :
35
36
m .activeView = taskListView
36
- m .lastActiveList = activeTasks
37
+ m .activeTaskList = activeTasks
37
38
case "enter" :
38
39
taskSummary := m .taskInput .Value ()
39
40
taskSummary = strings .TrimSpace (taskSummary )
40
41
41
42
if taskSummary == "" {
42
43
m .activeView = taskListView
43
- m .lastActiveList = activeTasks
44
+ m .activeTaskList = activeTasks
44
45
break
45
46
}
46
47
@@ -51,13 +52,13 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
51
52
cmds = append (cmds , cmd )
52
53
m .taskInput .Reset ()
53
54
m .activeView = taskListView
54
- m .lastActiveList = activeTasks
55
+ m .activeTaskList = activeTasks
55
56
case taskUpdateSummary :
56
57
cmd = updateTaskSummary (m .db , m .taskIndex , m .taskId , taskSummary )
57
58
cmds = append (cmds , cmd )
58
59
m .taskInput .Reset ()
59
60
m .activeView = taskListView
60
- m .lastActiveList = activeTasks
61
+ m .activeTaskList = activeTasks
61
62
}
62
63
}
63
64
}
@@ -71,7 +72,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
71
72
case tea.WindowSizeMsg :
72
73
w , h := listStyle .GetFrameSize ()
73
74
_ , h2 := headerStyle .GetFrameSize ()
74
- _ , h3 := statusBarStyle .GetFrameSize ()
75
+ _ , h3 := statusBarMsgStyle .GetFrameSize ()
75
76
m .terminalWidth = msg .Width
76
77
m .terminalHeight = msg .Height
77
78
m .taskList .SetWidth (msg .Width - w )
@@ -143,7 +144,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
143
144
144
145
if m .activeView == archivedTaskListView {
145
146
m .activeView = taskListView
146
- m .lastActiveList = activeTasks
147
+ m .activeTaskList = activeTasks
147
148
m .lastActiveView = av
148
149
break
149
150
}
@@ -152,9 +153,9 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
152
153
m .activeView = m .lastActiveView
153
154
switch m .activeView {
154
155
case taskListView :
155
- m .lastActiveList = activeTasks
156
+ m .activeTaskList = activeTasks
156
157
case archivedTaskListView :
157
- m .lastActiveList = archivedTasks
158
+ m .activeTaskList = archivedTasks
158
159
}
159
160
break
160
161
}
@@ -182,10 +183,10 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
182
183
switch m .activeView {
183
184
case taskListView :
184
185
m .activeView = archivedTaskListView
185
- m .lastActiveList = archivedTasks
186
+ m .activeTaskList = archivedTasks
186
187
case archivedTaskListView :
187
188
m .activeView = taskListView
188
- m .lastActiveList = activeTasks
189
+ m .activeTaskList = activeTasks
189
190
}
190
191
191
192
case "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" :
@@ -510,7 +511,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
510
511
var ok bool
511
512
var index int
512
513
513
- switch m .lastActiveList {
514
+ switch m .activeTaskList {
514
515
case activeTasks :
515
516
t , ok = m .taskList .SelectedItem ().(types.Task )
516
517
if ! ok {
@@ -557,7 +558,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
557
558
var taskList list.Model
558
559
var archivedTaskList list.Model
559
560
_ , h2 := headerStyle .GetFrameSize ()
560
- _ , h3 := statusBarStyle .GetFrameSize ()
561
+ _ , h3 := statusBarMsgStyle .GetFrameSize ()
561
562
562
563
tlIndex := m .taskList .Index ()
563
564
atlIndex := m .archivedTaskList .Index ()
@@ -654,7 +655,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
654
655
}
655
656
656
657
_ , h2 := headerStyle .GetFrameSize ()
657
- _ , h3 := statusBarStyle .GetFrameSize ()
658
+ _ , h3 := statusBarMsgStyle .GetFrameSize ()
658
659
659
660
var contextHeight int
660
661
if m .cfg .ListDensity == Compact {
@@ -693,9 +694,9 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
693
694
694
695
switch m .activeView {
695
696
case taskListView :
696
- m .lastActiveList = activeTasks
697
+ m .activeTaskList = activeTasks
697
698
default :
698
- m .lastActiveList = archivedTasks
699
+ m .activeTaskList = archivedTasks
699
700
}
700
701
m .lastActiveView = m .activeView
701
702
m .activeView = taskDetailsView
@@ -707,7 +708,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
707
708
var t types.Task
708
709
var ok bool
709
710
710
- switch m .lastActiveList {
711
+ switch m .activeTaskList {
711
712
case activeTasks :
712
713
m .taskList .CursorUp ()
713
714
t , ok = m .taskList .SelectedItem ().(types.Task )
@@ -730,7 +731,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
730
731
var t types.Task
731
732
var ok bool
732
733
733
- switch m .lastActiveList {
734
+ switch m .activeTaskList {
734
735
case activeTasks :
735
736
m .taskList .CursorDown ()
736
737
t , ok = m .taskList .SelectedItem ().(types.Task )
@@ -772,9 +773,9 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
772
773
m .contextBMList .SetItems (bmItems )
773
774
switch m .activeView {
774
775
case taskListView :
775
- m .lastActiveList = activeTasks
776
+ m .activeTaskList = activeTasks
776
777
case archivedTaskListView :
777
- m .lastActiveList = archivedTasks
778
+ m .activeTaskList = archivedTasks
778
779
}
779
780
m .lastActiveView = m .activeView
780
781
m .activeView = contextBookmarksView
@@ -807,6 +808,39 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
807
808
for _ , url := range urls {
808
809
cmds = append (cmds , openURL (url ))
809
810
}
811
+
812
+ case "y" :
813
+ if m .activeView != taskListView && m .activeView != archivedTaskListView && m .activeView != taskDetailsView {
814
+ break
815
+ }
816
+
817
+ var t types.Task
818
+ var ok bool
819
+
820
+ switch m .activeView {
821
+ case taskListView :
822
+ t , ok = m .taskList .SelectedItem ().(types.Task )
823
+ case archivedTaskListView :
824
+ t , ok = m .archivedTaskList .SelectedItem ().(types.Task )
825
+ case taskDetailsView :
826
+ switch m .activeTaskList {
827
+ case activeTasks :
828
+ t , ok = m .taskList .SelectedItem ().(types.Task )
829
+ case archivedTasks :
830
+ t , ok = m .archivedTaskList .SelectedItem ().(types.Task )
831
+ }
832
+ }
833
+
834
+ if ! ok {
835
+ break
836
+ }
837
+
838
+ if t .Context == nil {
839
+ m .errorMsg = "There's no context to copy"
840
+ break
841
+ }
842
+
843
+ cmds = append (cmds , copyContextToClipboard (* t .Context ))
810
844
}
811
845
812
846
case HideHelpMsg :
@@ -996,7 +1030,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
996
1030
break
997
1031
}
998
1032
999
- cmds = append (cmds , updateTaskContext (m .db , msg .taskIndex , msg .taskId , string (context ), m .lastActiveList ))
1033
+ cmds = append (cmds , updateTaskContext (m .db , msg .taskIndex , msg .taskId , string (context ), m .activeTaskList ))
1000
1034
case urlOpenedMsg :
1001
1035
if msg .err != nil {
1002
1036
m .errorMsg = fmt .Sprintf ("Error opening url: %s" , msg .err )
@@ -1005,6 +1039,13 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
1005
1039
if msg .err != nil {
1006
1040
m .errorMsg = fmt .Sprintf ("Error opening urls: %s" , msg .err )
1007
1041
}
1042
+
1043
+ case contextWrittenToCBMsg :
1044
+ if msg .err != nil {
1045
+ m .errorMsg = fmt .Sprintf ("Couldn't copy context to clipboard: %s" , msg .err )
1046
+ } else {
1047
+ m .successMsg = "Context copied to clipboard!"
1048
+ }
1008
1049
}
1009
1050
1010
1051
if m .cfg .ListDensity == Compact {
@@ -1127,7 +1168,7 @@ func (m model) getContextUrls() ([]string, bool) {
1127
1168
case archivedTaskListView :
1128
1169
t , ok = m .archivedTaskList .SelectedItem ().(types.Task )
1129
1170
case taskDetailsView :
1130
- switch m .lastActiveList {
1171
+ switch m .activeTaskList {
1131
1172
case activeTasks :
1132
1173
t , ok = m .taskList .SelectedItem ().(types.Task )
1133
1174
case archivedTasks :
0 commit comments