@gzeoneth/gov-tracker 0.2.1-alpha.cli-preview.f8c3a87 → 0.2.1-alpha.cli-preview.a5817b4
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/dist/cli/cli.js +23 -5
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +27 -5
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/tui/App.d.ts.map +1 -1
- package/dist/cli/tui/App.js +60 -6
- package/dist/cli/tui/App.js.map +1 -1
- package/dist/cli/tui/components/CollapsibleSection.d.ts +20 -0
- package/dist/cli/tui/components/CollapsibleSection.d.ts.map +1 -0
- package/dist/cli/tui/components/CollapsibleSection.js +29 -0
- package/dist/cli/tui/components/CollapsibleSection.js.map +1 -0
- package/dist/cli/tui/components/ConfirmDialog.d.ts +14 -0
- package/dist/cli/tui/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/cli/tui/components/ConfirmDialog.js +29 -0
- package/dist/cli/tui/components/ConfirmDialog.js.map +1 -0
- package/dist/cli/tui/components/CopyableText.d.ts +23 -0
- package/dist/cli/tui/components/CopyableText.d.ts.map +1 -0
- package/dist/cli/tui/components/CopyableText.js +49 -0
- package/dist/cli/tui/components/CopyableText.js.map +1 -0
- package/dist/cli/tui/components/EmptyState.d.ts +11 -0
- package/dist/cli/tui/components/EmptyState.d.ts.map +1 -0
- package/dist/cli/tui/components/EmptyState.js +34 -0
- package/dist/cli/tui/components/EmptyState.js.map +1 -0
- package/dist/cli/tui/components/ErrorDisplay.d.ts +17 -0
- package/dist/cli/tui/components/ErrorDisplay.d.ts.map +1 -0
- package/dist/cli/tui/components/ErrorDisplay.js +66 -0
- package/dist/cli/tui/components/ErrorDisplay.js.map +1 -0
- package/dist/cli/tui/components/Header.d.ts +4 -2
- package/dist/cli/tui/components/Header.d.ts.map +1 -1
- package/dist/cli/tui/components/Header.js +20 -4
- package/dist/cli/tui/components/Header.js.map +1 -1
- package/dist/cli/tui/components/KeyHelp.d.ts +11 -2
- package/dist/cli/tui/components/KeyHelp.d.ts.map +1 -1
- package/dist/cli/tui/components/KeyHelp.js +63 -9
- package/dist/cli/tui/components/KeyHelp.js.map +1 -1
- package/dist/cli/tui/components/ProposalRow.d.ts.map +1 -1
- package/dist/cli/tui/components/ProposalRow.js +46 -6
- package/dist/cli/tui/components/ProposalRow.js.map +1 -1
- package/dist/cli/tui/components/ScrollIndicator.d.ts +26 -0
- package/dist/cli/tui/components/ScrollIndicator.d.ts.map +1 -0
- package/dist/cli/tui/components/ScrollIndicator.js +59 -0
- package/dist/cli/tui/components/ScrollIndicator.js.map +1 -0
- package/dist/cli/tui/components/SearchBar.d.ts +12 -0
- package/dist/cli/tui/components/SearchBar.d.ts.map +1 -0
- package/dist/cli/tui/components/SearchBar.js +36 -0
- package/dist/cli/tui/components/SearchBar.js.map +1 -0
- package/dist/cli/tui/components/Skeleton.d.ts +22 -0
- package/dist/cli/tui/components/Skeleton.d.ts.map +1 -0
- package/dist/cli/tui/components/Skeleton.js +35 -0
- package/dist/cli/tui/components/Skeleton.js.map +1 -0
- package/dist/cli/tui/components/Spinner.d.ts +10 -0
- package/dist/cli/tui/components/Spinner.d.ts.map +1 -0
- package/dist/cli/tui/components/Spinner.js +24 -0
- package/dist/cli/tui/components/Spinner.js.map +1 -0
- package/dist/cli/tui/components/StageProgress.d.ts +12 -0
- package/dist/cli/tui/components/StageProgress.d.ts.map +1 -0
- package/dist/cli/tui/components/StageProgress.js +72 -0
- package/dist/cli/tui/components/StageProgress.js.map +1 -0
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
- package/dist/cli/tui/components/StageRow.js +33 -10
- package/dist/cli/tui/components/StageRow.js.map +1 -1
- package/dist/cli/tui/components/StatusBar.d.ts +12 -0
- package/dist/cli/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/cli/tui/components/StatusBar.js +14 -0
- package/dist/cli/tui/components/StatusBar.js.map +1 -0
- package/dist/cli/tui/components/Timeline.d.ts +12 -0
- package/dist/cli/tui/components/Timeline.d.ts.map +1 -0
- package/dist/cli/tui/components/Timeline.js +91 -0
- package/dist/cli/tui/components/Timeline.js.map +1 -0
- package/dist/cli/tui/components/Toast.d.ts +13 -0
- package/dist/cli/tui/components/Toast.d.ts.map +1 -0
- package/dist/cli/tui/components/Toast.js +35 -0
- package/dist/cli/tui/components/Toast.js.map +1 -0
- package/dist/cli/tui/components/TrackingProgress.d.ts +24 -0
- package/dist/cli/tui/components/TrackingProgress.d.ts.map +1 -0
- package/dist/cli/tui/components/TrackingProgress.js +82 -0
- package/dist/cli/tui/components/TrackingProgress.js.map +1 -0
- package/dist/cli/tui/components/ViewLayout.d.ts +9 -1
- package/dist/cli/tui/components/ViewLayout.d.ts.map +1 -1
- package/dist/cli/tui/components/ViewLayout.js +43 -7
- package/dist/cli/tui/components/ViewLayout.js.map +1 -1
- package/dist/cli/tui/components/VotingStats.d.ts +11 -0
- package/dist/cli/tui/components/VotingStats.d.ts.map +1 -0
- package/dist/cli/tui/components/VotingStats.js +87 -0
- package/dist/cli/tui/components/VotingStats.js.map +1 -0
- package/dist/cli/tui/config.d.ts +42 -0
- package/dist/cli/tui/config.d.ts.map +1 -0
- package/dist/cli/tui/config.js +144 -0
- package/dist/cli/tui/config.js.map +1 -0
- package/dist/cli/tui/hooks/index.d.ts +3 -1
- package/dist/cli/tui/hooks/index.d.ts.map +1 -1
- package/dist/cli/tui/hooks/index.js +5 -1
- package/dist/cli/tui/hooks/index.js.map +1 -1
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useCache.js +32 -8
- package/dist/cli/tui/hooks/useCache.js.map +1 -1
- package/dist/cli/tui/hooks/useCliProcess.d.ts +19 -0
- package/dist/cli/tui/hooks/useCliProcess.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useCliProcess.js +135 -0
- package/dist/cli/tui/hooks/useCliProcess.js.map +1 -0
- package/dist/cli/tui/hooks/useNavigation.d.ts +7 -1
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.js +73 -9
- package/dist/cli/tui/hooks/useNavigation.js.map +1 -1
- package/dist/cli/tui/hooks/useProposals.d.ts +2 -2
- package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useProposals.js +92 -27
- package/dist/cli/tui/hooks/useProposals.js.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.d.ts +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.js +45 -18
- package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -1
- package/dist/cli/tui/hooks/useTracker.d.ts +4 -5
- package/dist/cli/tui/hooks/useTracker.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useTracker.js +118 -78
- package/dist/cli/tui/hooks/useTracker.js.map +1 -1
- package/dist/cli/tui/index.d.ts +1 -0
- package/dist/cli/tui/index.d.ts.map +1 -1
- package/dist/cli/tui/index.js +38 -6
- package/dist/cli/tui/index.js.map +1 -1
- package/dist/cli/tui/types.d.ts +4 -1
- package/dist/cli/tui/types.d.ts.map +1 -1
- package/dist/cli/tui/utils/clipboard.d.ts +7 -0
- package/dist/cli/tui/utils/clipboard.d.ts.map +1 -0
- package/dist/cli/tui/utils/clipboard.js +46 -0
- package/dist/cli/tui/utils/clipboard.js.map +1 -0
- package/dist/cli/tui/utils/index.d.ts +1 -0
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +4 -1
- package/dist/cli/tui/utils/index.js.map +1 -1
- package/dist/cli/tui/utils/text.d.ts.map +1 -1
- package/dist/cli/tui/utils/text.js +2 -0
- package/dist/cli/tui/utils/text.js.map +1 -1
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
- package/dist/cli/tui/views/CalldataView.js +35 -21
- package/dist/cli/tui/views/CalldataView.js.map +1 -1
- package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -1
- package/dist/cli/tui/views/DescriptionView.js +29 -21
- package/dist/cli/tui/views/DescriptionView.js.map +1 -1
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
- package/dist/cli/tui/views/ElectionView.js +64 -26
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/cli/tui/views/HelpView.d.ts +10 -0
- package/dist/cli/tui/views/HelpView.d.ts.map +1 -0
- package/dist/cli/tui/views/HelpView.js +159 -0
- package/dist/cli/tui/views/HelpView.js.map +1 -0
- package/dist/cli/tui/views/ProposalDetail.d.ts +1 -1
- package/dist/cli/tui/views/ProposalDetail.d.ts.map +1 -1
- package/dist/cli/tui/views/ProposalDetail.js +45 -50
- package/dist/cli/tui/views/ProposalDetail.js.map +1 -1
- package/dist/cli/tui/views/ProposalList.d.ts.map +1 -1
- package/dist/cli/tui/views/ProposalList.js +47 -32
- package/dist/cli/tui/views/ProposalList.js.map +1 -1
- package/dist/cli/tui/views/SettingsView.d.ts +12 -0
- package/dist/cli/tui/views/SettingsView.d.ts.map +1 -0
- package/dist/cli/tui/views/SettingsView.js +203 -0
- package/dist/cli/tui/views/SettingsView.js.map +1 -0
- package/dist/cli/tui/views/SimulationView.d.ts.map +1 -1
- package/dist/cli/tui/views/SimulationView.js +26 -7
- package/dist/cli/tui/views/SimulationView.js.map +1 -1
- package/dist/cli/tui/views/StageView.d.ts.map +1 -1
- package/dist/cli/tui/views/StageView.js +34 -18
- package/dist/cli/tui/views/StageView.js.map +1 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +5 -4
- package/dist/stages/timelock.js.map +1 -1
- package/dist/tracker/cache.d.ts.map +1 -1
- package/dist/tracker/cache.js +4 -0
- package/dist/tracker/cache.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DescriptionView.js","sourceRoot":"","sources":["../../../../src/cli/tui/views/DescriptionView.tsx"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"DescriptionView.js","sourceRoot":"","sources":["../../../../src/cli/tui/views/DescriptionView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElectionView.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/ElectionView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAC;IAChC,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"ElectionView.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/ElectionView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,UAAU,iBAAiB;IACzB,UAAU,EAAE,mBAAmB,CAAC;IAChC,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AA8BD,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA8J7F"}
|
|
@@ -32,8 +32,13 @@ function ElectionView({ navigation, providers }) {
|
|
|
32
32
|
proposals: [],
|
|
33
33
|
loading: true,
|
|
34
34
|
error: null,
|
|
35
|
+
warning: null,
|
|
35
36
|
});
|
|
36
37
|
const [selectedIndex, setSelectedIndex] = (0, react_1.useState)(0);
|
|
38
|
+
// Reset selection when proposals change to avoid out-of-bounds index
|
|
39
|
+
(0, react_1.useEffect)(() => {
|
|
40
|
+
setSelectedIndex(0);
|
|
41
|
+
}, [data.proposals.length]);
|
|
37
42
|
(0, react_1.useEffect)(() => {
|
|
38
43
|
if (!providers) {
|
|
39
44
|
setData({
|
|
@@ -41,57 +46,90 @@ function ElectionView({ navigation, providers }) {
|
|
|
41
46
|
proposals: [],
|
|
42
47
|
loading: false,
|
|
43
48
|
error: "RPC providers required. Use --l2-rpc and --l1-rpc options.",
|
|
49
|
+
warning: null,
|
|
44
50
|
});
|
|
45
51
|
return;
|
|
46
52
|
}
|
|
53
|
+
let cancelled = false;
|
|
47
54
|
const loadElectionData = async () => {
|
|
48
55
|
try {
|
|
49
56
|
setData((prev) => ({ ...prev, loading: true, error: null }));
|
|
50
|
-
// Get overall election status
|
|
51
57
|
const status = await (0, election_js_1.checkElectionStatus)(providers.l2Provider, providers.l1Provider);
|
|
52
|
-
|
|
58
|
+
if (cancelled)
|
|
59
|
+
return;
|
|
53
60
|
const proposals = [];
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
let failedCount = 0;
|
|
62
|
+
if (status.electionCount > 0) {
|
|
63
|
+
const startIndex = Math.max(1, status.electionCount - 2);
|
|
64
|
+
for (let i = status.electionCount; i >= startIndex; i--) {
|
|
65
|
+
if (cancelled)
|
|
66
|
+
return;
|
|
67
|
+
try {
|
|
68
|
+
const proposal = await (0, election_js_1.trackElectionProposal)(i, providers.l2Provider, providers.l1Provider);
|
|
69
|
+
proposals.push(proposal);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
failedCount++;
|
|
73
|
+
}
|
|
62
74
|
}
|
|
63
75
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
76
|
+
if (!cancelled) {
|
|
77
|
+
setData({
|
|
78
|
+
status,
|
|
79
|
+
proposals,
|
|
80
|
+
loading: false,
|
|
81
|
+
error: failedCount > 0 && proposals.length === 0
|
|
82
|
+
? `Failed to load ${failedCount} election(s)`
|
|
83
|
+
: null,
|
|
84
|
+
warning: failedCount > 0 && proposals.length > 0
|
|
85
|
+
? `Loaded ${proposals.length} election(s), ${failedCount} failed`
|
|
86
|
+
: null,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
70
89
|
}
|
|
71
90
|
catch (err) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
91
|
+
if (!cancelled) {
|
|
92
|
+
setData({
|
|
93
|
+
status: null,
|
|
94
|
+
proposals: [],
|
|
95
|
+
loading: false,
|
|
96
|
+
error: err instanceof Error ? err.message : String(err),
|
|
97
|
+
warning: null,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
78
100
|
}
|
|
79
101
|
};
|
|
80
102
|
loadElectionData();
|
|
103
|
+
return () => {
|
|
104
|
+
cancelled = true;
|
|
105
|
+
};
|
|
81
106
|
}, [providers]);
|
|
82
107
|
(0, ink_wrapper_js_1.useInput)((input, key) => {
|
|
83
108
|
if (input === "b" || key.escape) {
|
|
84
109
|
navigation.back();
|
|
85
110
|
}
|
|
86
|
-
else if (key.upArrow) {
|
|
111
|
+
else if (key.upArrow || input === "k") {
|
|
87
112
|
setSelectedIndex((prev) => Math.max(0, prev - 1));
|
|
88
113
|
}
|
|
89
|
-
else if (key.downArrow) {
|
|
114
|
+
else if ((key.downArrow || input === "j") && data.proposals.length > 0) {
|
|
90
115
|
setSelectedIndex((prev) => Math.min(data.proposals.length - 1, prev + 1));
|
|
91
116
|
}
|
|
117
|
+
else if (input === "g") {
|
|
118
|
+
setSelectedIndex(0);
|
|
119
|
+
}
|
|
120
|
+
else if (input === "G" && data.proposals.length > 0) {
|
|
121
|
+
setSelectedIndex(data.proposals.length - 1);
|
|
122
|
+
}
|
|
123
|
+
else if (input === "?") {
|
|
124
|
+
navigation.goToHelp();
|
|
125
|
+
}
|
|
92
126
|
});
|
|
93
|
-
const { status, proposals } = data;
|
|
94
|
-
return (ink_wrapper_js_1.React.createElement(ViewLayout_js_1.ViewLayout, { view: "election", hasProviders: !!providers, isTracking: data.loading, loading: data.loading, loadingText: "Loading election status...", error: data.error },
|
|
127
|
+
const { status, proposals, warning } = data;
|
|
128
|
+
return (ink_wrapper_js_1.React.createElement(ViewLayout_js_1.ViewLayout, { view: "election", hasProviders: !!providers, isTracking: data.loading, loading: data.loading, loadingText: "Loading election status...", skeletonType: "detail", error: data.error },
|
|
129
|
+
warning && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
130
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "yellow" },
|
|
131
|
+
"[Warning] ",
|
|
132
|
+
warning))),
|
|
95
133
|
status && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", marginBottom: 1 },
|
|
96
134
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { bold: true }, "Security Council Election Status"),
|
|
97
135
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginLeft: 1, flexDirection: "column" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElectionView.js","sourceRoot":"","sources":["../../../../src/cli/tui/views/ElectionView.tsx"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"ElectionView.js","sourceRoot":"","sources":["../../../../src/cli/tui/views/ElectionView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Help view showing all keyboard shortcuts
|
|
3
|
+
*/
|
|
4
|
+
import type { UseNavigationResult } from "../hooks/index.js";
|
|
5
|
+
interface HelpViewProps {
|
|
6
|
+
navigation: UseNavigationResult;
|
|
7
|
+
}
|
|
8
|
+
export declare function HelpView({ navigation }: HelpViewProps): React.ReactElement;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=HelpView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpView.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/HelpView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAQ7D,UAAU,aAAa;IACrB,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAmFD,wBAAgB,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAwG1E"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Help view showing all keyboard shortcuts
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HelpView = HelpView;
|
|
7
|
+
const ink_wrapper_js_1 = require("../ink-wrapper.js");
|
|
8
|
+
const ScrollIndicator_js_1 = require("../components/ScrollIndicator.js");
|
|
9
|
+
const index_js_1 = require("../utils/index.js");
|
|
10
|
+
const HELP_SECTIONS = [
|
|
11
|
+
{
|
|
12
|
+
title: "Navigation (Vim-style)",
|
|
13
|
+
icon: "⌨",
|
|
14
|
+
shortcuts: [
|
|
15
|
+
{ key: "j/↓", description: "Move down" },
|
|
16
|
+
{ key: "k/↑", description: "Move up" },
|
|
17
|
+
{ key: "Ctrl+d/PgDn", description: "Page down (10 items)" },
|
|
18
|
+
{ key: "Ctrl+u/PgUp", description: "Page up (10 items)" },
|
|
19
|
+
{ key: "g", description: "Jump to top" },
|
|
20
|
+
{ key: "G", description: "Jump to bottom" },
|
|
21
|
+
{ key: "Enter", description: "Select / Enter view" },
|
|
22
|
+
{ key: "b/Esc", description: "Go back" },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: "List View",
|
|
27
|
+
icon: "📋",
|
|
28
|
+
shortcuts: [
|
|
29
|
+
{ key: "/", description: "Start search", note: "Enter to finish, Esc to clear" },
|
|
30
|
+
{ key: "Tab", description: "Cycle filter", note: "all → active → complete → timelocks" },
|
|
31
|
+
{ key: "o", description: "Cycle sort", note: "newest → oldest → progress → status" },
|
|
32
|
+
{ key: "R", description: "Reload cache from disk" },
|
|
33
|
+
{ key: "d", description: "Discover proposals", note: "requires RPC" },
|
|
34
|
+
{ key: "e", description: "Election status", note: "requires RPC" },
|
|
35
|
+
{ key: "S", description: "Settings" },
|
|
36
|
+
{ key: "q", description: "Quit" },
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: "Detail View",
|
|
41
|
+
icon: "📄",
|
|
42
|
+
shortcuts: [
|
|
43
|
+
{ key: "1-7", description: "Jump to stage number" },
|
|
44
|
+
{ key: "y", description: "Copy proposal/operation ID" },
|
|
45
|
+
{ key: "Y", description: "Copy transaction hash" },
|
|
46
|
+
{ key: "d", description: "View description" },
|
|
47
|
+
{ key: "c", description: "View calldata" },
|
|
48
|
+
{ key: "s", description: "View simulation data" },
|
|
49
|
+
{ key: "r", description: "Re-track proposal", note: "requires RPC" },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
title: "Calldata View",
|
|
54
|
+
icon: "🔍",
|
|
55
|
+
shortcuts: [
|
|
56
|
+
{ key: "←/→", description: "Navigate between actions" },
|
|
57
|
+
{ key: "Enter", description: "Toggle fold/unfold" },
|
|
58
|
+
{ key: "e", description: "Expand all" },
|
|
59
|
+
{ key: "c", description: "Collapse all" },
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
title: "Settings View",
|
|
64
|
+
icon: "⚙",
|
|
65
|
+
shortcuts: [
|
|
66
|
+
{ key: "j/k", description: "Navigate settings" },
|
|
67
|
+
{ key: "Enter/Space", description: "Edit or toggle setting" },
|
|
68
|
+
{ key: "r", description: "Reset all to defaults" },
|
|
69
|
+
{ key: "b/Esc", description: "Save and close" },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
title: "Tips",
|
|
74
|
+
icon: "💡",
|
|
75
|
+
shortcuts: [
|
|
76
|
+
{ key: "?", description: "Show/hide this help (works in any view)" },
|
|
77
|
+
{ key: "Search", description: "Matches title and proposal ID" },
|
|
78
|
+
{ key: "RPC", description: "Use --l2-rpc for tracking features" },
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
const RESERVED_LINES = 6;
|
|
83
|
+
function HelpView({ navigation }) {
|
|
84
|
+
const { state } = navigation;
|
|
85
|
+
const visibleRows = (0, index_js_1.getVisibleRows)(RESERVED_LINES);
|
|
86
|
+
const allLines = [];
|
|
87
|
+
for (const section of HELP_SECTIONS) {
|
|
88
|
+
allLines.push({ text: `${section.icon ?? "•"} ${section.title}`, isHeader: true });
|
|
89
|
+
for (const shortcut of section.shortcuts) {
|
|
90
|
+
allLines.push({
|
|
91
|
+
text: (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { key: `${section.title}-${shortcut.key}` },
|
|
92
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "cyan" }, shortcut.key.padEnd(12)),
|
|
93
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, null, shortcut.description),
|
|
94
|
+
shortcut.note && ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" },
|
|
95
|
+
" (",
|
|
96
|
+
shortcut.note,
|
|
97
|
+
")"))),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
allLines.push({ text: "", isSpacer: true });
|
|
101
|
+
}
|
|
102
|
+
const visibleLines = allLines.slice(state.scrollOffset, state.scrollOffset + visibleRows);
|
|
103
|
+
const hasMore = state.scrollOffset + visibleRows < allLines.length;
|
|
104
|
+
const hasLess = state.scrollOffset > 0;
|
|
105
|
+
(0, ink_wrapper_js_1.useInput)((input, key) => {
|
|
106
|
+
if (input === "?" || input === "b" || key.escape) {
|
|
107
|
+
navigation.back();
|
|
108
|
+
}
|
|
109
|
+
else if (key.upArrow || input === "k") {
|
|
110
|
+
navigation.moveUp();
|
|
111
|
+
}
|
|
112
|
+
else if (key.downArrow || input === "j") {
|
|
113
|
+
navigation.moveDown(allLines.length);
|
|
114
|
+
}
|
|
115
|
+
else if (key.pageUp || (key.ctrl && input === "u")) {
|
|
116
|
+
navigation.pageUp(allLines.length);
|
|
117
|
+
}
|
|
118
|
+
else if (key.pageDown || (key.ctrl && input === "d")) {
|
|
119
|
+
navigation.pageDown(allLines.length);
|
|
120
|
+
}
|
|
121
|
+
else if (input === "g") {
|
|
122
|
+
navigation.goToTop();
|
|
123
|
+
}
|
|
124
|
+
else if (input === "G") {
|
|
125
|
+
navigation.goToBottom(allLines.length);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
return (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", height: "100%" },
|
|
129
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1 },
|
|
130
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { bold: true, color: "cyan" }, "Gov-Tracker Help"),
|
|
131
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, " - Keyboard Shortcuts Reference")),
|
|
132
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", paddingX: 2, paddingY: 1, flexGrow: 1 },
|
|
133
|
+
allLines.length > visibleRows && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
134
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollPosition, { scrollOffset: state.scrollOffset, visibleRows: visibleRows, totalItems: allLines.length }))),
|
|
135
|
+
hasLess && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
136
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollIndicatorTop, { scrollOffset: state.scrollOffset }))),
|
|
137
|
+
visibleLines.map((line, i) => {
|
|
138
|
+
if (line.isHeader) {
|
|
139
|
+
return (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { key: i, marginTop: i === 0 ? 0 : 1 },
|
|
140
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { bold: true, color: "yellow" }, line.text)));
|
|
141
|
+
}
|
|
142
|
+
if (line.isSpacer) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
return ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { key: i, marginLeft: 2 }, line.text);
|
|
146
|
+
}),
|
|
147
|
+
hasMore && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginTop: 1 },
|
|
148
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollIndicatorBottom, { scrollOffset: state.scrollOffset, visibleRows: visibleRows, totalItems: allLines.length })))),
|
|
149
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { borderStyle: "single", borderColor: "gray", paddingX: 1 },
|
|
150
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "cyan" }, "j/k"),
|
|
151
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, ": Scroll "),
|
|
152
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "cyan" }, "Ctrl+d/u"),
|
|
153
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, ": Page "),
|
|
154
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "cyan" }, "g/G"),
|
|
155
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, ": Top/Bottom "),
|
|
156
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "cyan" }, "?/b"),
|
|
157
|
+
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, ": Close"))));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=HelpView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpView.js","sourceRoot":"","sources":["../../../../src/cli/tui/views/HelpView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Proposal detail view showing all stages
|
|
3
3
|
*/
|
|
4
4
|
import type { ProposalListItem } from "../types.js";
|
|
5
|
-
import type
|
|
5
|
+
import { type UseNavigationResult } from "../hooks/index.js";
|
|
6
6
|
import type { UseTrackerResult } from "../hooks/useTracker.js";
|
|
7
7
|
interface ProposalDetailProps {
|
|
8
8
|
proposal: ProposalListItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProposalDetail.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/ProposalDetail.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ProposalDetail.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/ProposalDetail.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,KAAK,mBAAmB,EAAe,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAY/D,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,mBAAmB,CAAC;IAChC,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAOD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,UAAU,EACV,OAAO,GACR,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAiM1C"}
|
|
@@ -5,65 +5,36 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ProposalDetail = ProposalDetail;
|
|
7
7
|
const ink_wrapper_js_1 = require("../ink-wrapper.js");
|
|
8
|
+
const index_js_1 = require("../hooks/index.js");
|
|
8
9
|
const Header_js_1 = require("../components/Header.js");
|
|
9
10
|
const KeyHelp_js_1 = require("../components/KeyHelp.js");
|
|
10
11
|
const StageRow_js_1 = require("../components/StageRow.js");
|
|
11
12
|
const StatusBadge_js_1 = require("../components/StatusBadge.js");
|
|
13
|
+
const VotingStats_js_1 = require("../components/VotingStats.js");
|
|
14
|
+
const StageProgress_js_1 = require("../components/StageProgress.js");
|
|
12
15
|
const constants_js_1 = require("../../../constants.js");
|
|
16
|
+
const stages_js_1 = require("../../../types/stages.js");
|
|
17
|
+
const CopyableText_js_1 = require("../components/CopyableText.js");
|
|
18
|
+
const ErrorDisplay_js_1 = require("../components/ErrorDisplay.js");
|
|
13
19
|
function formatDate(timestamp) {
|
|
14
20
|
if (timestamp === null)
|
|
15
21
|
return "Unknown";
|
|
16
22
|
return new Date(timestamp).toLocaleString();
|
|
17
23
|
}
|
|
18
|
-
function VotingStats({ data }) {
|
|
19
|
-
const forPct = parseFloat(data.forVotes) || 0;
|
|
20
|
-
const againstPct = parseFloat(data.againstVotes) || 0;
|
|
21
|
-
const abstainPct = parseFloat(data.abstainVotes) || 0;
|
|
22
|
-
const total = forPct + againstPct + abstainPct;
|
|
23
|
-
const forBar = total > 0 ? Math.round((forPct / total) * 20) : 0;
|
|
24
|
-
const againstBar = total > 0 ? Math.round((againstPct / total) * 20) : 0;
|
|
25
|
-
return (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", marginBottom: 1 },
|
|
26
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { bold: true }, "Voting:"),
|
|
27
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginLeft: 1, flexDirection: "column" },
|
|
28
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, null,
|
|
29
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "green" },
|
|
30
|
-
"For: ",
|
|
31
|
-
data.forVotes),
|
|
32
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" },
|
|
33
|
-
" ",
|
|
34
|
-
"█".repeat(forBar),
|
|
35
|
-
"░".repeat(20 - forBar))),
|
|
36
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, null,
|
|
37
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "red" },
|
|
38
|
-
"Against: ",
|
|
39
|
-
data.againstVotes),
|
|
40
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" },
|
|
41
|
-
" ",
|
|
42
|
-
"█".repeat(againstBar),
|
|
43
|
-
"░".repeat(20 - againstBar))),
|
|
44
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, null,
|
|
45
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" },
|
|
46
|
-
"Abstain: ",
|
|
47
|
-
data.abstainVotes)),
|
|
48
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, null,
|
|
49
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "cyan" },
|
|
50
|
-
"Quorum: ",
|
|
51
|
-
data.quorum),
|
|
52
|
-
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: data.quorumReached ? "green" : "yellow" }, data.quorumReached ? " ✓ Reached" : " ○ Not reached")))));
|
|
53
|
-
}
|
|
54
24
|
function ProposalDetail({ proposal, navigation, tracker, }) {
|
|
55
25
|
const { state } = navigation;
|
|
56
26
|
const stages = proposal.checkpoint.cachedData.completedStages ?? [];
|
|
57
27
|
const input = proposal.checkpoint.input;
|
|
28
|
+
const { feedback, feedbackType, copy } = (0, CopyableText_js_1.useCopyState)();
|
|
58
29
|
(0, ink_wrapper_js_1.useInput)((inputKey, key) => {
|
|
59
30
|
if (inputKey === "b" || key.escape) {
|
|
60
31
|
navigation.back();
|
|
61
32
|
}
|
|
62
|
-
else if (key.upArrow) {
|
|
33
|
+
else if (key.upArrow || inputKey === "k") {
|
|
63
34
|
navigation.moveUp();
|
|
64
35
|
}
|
|
65
|
-
else if (key.downArrow) {
|
|
66
|
-
navigation.moveDown(
|
|
36
|
+
else if (key.downArrow || inputKey === "j") {
|
|
37
|
+
navigation.moveDown(index_js_1.STAGE_COUNT);
|
|
67
38
|
}
|
|
68
39
|
else if (key.return && stages[state.selectedStageIndex]) {
|
|
69
40
|
navigation.goToStage(state.selectedStageIndex);
|
|
@@ -78,13 +49,13 @@ function ProposalDetail({ proposal, navigation, tracker, }) {
|
|
|
78
49
|
navigation.goToDescription();
|
|
79
50
|
}
|
|
80
51
|
else if (inputKey === "r" && tracker.canTrack && !tracker.isTracking) {
|
|
81
|
-
tracker.track(proposal);
|
|
52
|
+
void tracker.track(proposal);
|
|
82
53
|
}
|
|
83
54
|
else if (inputKey === "g") {
|
|
84
55
|
navigation.goToTop();
|
|
85
56
|
}
|
|
86
57
|
else if (inputKey === "G") {
|
|
87
|
-
navigation.goToBottom(
|
|
58
|
+
navigation.goToBottom(index_js_1.STAGE_COUNT);
|
|
88
59
|
}
|
|
89
60
|
else if (inputKey >= "1" && inputKey <= "7") {
|
|
90
61
|
const stageIndex = parseInt(inputKey, 10) - 1;
|
|
@@ -92,12 +63,29 @@ function ProposalDetail({ proposal, navigation, tracker, }) {
|
|
|
92
63
|
navigation.goToStage(stageIndex);
|
|
93
64
|
}
|
|
94
65
|
}
|
|
66
|
+
else if (inputKey === "?") {
|
|
67
|
+
navigation.goToHelp();
|
|
68
|
+
}
|
|
69
|
+
else if (inputKey === "y") {
|
|
70
|
+
// Copy based on context - proposal ID by default
|
|
71
|
+
const proposalId = getProposalIdDisplay();
|
|
72
|
+
copy(proposalId, "Proposal ID");
|
|
73
|
+
}
|
|
74
|
+
else if (inputKey === "Y") {
|
|
75
|
+
// Copy transaction hash
|
|
76
|
+
const hash = getTxHash();
|
|
77
|
+
if (hash) {
|
|
78
|
+
copy(hash, "TX Hash");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
95
81
|
});
|
|
96
82
|
const getTxHash = () => {
|
|
97
83
|
if (input.type === "governor")
|
|
98
84
|
return input.creationTxHash;
|
|
99
85
|
if (input.type === "timelock")
|
|
100
86
|
return input.scheduledTxHash;
|
|
87
|
+
if (input.type === "discovery")
|
|
88
|
+
return "";
|
|
101
89
|
return "";
|
|
102
90
|
};
|
|
103
91
|
const getProposalIdDisplay = () => {
|
|
@@ -107,15 +95,22 @@ function ProposalDetail({ proposal, navigation, tracker, }) {
|
|
|
107
95
|
if (input.type === "timelock") {
|
|
108
96
|
return input.operationId;
|
|
109
97
|
}
|
|
98
|
+
if (input.type === "discovery") {
|
|
99
|
+
return input.id;
|
|
100
|
+
}
|
|
110
101
|
return "";
|
|
111
102
|
};
|
|
112
103
|
const txHash = getTxHash();
|
|
113
104
|
const txUrl = txHash ? (0, constants_js_1.getTxUrl)(constants_js_1.CHAIN_IDS.ARB_ONE, txHash) : null;
|
|
114
|
-
const votingStage = stages.find((s) => s
|
|
105
|
+
const votingStage = stages.find((s) => (0, stages_js_1.isStageType)(s, "VOTING_ACTIVE"));
|
|
115
106
|
const votingData = votingStage?.data;
|
|
107
|
+
const shortTitle = proposal.title.length > 40
|
|
108
|
+
? proposal.title.substring(0, 40) + "..."
|
|
109
|
+
: proposal.title;
|
|
116
110
|
return (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", height: "100%" },
|
|
117
|
-
ink_wrapper_js_1.React.createElement(Header_js_1.Header, { view: "detail", filter: state.filter, stats: null, hasProviders: tracker.canTrack, isTracking: tracker.isTracking, title: proposal.title, position: { current: state.selectedStageIndex + 1, total:
|
|
111
|
+
ink_wrapper_js_1.React.createElement(Header_js_1.Header, { view: "detail", filter: state.filter, stats: null, hasProviders: tracker.canTrack, isTracking: tracker.isTracking, title: proposal.title, position: { current: state.selectedStageIndex + 1, total: index_js_1.STAGE_COUNT }, breadcrumb: ["Proposals", shortTitle] }),
|
|
118
112
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", paddingX: 1, flexGrow: 1 },
|
|
113
|
+
ink_wrapper_js_1.React.createElement(StageProgress_js_1.StageProgress, { stages: stages, currentIndex: state.selectedStageIndex }),
|
|
119
114
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", marginBottom: 1 },
|
|
120
115
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, null,
|
|
121
116
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, "Type: "),
|
|
@@ -125,8 +120,7 @@ function ProposalDetail({ proposal, navigation, tracker, }) {
|
|
|
125
120
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, null,
|
|
126
121
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" },
|
|
127
122
|
input.type === "governor" ? "Proposal ID" : "Operation ID",
|
|
128
|
-
":",
|
|
129
|
-
" "),
|
|
123
|
+
": "),
|
|
130
124
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, null, getProposalIdDisplay())),
|
|
131
125
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, null,
|
|
132
126
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, "TX: "),
|
|
@@ -140,10 +134,11 @@ function ProposalDetail({ proposal, navigation, tracker, }) {
|
|
|
140
134
|
tracker.isTracking && tracker.progress && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
141
135
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "yellow" }, tracker.progress))),
|
|
142
136
|
tracker.error && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
143
|
-
ink_wrapper_js_1.React.createElement(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
137
|
+
ink_wrapper_js_1.React.createElement(ErrorDisplay_js_1.ErrorBanner, { error: tracker.error }),
|
|
138
|
+
tracker.canTrack && ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, "Press r to retry"))),
|
|
139
|
+
feedback && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
140
|
+
ink_wrapper_js_1.React.createElement(CopyableText_js_1.CopyFeedback, { message: feedback, type: feedbackType }))),
|
|
141
|
+
votingData && ink_wrapper_js_1.React.createElement(VotingStats_js_1.VotingStats, { data: votingData }),
|
|
147
142
|
tracker.preparedTxs.length > 0 && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", marginBottom: 1 },
|
|
148
143
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "green", bold: true },
|
|
149
144
|
"Prepared Transactions (",
|
|
@@ -159,7 +154,7 @@ function ProposalDetail({ proposal, navigation, tracker, }) {
|
|
|
159
154
|
tx.chain)))))),
|
|
160
155
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column", marginTop: 1 },
|
|
161
156
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { bold: true }, "Stages:"),
|
|
162
|
-
stages.length === 0 ? (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, "
|
|
157
|
+
stages.length === 0 ? (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, " No stages tracked yet")) : (stages.map((stage, i) => (ink_wrapper_js_1.React.createElement(StageRow_js_1.StageRow, { key: stage.type, stage: stage, index: i, isSelected: i === state.selectedStageIndex })))),
|
|
163
158
|
stages.length > 0 &&
|
|
164
159
|
stages.length < 7 &&
|
|
165
160
|
Array.from({ length: 7 - stages.length }).map((_, i) => (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { key: `placeholder-${i}` },
|