@stevecastaneda/paseo-progress 0.1.0 → 0.1.1
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.
- package/client/panel.tsx +4 -4
- package/client/spinner.tsx +11 -0
- package/client/ticket-dialog.tsx +4 -4
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/client/panel.tsx
CHANGED
|
@@ -3,7 +3,7 @@ import { Icon } from "@getpaseo/plugin/client/react-native";
|
|
|
3
3
|
import { DeliverablesList } from "./deliverables";
|
|
4
4
|
import { LauncherBanner, SkillBanner } from "./launcher";
|
|
5
5
|
import { AnsweredQuestionsList, QuestionsSection } from "./questions";
|
|
6
|
-
import { Spinner, StalledPulse } from "./spinner";
|
|
6
|
+
import { Spinner, StalledPulse, WaitingDot } from "./spinner";
|
|
7
7
|
import { IconSwap, Presence, StaggerRoot, nativeDriver } from "./motion";
|
|
8
8
|
import { SectionTitle } from "./section-title";
|
|
9
9
|
import { raised } from "./surfaces";
|
|
@@ -427,11 +427,11 @@ function TicketRow({ colors, ticket, live, now, onOpen, deliverables }: { colors
|
|
|
427
427
|
<IconSwap swapKey={ticket.waitingFor ? "waiting" : ticket.status === "working" ? `working-${live}` : ticket.status} size={14}><StatusIcon colors={colors} status={ticket.status} live={live} waiting={Boolean(ticket.waitingFor)} /></IconSwap>
|
|
428
428
|
</View>
|
|
429
429
|
<View style={{ flex: 1, minWidth: 0, gap: 2 }}>
|
|
430
|
-
{/*
|
|
430
|
+
{/* The Deliverables tab's icon before the title when the ticket has deliverables; they're listed in its dialog. */}
|
|
431
431
|
<View style={{ flexDirection: "row", gap: 6 }}>
|
|
432
432
|
{deliverables ? (
|
|
433
433
|
<View accessibilityLabel={deliverables === 1 ? "Has a deliverable" : `Has ${deliverables} deliverables`} style={{ height: 18, justifyContent: "center" }}>
|
|
434
|
-
<Icon name="
|
|
434
|
+
<Icon name="Package" size={12} color={colors.foregroundMuted} />
|
|
435
435
|
</View>
|
|
436
436
|
) : null}
|
|
437
437
|
<Text style={{ flex: 1, color: muted ? colors.foregroundMuted : colors.foreground, fontSize: 13, lineHeight: 18, textDecorationLine: muted ? "line-through" : "none" }}>
|
|
@@ -463,7 +463,7 @@ function TicketRow({ colors, ticket, live, now, onOpen, deliverables }: { colors
|
|
|
463
463
|
}
|
|
464
464
|
|
|
465
465
|
function StatusIcon({ colors, status, live, waiting }: { colors: Colors; status: TicketStatus; live: boolean; waiting: boolean }) {
|
|
466
|
-
if (waiting) return <
|
|
466
|
+
if (waiting) return <WaitingDot color={colors.foregroundMuted} size={14} />;
|
|
467
467
|
switch (status) {
|
|
468
468
|
case "done":
|
|
469
469
|
return <Icon name="Check" size={14} color={colors.statusSuccess} />;
|
package/client/spinner.tsx
CHANGED
|
@@ -33,3 +33,14 @@ export function StalledPulse({ color, size = 12 }: { color: string; size?: numbe
|
|
|
33
33
|
</Animated.View>
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
// A ticket waiting on another one: a still, faded dot, so it reads as parked
|
|
38
|
+
// rather than busy. Centered in the same slot an icon would take.
|
|
39
|
+
export function WaitingDot({ color, size = 12 }: { color: string; size?: number }) {
|
|
40
|
+
const dot = Math.round(size / 2);
|
|
41
|
+
return (
|
|
42
|
+
<View accessibilityLabel="Waiting" style={{ width: size, height: size, alignItems: "center", justifyContent: "center" }}>
|
|
43
|
+
<View style={{ width: dot, height: dot, borderRadius: dot / 2, backgroundColor: color, opacity: 0.5 }} />
|
|
44
|
+
</View>
|
|
45
|
+
);
|
|
46
|
+
}
|
package/client/ticket-dialog.tsx
CHANGED
|
@@ -9,7 +9,7 @@ import { type Attachment, AttachmentList, deliverableAttachment } from "./attach
|
|
|
9
9
|
import { StackedDialog } from "./dialog-stack";
|
|
10
10
|
import { IconSwap } from "./motion";
|
|
11
11
|
import { PressableRow } from "./row";
|
|
12
|
-
import { Spinner, StalledPulse } from "./spinner";
|
|
12
|
+
import { Spinner, StalledPulse, WaitingDot } from "./spinner";
|
|
13
13
|
import { StatusBadge } from "./status-badge";
|
|
14
14
|
import { When } from "./when";
|
|
15
15
|
|
|
@@ -65,7 +65,7 @@ export function TicketStoryView({ colors, dashboard, ticket, now, live, onOpenAt
|
|
|
65
65
|
{ticket.waitingFor ? (
|
|
66
66
|
<View style={{ flexDirection: "row", gap: 4 }}>
|
|
67
67
|
{/* Held on the first line when a long title wraps. */}
|
|
68
|
-
<View style={{ height: 18, justifyContent: "center" }}><
|
|
68
|
+
<View style={{ height: 18, justifyContent: "center" }}><WaitingDot color={colors.foregroundMuted} /></View>
|
|
69
69
|
<Text style={{ flex: 1, color: colors.foregroundMuted, fontSize: 12, lineHeight: 18 }}>Waits for {ticket.waitingFor.id}: {ticket.waitingFor.title}</Text>
|
|
70
70
|
</View>
|
|
71
71
|
) : null}
|
|
@@ -158,8 +158,8 @@ function LinkNote({ colors, link }: { colors: Colors; link: Link }) {
|
|
|
158
158
|
// The same icons as the ticket rows, so a step reads like the status it was.
|
|
159
159
|
// Past stage steps get an accent ringed dot: work that happened, now over.
|
|
160
160
|
function Marker({ colors, step }: { colors: Colors; step: TimelineStep & { waiting?: boolean } }) {
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
if (step.waiting) return <WaitingDot color={colors.foregroundMuted} />;
|
|
162
|
+
const icon = step.label === "Added" ? { name: "CirclePlus", color: colors.foregroundMuted }
|
|
163
163
|
: step.status === "done" ? { name: "CircleCheck", color: colors.statusSuccess }
|
|
164
164
|
: step.status === "blocked" ? { name: "Ban", color: colors.statusDanger }
|
|
165
165
|
: step.status === "skipped" ? { name: "CircleSlash", color: colors.foregroundMuted }
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stevecastaneda/paseo-progress",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@stevecastaneda/paseo-progress",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@getpaseo/client": "^0.9.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stevecastaneda/paseo-progress",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "A live progress dashboard per worktree for Paseo, drawn from a file agents write with the paseo-progress command.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Steve Castaneda",
|