@@ -4,7 +4,7 @@ import Combine
44@MainActor
55final class NotchViewModel : ObservableObject {
66 enum Tab : String , CaseIterable , Identifiable {
7- case media, shelf, clipboard, snippets, calendar, timer, translate, notes, teleprompter, monitor, weather
7+ case media, shelf, clipboard, snippets, calendar, timer, translate, notes, teleprompter, monitor, weather, tasks
88 var id : String { rawValue }
99
1010 var symbol : String {
@@ -20,6 +20,7 @@ final class NotchViewModel: ObservableObject {
2020 case . teleprompter: return " text.line.first.and.arrowtriangle.forward "
2121 case . monitor: return " cpu "
2222 case . weather: return " cloud.sun "
23+ case . tasks: return " checkmark.circle "
2324 }
2425 }
2526
@@ -36,6 +37,7 @@ final class NotchViewModel: ObservableObject {
3637 case . teleprompter: return localized ( " Teleprompter " )
3738 case . monitor: return localized ( " Monitor " )
3839 case . weather: return localized ( " Weather " )
40+ case . tasks: return localized ( " Tasks " )
3941 }
4042 }
4143
@@ -48,7 +50,7 @@ final class NotchViewModel: ObservableObject {
4850 /// body has — so growth continues in a second column on the right,
4951 /// which the scratch notes open.
5052 static let leftRail : [ Tab ] = [ . media, . shelf, . clipboard, . snippets, . calendar, . timer, . translate]
51- static let rightRail : [ Tab ] = [ . notes, . teleprompter, . monitor, . weather]
53+ static let rightRail : [ Tab ] = [ . notes, . tasks , . teleprompter, . monitor, . weather]
5254 }
5355
5456 @Published var isOpen = false {
@@ -99,6 +101,7 @@ final class NotchViewModel: ObservableObject {
99101 let teleprompter : TeleprompterStore
100102 let monitor : SystemMonitorStore
101103 let weather : WeatherStore
104+ let tickTick : TickTickStore
102105
103106 private var cancellables = Set < AnyCancellable > ( )
104107
@@ -115,6 +118,7 @@ final class NotchViewModel: ObservableObject {
115118 self . teleprompter = TeleprompterStore ( )
116119 self . monitor = SystemMonitorStore ( )
117120 self . weather = WeatherStore ( )
121+ self . tickTick = TickTickStore ( )
118122
119123 // The panel header reads through to the stores — counters, the source
120124 // name, the equalizer. Nested ObservableObjects do not propagate on
@@ -154,7 +158,8 @@ final class NotchViewModel: ObservableObject {
154158 shelf. objectWillChange,
155159 clipboard. objectWillChange,
156160 calendar. objectWillChange,
157- monitor. objectWillChange
161+ monitor. objectWillChange,
162+ tickTick. objectWillChange
158163 ] {
159164 child
160165 . sink { [ weak self] _ in
0 commit comments