@tarcisiopgs/lisa 1.8.2 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -66,7 +66,16 @@ function useKanbanState() {
66
66
  const onStarted = (issueId) => {
67
67
  setCards(
68
68
  (prev) => prev.map(
69
- (c) => c.id === issueId ? { ...c, column: "in_progress", startedAt: Date.now(), hasError: false } : c
69
+ (c) => c.id === issueId ? {
70
+ ...c,
71
+ column: "in_progress",
72
+ startedAt: Date.now(),
73
+ hasError: false,
74
+ skipped: false,
75
+ killed: false,
76
+ pausedAt: void 0,
77
+ pauseAccumulated: 0
78
+ } : c
70
79
  )
71
80
  );
72
81
  };
@@ -84,6 +93,52 @@ function useKanbanState() {
84
93
  )
85
94
  );
86
95
  };
96
+ const onSkipped = (issueId) => {
97
+ setCards(
98
+ (prev) => prev.map(
99
+ (c) => c.id === issueId ? {
100
+ ...c,
101
+ column: "backlog",
102
+ startedAt: void 0,
103
+ skipped: true,
104
+ hasError: false,
105
+ pausedAt: void 0
106
+ } : c
107
+ )
108
+ );
109
+ };
110
+ const onKilled = (issueId) => {
111
+ setCards(
112
+ (prev) => prev.map(
113
+ (c) => c.id === issueId ? {
114
+ ...c,
115
+ column: "backlog",
116
+ startedAt: void 0,
117
+ killed: true,
118
+ hasError: false,
119
+ pausedAt: void 0
120
+ } : c
121
+ )
122
+ );
123
+ };
124
+ const onProviderPaused = () => {
125
+ setCards(
126
+ (prev) => prev.map((c) => c.column === "in_progress" ? { ...c, pausedAt: Date.now() } : c)
127
+ );
128
+ };
129
+ const onProviderResumed = () => {
130
+ setCards(
131
+ (prev) => prev.map((c) => {
132
+ if (c.column !== "in_progress" || !c.pausedAt) return c;
133
+ const pauseDuration = Date.now() - c.pausedAt;
134
+ return {
135
+ ...c,
136
+ pausedAt: void 0,
137
+ pauseAccumulated: (c.pauseAccumulated ?? 0) + pauseDuration
138
+ };
139
+ })
140
+ );
141
+ };
87
142
  const onOutput = (issueId, text) => {
88
143
  setCards(
89
144
  (prev) => prev.map((c) => c.id === issueId ? { ...c, outputLog: c.outputLog + text } : c)
@@ -93,6 +148,10 @@ function useKanbanState() {
93
148
  kanbanEmitter.on("issue:started", onStarted);
94
149
  kanbanEmitter.on("issue:done", onDone);
95
150
  kanbanEmitter.on("issue:reverted", onReverted);
151
+ kanbanEmitter.on("issue:skipped", onSkipped);
152
+ kanbanEmitter.on("issue:killed", onKilled);
153
+ kanbanEmitter.on("provider:paused", onProviderPaused);
154
+ kanbanEmitter.on("provider:resumed", onProviderResumed);
96
155
  kanbanEmitter.on("issue:output", onOutput);
97
156
  const onEmpty = () => setIsEmpty(true);
98
157
  const onComplete = (data) => setWorkComplete(data);
@@ -103,6 +162,10 @@ function useKanbanState() {
103
162
  kanbanEmitter.off("issue:started", onStarted);
104
163
  kanbanEmitter.off("issue:done", onDone);
105
164
  kanbanEmitter.off("issue:reverted", onReverted);
165
+ kanbanEmitter.off("issue:skipped", onSkipped);
166
+ kanbanEmitter.off("issue:killed", onKilled);
167
+ kanbanEmitter.off("provider:paused", onProviderPaused);
168
+ kanbanEmitter.off("provider:resumed", onProviderResumed);
106
169
  kanbanEmitter.off("issue:output", onOutput);
107
170
  kanbanEmitter.off("work:empty", onEmpty);
108
171
  kanbanEmitter.off("work:complete", onComplete);