centy 0.0.17 → 0.0.19

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.
Files changed (129) hide show
  1. package/dist/commands/add/asset.d.ts +2 -1
  2. package/dist/commands/add/asset.d.ts.map +1 -1
  3. package/dist/commands/add/asset.js +14 -5
  4. package/dist/commands/add/asset.js.map +1 -1
  5. package/dist/commands/create/pr.d.ts +3 -3
  6. package/dist/commands/create/pr.d.ts.map +1 -1
  7. package/dist/commands/create/pr.js +11 -33
  8. package/dist/commands/create/pr.js.map +1 -1
  9. package/dist/daemon/types.d.ts +1 -0
  10. package/dist/daemon/types.d.ts.map +1 -1
  11. package/dist/lib/create-pr/create-pr.d.ts +8 -0
  12. package/dist/lib/create-pr/create-pr.d.ts.map +1 -0
  13. package/dist/lib/create-pr/create-pr.js +111 -0
  14. package/dist/lib/create-pr/create-pr.js.map +1 -0
  15. package/dist/lib/create-pr/gather-basic-fields.d.ts +8 -0
  16. package/dist/lib/create-pr/gather-basic-fields.d.ts.map +1 -0
  17. package/dist/lib/create-pr/gather-basic-fields.js +34 -0
  18. package/dist/lib/create-pr/gather-basic-fields.js.map +1 -0
  19. package/dist/lib/create-pr/gather-metadata-fields.d.ts +11 -0
  20. package/dist/lib/create-pr/gather-metadata-fields.d.ts.map +1 -0
  21. package/dist/lib/create-pr/gather-metadata-fields.js +34 -0
  22. package/dist/lib/create-pr/gather-metadata-fields.js.map +1 -0
  23. package/dist/lib/create-pr/gather-pr-input.d.ts +8 -0
  24. package/dist/lib/create-pr/gather-pr-input.d.ts.map +1 -0
  25. package/dist/lib/create-pr/gather-pr-input.js +33 -0
  26. package/dist/lib/create-pr/gather-pr-input.js.map +1 -0
  27. package/dist/lib/create-pr/index.d.ts +2 -0
  28. package/dist/lib/create-pr/index.d.ts.map +1 -0
  29. package/dist/lib/create-pr/index.js +2 -0
  30. package/dist/lib/create-pr/index.js.map +1 -0
  31. package/dist/lib/create-pr/prompt-for-description.d.ts +6 -0
  32. package/dist/lib/create-pr/prompt-for-description.d.ts.map +1 -0
  33. package/dist/lib/create-pr/prompt-for-description.js +12 -0
  34. package/dist/lib/create-pr/prompt-for-description.js.map +1 -0
  35. package/dist/lib/create-pr/prompt-for-linked-issues.d.ts +7 -0
  36. package/dist/lib/create-pr/prompt-for-linked-issues.d.ts.map +1 -0
  37. package/dist/lib/create-pr/prompt-for-linked-issues.js +22 -0
  38. package/dist/lib/create-pr/prompt-for-linked-issues.js.map +1 -0
  39. package/dist/lib/create-pr/prompt-for-priority.d.ts +9 -0
  40. package/dist/lib/create-pr/prompt-for-priority.d.ts.map +1 -0
  41. package/dist/lib/create-pr/prompt-for-priority.js +25 -0
  42. package/dist/lib/create-pr/prompt-for-priority.js.map +1 -0
  43. package/dist/lib/create-pr/prompt-for-reviewers.d.ts +7 -0
  44. package/dist/lib/create-pr/prompt-for-reviewers.d.ts.map +1 -0
  45. package/dist/lib/create-pr/prompt-for-reviewers.js +22 -0
  46. package/dist/lib/create-pr/prompt-for-reviewers.js.map +1 -0
  47. package/dist/lib/create-pr/prompt-for-source-branch.d.ts +7 -0
  48. package/dist/lib/create-pr/prompt-for-source-branch.d.ts.map +1 -0
  49. package/dist/lib/create-pr/prompt-for-source-branch.js +20 -0
  50. package/dist/lib/create-pr/prompt-for-source-branch.js.map +1 -0
  51. package/dist/lib/create-pr/prompt-for-status.d.ts +9 -0
  52. package/dist/lib/create-pr/prompt-for-status.d.ts.map +1 -0
  53. package/dist/lib/create-pr/prompt-for-status.js +25 -0
  54. package/dist/lib/create-pr/prompt-for-status.js.map +1 -0
  55. package/dist/lib/create-pr/prompt-for-target-branch.d.ts +7 -0
  56. package/dist/lib/create-pr/prompt-for-target-branch.d.ts.map +1 -0
  57. package/dist/lib/create-pr/prompt-for-target-branch.js +15 -0
  58. package/dist/lib/create-pr/prompt-for-target-branch.js.map +1 -0
  59. package/dist/lib/create-pr/prompt-for-title.d.ts +6 -0
  60. package/dist/lib/create-pr/prompt-for-title.d.ts.map +1 -0
  61. package/dist/lib/create-pr/prompt-for-title.js +12 -0
  62. package/dist/lib/create-pr/prompt-for-title.js.map +1 -0
  63. package/dist/lib/create-pr/types.d.ts +14 -0
  64. package/dist/lib/create-pr/types.d.ts.map +1 -0
  65. package/dist/lib/create-pr/types.js +2 -0
  66. package/dist/lib/create-pr/types.js.map +1 -0
  67. package/dist/tui/App.d.ts.map +1 -1
  68. package/dist/tui/App.js +43 -0
  69. package/dist/tui/App.js.map +1 -1
  70. package/dist/tui/components/domain/IssueDetail.d.ts.map +1 -1
  71. package/dist/tui/components/domain/IssueDetail.js +8 -1
  72. package/dist/tui/components/domain/IssueDetail.js.map +1 -1
  73. package/dist/tui/components/domain/IssueEdit.d.ts +2 -0
  74. package/dist/tui/components/domain/IssueEdit.d.ts.map +1 -0
  75. package/dist/tui/components/domain/IssueEdit.js +245 -0
  76. package/dist/tui/components/domain/IssueEdit.js.map +1 -0
  77. package/dist/tui/components/domain/PRCreate.d.ts +2 -0
  78. package/dist/tui/components/domain/PRCreate.d.ts.map +1 -0
  79. package/dist/tui/components/domain/PRCreate.js +195 -0
  80. package/dist/tui/components/domain/PRCreate.js.map +1 -0
  81. package/dist/tui/components/domain/PRDetail.d.ts +2 -0
  82. package/dist/tui/components/domain/PRDetail.d.ts.map +1 -0
  83. package/dist/tui/components/domain/PRDetail.js +119 -0
  84. package/dist/tui/components/domain/PRDetail.js.map +1 -0
  85. package/dist/tui/components/domain/PREdit.d.ts +2 -0
  86. package/dist/tui/components/domain/PREdit.d.ts.map +1 -0
  87. package/dist/tui/components/domain/PREdit.js +259 -0
  88. package/dist/tui/components/domain/PREdit.js.map +1 -0
  89. package/dist/tui/components/domain/PRList.d.ts +2 -0
  90. package/dist/tui/components/domain/PRList.d.ts.map +1 -0
  91. package/dist/tui/components/domain/PRList.js +178 -0
  92. package/dist/tui/components/domain/PRList.js.map +1 -0
  93. package/dist/tui/hooks/useAutoSelectProject.d.ts +8 -0
  94. package/dist/tui/hooks/useAutoSelectProject.d.ts.map +1 -0
  95. package/dist/tui/hooks/useAutoSelectProject.js +48 -0
  96. package/dist/tui/hooks/useAutoSelectProject.js.map +1 -0
  97. package/dist/tui/hooks/usePullRequests.d.ts +8 -0
  98. package/dist/tui/hooks/usePullRequests.d.ts.map +1 -0
  99. package/dist/tui/hooks/usePullRequests.js +36 -0
  100. package/dist/tui/hooks/usePullRequests.js.map +1 -0
  101. package/dist/tui/index.d.ts.map +1 -1
  102. package/dist/tui/index.js +5 -3
  103. package/dist/tui/index.js.map +1 -1
  104. package/dist/tui/services/daemon-service.d.ts +36 -1
  105. package/dist/tui/services/daemon-service.d.ts.map +1 -1
  106. package/dist/tui/services/daemon-service.js +111 -0
  107. package/dist/tui/services/daemon-service.js.map +1 -1
  108. package/dist/tui/state/app-state.d.ts +22 -2
  109. package/dist/tui/state/app-state.d.ts.map +1 -1
  110. package/dist/tui/state/app-state.js +23 -1
  111. package/dist/tui/state/app-state.js.map +1 -1
  112. package/dist/tui/types/views.d.ts +2 -1
  113. package/dist/tui/types/views.d.ts.map +1 -1
  114. package/dist/tui/types/views.js +7 -0
  115. package/dist/tui/types/views.js.map +1 -1
  116. package/dist/tui/utils/local-config.d.ts +4 -1
  117. package/dist/tui/utils/local-config.d.ts.map +1 -1
  118. package/dist/tui/utils/local-config.js +10 -1
  119. package/dist/tui/utils/local-config.js.map +1 -1
  120. package/dist/types/create-pr-options.d.ts +30 -0
  121. package/dist/types/create-pr-options.d.ts.map +1 -0
  122. package/dist/types/create-pr-options.js +2 -0
  123. package/dist/types/create-pr-options.js.map +1 -0
  124. package/dist/types/create-pr-result.d.ts +16 -0
  125. package/dist/types/create-pr-result.d.ts.map +1 -0
  126. package/dist/types/create-pr-result.js +2 -0
  127. package/dist/types/create-pr-result.js.map +1 -0
  128. package/oclif.manifest.json +12 -5
  129. package/package.json +1 -1
@@ -0,0 +1,245 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { useState, useCallback, useEffect } from 'react';
3
+ import { useKeyboard } from '@opentui/react';
4
+ import { MainPanel } from '../layout/MainPanel.js';
5
+ import { useNavigation } from '../../hooks/useNavigation.js';
6
+ import { useAppState } from '../../state/app-state.js';
7
+ import { useConfig } from '../../hooks/useConfig.js';
8
+ import { daemonService } from '../../services/daemon-service.js';
9
+ const FIELDS = ['title', 'description', 'priority', 'status'];
10
+ const DEFAULT_STATUSES = ['open', 'in-progress', 'done', 'closed'];
11
+ function getPriorityColor(priority) {
12
+ if (priority === 1)
13
+ return 'red';
14
+ if (priority === 2)
15
+ return 'yellow';
16
+ return 'green';
17
+ }
18
+ function getPriorityLabel(priority) {
19
+ if (priority === 1)
20
+ return 'High';
21
+ if (priority === 2)
22
+ return 'Medium';
23
+ return 'Low';
24
+ }
25
+ function getStatusColor(status) {
26
+ const statusLower = status.toLowerCase();
27
+ if (statusLower === 'done' || statusLower === 'closed')
28
+ return 'green';
29
+ if (statusLower === 'in-progress' || statusLower === 'in_progress')
30
+ return 'yellow';
31
+ return 'gray';
32
+ }
33
+ export function IssueEdit() {
34
+ const { viewParams, goBack, navigate } = useNavigation();
35
+ const { state, dispatch } = useAppState();
36
+ const { config } = useConfig();
37
+ const [issue, setIssue] = useState(null);
38
+ const [isLoading, setIsLoading] = useState(true);
39
+ const [title, setTitle] = useState('');
40
+ const [description, setDescription] = useState('');
41
+ const [priority, setPriority] = useState(3);
42
+ const [status, setStatus] = useState('open');
43
+ const [activeField, setActiveField] = useState('title');
44
+ const [isSubmitting, setIsSubmitting] = useState(false);
45
+ const [error, setError] = useState(null);
46
+ const priorityLevels = config?.priorityLevels ?? 3;
47
+ const statuses = config?.allowedStates ?? DEFAULT_STATUSES;
48
+ // Load issue data
49
+ const loadIssue = useCallback(async () => {
50
+ if (!state.daemonConnected || !state.selectedProjectPath)
51
+ return;
52
+ const issueId = viewParams.issueId || state.selectedIssueId;
53
+ if (!issueId)
54
+ return;
55
+ setIsLoading(true);
56
+ const result = await daemonService.getIssue(state.selectedProjectPath, issueId);
57
+ setIsLoading(false);
58
+ if (result.success && result.data) {
59
+ const loadedIssue = result.data;
60
+ setIssue(loadedIssue);
61
+ setTitle(loadedIssue.title);
62
+ setDescription(loadedIssue.description || '');
63
+ setPriority(loadedIssue.metadata.priority);
64
+ setStatus(loadedIssue.metadata.status);
65
+ }
66
+ else if (result.error) {
67
+ setError(result.error);
68
+ }
69
+ }, [
70
+ state.daemonConnected,
71
+ state.selectedProjectPath,
72
+ state.selectedIssueId,
73
+ viewParams.issueId,
74
+ ]);
75
+ useEffect(() => {
76
+ loadIssue();
77
+ }, [loadIssue]);
78
+ const handleSubmit = useCallback(async () => {
79
+ if (!state.selectedProjectPath || !issue)
80
+ return;
81
+ if (!title.trim()) {
82
+ setError('Title is required');
83
+ return;
84
+ }
85
+ setIsSubmitting(true);
86
+ setError(null);
87
+ const result = await daemonService.updateIssue(state.selectedProjectPath, issue.id, {
88
+ title: title.trim(),
89
+ description: description.trim(),
90
+ priority,
91
+ status,
92
+ });
93
+ setIsSubmitting(false);
94
+ if (result.success) {
95
+ // Refresh issues list and navigate back to detail
96
+ dispatch({ type: 'SET_ISSUES', issues: [] }); // Clear to force reload
97
+ navigate('issue-detail', { issueId: issue.id });
98
+ }
99
+ else {
100
+ setError(result.error || 'Failed to update issue');
101
+ }
102
+ }, [
103
+ state.selectedProjectPath,
104
+ issue,
105
+ title,
106
+ description,
107
+ priority,
108
+ status,
109
+ dispatch,
110
+ navigate,
111
+ ]);
112
+ const moveToNextField = useCallback(() => {
113
+ const currentIndex = FIELDS.indexOf(activeField);
114
+ if (currentIndex < FIELDS.length - 1) {
115
+ setActiveField(FIELDS[currentIndex + 1]);
116
+ }
117
+ }, [activeField]);
118
+ const moveToPrevField = useCallback(() => {
119
+ const currentIndex = FIELDS.indexOf(activeField);
120
+ if (currentIndex > 0) {
121
+ setActiveField(FIELDS[currentIndex - 1]);
122
+ }
123
+ }, [activeField]);
124
+ const cyclePriority = useCallback((direction) => {
125
+ if (direction === 'up') {
126
+ setPriority(prev => (prev > 1 ? prev - 1 : priorityLevels));
127
+ }
128
+ else {
129
+ setPriority(prev => (prev < priorityLevels ? prev + 1 : 1));
130
+ }
131
+ }, [priorityLevels]);
132
+ const cycleStatus = useCallback((direction) => {
133
+ const currentIndex = statuses.indexOf(status);
134
+ if (direction === 'up') {
135
+ const prevIndex = currentIndex > 0 ? currentIndex - 1 : statuses.length - 1;
136
+ setStatus(statuses[prevIndex]);
137
+ }
138
+ else {
139
+ const nextIndex = (currentIndex + 1) % statuses.length;
140
+ setStatus(statuses[nextIndex]);
141
+ }
142
+ }, [status, statuses]);
143
+ useKeyboard((event) => {
144
+ // Cancel with Escape
145
+ if (event.name === 'escape') {
146
+ goBack();
147
+ return;
148
+ }
149
+ // Submit with Ctrl+S
150
+ if (event.ctrl && event.name === 's') {
151
+ handleSubmit();
152
+ return;
153
+ }
154
+ // Navigate between fields with Tab/Shift+Tab
155
+ if (event.name === 'tab') {
156
+ if (event.shift) {
157
+ moveToPrevField();
158
+ }
159
+ else {
160
+ moveToNextField();
161
+ }
162
+ return;
163
+ }
164
+ // Handle input based on active field
165
+ if (activeField === 'priority') {
166
+ if (event.name === 'up' || event.name === 'k') {
167
+ cyclePriority('up');
168
+ }
169
+ else if (event.name === 'down' || event.name === 'j') {
170
+ cyclePriority('down');
171
+ }
172
+ else if (event.name === 'left' || event.name === 'h') {
173
+ cyclePriority('up');
174
+ }
175
+ else if (event.name === 'right' || event.name === 'l') {
176
+ cyclePriority('down');
177
+ }
178
+ }
179
+ else if (activeField === 'status') {
180
+ if (event.name === 'up' || event.name === 'k') {
181
+ cycleStatus('up');
182
+ }
183
+ else if (event.name === 'down' || event.name === 'j') {
184
+ cycleStatus('down');
185
+ }
186
+ else if (event.name === 'left' || event.name === 'h') {
187
+ cycleStatus('up');
188
+ }
189
+ else if (event.name === 'right' || event.name === 'l') {
190
+ cycleStatus('down');
191
+ }
192
+ }
193
+ else if (activeField === 'title' || activeField === 'description') {
194
+ // Handle text input
195
+ if (event.name === 'backspace') {
196
+ if (activeField === 'title') {
197
+ setTitle(prev => prev.slice(0, -1));
198
+ }
199
+ else {
200
+ setDescription(prev => prev.slice(0, -1));
201
+ }
202
+ }
203
+ else if (event.name === 'return') {
204
+ if (activeField === 'description') {
205
+ setDescription(prev => prev + '\n');
206
+ }
207
+ else {
208
+ moveToNextField();
209
+ }
210
+ }
211
+ else if (event.name === 'space') {
212
+ if (activeField === 'title') {
213
+ setTitle(prev => prev + ' ');
214
+ }
215
+ else {
216
+ setDescription(prev => prev + ' ');
217
+ }
218
+ }
219
+ else if (event.name.length === 1 && !event.ctrl && !event.meta) {
220
+ const char = event.shift ? event.name.toUpperCase() : event.name;
221
+ if (activeField === 'title') {
222
+ setTitle(prev => prev + char);
223
+ }
224
+ else {
225
+ setDescription(prev => prev + char);
226
+ }
227
+ }
228
+ }
229
+ });
230
+ const projectName = state.selectedProjectPath?.split('/').pop() || 'Project';
231
+ if (!state.selectedProjectPath) {
232
+ return (_jsx(MainPanel, { title: "Edit Issue", children: _jsx("text", { fg: "gray", children: "Select a project first." }) }));
233
+ }
234
+ if (isLoading) {
235
+ return (_jsx(MainPanel, { title: `Edit Issue - ${projectName}`, children: _jsx("text", { fg: "cyan", children: "Loading issue..." }) }));
236
+ }
237
+ if (!issue) {
238
+ return (_jsx(MainPanel, { title: `Edit Issue - ${projectName}`, children: _jsx("text", { fg: "red", children: "Issue not found." }) }));
239
+ }
240
+ if (isSubmitting) {
241
+ return (_jsx(MainPanel, { title: `Edit Issue #${issue.displayNumber} - ${projectName}`, children: _jsx("text", { fg: "cyan", children: "Saving changes..." }) }));
242
+ }
243
+ return (_jsx(MainPanel, { title: `Edit Issue #${issue.displayNumber} - ${projectName}`, children: _jsxs("box", { flexDirection: "column", flexGrow: 1, children: [_jsx("box", { marginBottom: 1, children: _jsx("text", { fg: "gray", children: "Tab: next field | Shift+Tab: prev | Ctrl+S: save | Esc: cancel" }) }), error && (_jsx("box", { marginBottom: 1, children: _jsx("text", { fg: "red", children: error }) })), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'title' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Title ", activeField === 'title' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, borderStyle: activeField === 'title' ? 'single' : undefined, children: [_jsx("text", { children: title || (activeField === 'title' ? '│' : '') }), activeField === 'title' && _jsx("text", { fg: "cyan", children: "_" })] })] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'description' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Description ", activeField === 'description' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, borderStyle: activeField === 'description' ? 'single' : undefined, height: 5, children: [_jsx("text", { children: description || (activeField === 'description' ? '' : '') }), activeField === 'description' && _jsx("text", { fg: "cyan", children: "_" })] })] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'priority' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Priority ", activeField === 'priority' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, flexDirection: "row", children: [activeField === 'priority' && _jsx("text", { fg: "gray", children: "\u25C0 " }), _jsxs("text", { fg: getPriorityColor(priority), children: [getPriorityLabel(priority), " (", priority, "/", priorityLevels, ")"] }), activeField === 'priority' && _jsx("text", { fg: "gray", children: " \u25B6" })] }), activeField === 'priority' && (_jsx("box", { paddingLeft: 2, children: _jsx("text", { fg: "gray", children: "Use arrow keys or h/l to change" }) }))] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'status' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Status ", activeField === 'status' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, flexDirection: "row", children: [activeField === 'status' && _jsx("text", { fg: "gray", children: "\u25C0 " }), _jsx("text", { fg: getStatusColor(status), children: status }), activeField === 'status' && _jsx("text", { fg: "gray", children: " \u25B6" })] }), activeField === 'status' && (_jsx("box", { paddingLeft: 2, children: _jsx("text", { fg: "gray", children: "Use arrow keys or h/l to change" }) }))] }), _jsx("box", { marginTop: 1, children: _jsx("text", { fg: "green", children: "Press Ctrl+S to save changes" }) })] }) }));
244
+ }
245
+ //# sourceMappingURL=IssueEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssueEdit.js","sourceRoot":"","sources":["../../../../src/tui/components/domain/IssueEdit.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function PRCreate(): import("react").ReactNode;
2
+ //# sourceMappingURL=PRCreate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PRCreate.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/domain/PRCreate.tsx"],"names":[],"mappings":"AA4CA,wBAAgB,QAAQ,8BA6SvB"}
@@ -0,0 +1,195 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { useState, useCallback } from 'react';
3
+ import { useKeyboard } from '@opentui/react';
4
+ import { MainPanel } from '../layout/MainPanel.js';
5
+ import { useNavigation } from '../../hooks/useNavigation.js';
6
+ import { useAppState } from '../../state/app-state.js';
7
+ import { useConfig } from '../../hooks/useConfig.js';
8
+ import { daemonService } from '../../services/daemon-service.js';
9
+ const FIELDS = [
10
+ 'title',
11
+ 'description',
12
+ 'sourceBranch',
13
+ 'targetBranch',
14
+ 'priority',
15
+ 'status',
16
+ ];
17
+ const STATUS_OPTIONS = ['draft', 'open'];
18
+ function getPriorityColor(priority) {
19
+ if (priority === 1)
20
+ return 'red';
21
+ if (priority === 2)
22
+ return 'yellow';
23
+ return 'green';
24
+ }
25
+ function getPriorityLabel(priority) {
26
+ if (priority === 1)
27
+ return 'High';
28
+ if (priority === 2)
29
+ return 'Medium';
30
+ return 'Low';
31
+ }
32
+ function getStatusColor(status) {
33
+ return status === 'draft' ? 'gray' : 'blue';
34
+ }
35
+ export function PRCreate() {
36
+ const { goBack, navigate } = useNavigation();
37
+ const { state, dispatch } = useAppState();
38
+ const { config } = useConfig();
39
+ const [title, setTitle] = useState('');
40
+ const [description, setDescription] = useState('');
41
+ const [sourceBranch, setSourceBranch] = useState('');
42
+ const [targetBranch, setTargetBranch] = useState('main');
43
+ const [priority, setPriority] = useState(3); // Default to low
44
+ const [status, setStatus] = useState('draft');
45
+ const [activeField, setActiveField] = useState('title');
46
+ const [isSubmitting, setIsSubmitting] = useState(false);
47
+ const [error, setError] = useState(null);
48
+ const priorityLevels = config?.priorityLevels ?? 3;
49
+ const handleSubmit = useCallback(async () => {
50
+ if (!state.selectedProjectPath)
51
+ return;
52
+ if (!title.trim()) {
53
+ setError('Title is required');
54
+ return;
55
+ }
56
+ setIsSubmitting(true);
57
+ setError(null);
58
+ const result = await daemonService.createPr(state.selectedProjectPath, {
59
+ title: title.trim(),
60
+ description: description.trim(),
61
+ sourceBranch: sourceBranch.trim() || undefined,
62
+ targetBranch: targetBranch.trim() || undefined,
63
+ priority,
64
+ status,
65
+ });
66
+ setIsSubmitting(false);
67
+ if (result.success) {
68
+ // Refresh PRs list and navigate back
69
+ dispatch({ type: 'SET_PRS', prs: [] }); // Clear to force reload
70
+ navigate('prs');
71
+ }
72
+ else {
73
+ setError(result.error || 'Failed to create PR');
74
+ }
75
+ }, [
76
+ state.selectedProjectPath,
77
+ title,
78
+ description,
79
+ sourceBranch,
80
+ targetBranch,
81
+ priority,
82
+ status,
83
+ dispatch,
84
+ navigate,
85
+ ]);
86
+ const moveToNextField = useCallback(() => {
87
+ const currentIndex = FIELDS.indexOf(activeField);
88
+ if (currentIndex < FIELDS.length - 1) {
89
+ setActiveField(FIELDS[currentIndex + 1]);
90
+ }
91
+ }, [activeField]);
92
+ const moveToPrevField = useCallback(() => {
93
+ const currentIndex = FIELDS.indexOf(activeField);
94
+ if (currentIndex > 0) {
95
+ setActiveField(FIELDS[currentIndex - 1]);
96
+ }
97
+ }, [activeField]);
98
+ const cyclePriority = useCallback((direction) => {
99
+ if (direction === 'up') {
100
+ setPriority(prev => (prev > 1 ? prev - 1 : priorityLevels));
101
+ }
102
+ else {
103
+ setPriority(prev => (prev < priorityLevels ? prev + 1 : 1));
104
+ }
105
+ }, [priorityLevels]);
106
+ const cycleStatus = useCallback(() => {
107
+ setStatus(prev => (prev === 'draft' ? 'open' : 'draft'));
108
+ }, []);
109
+ useKeyboard((event) => {
110
+ // Cancel with Escape
111
+ if (event.name === 'escape') {
112
+ goBack();
113
+ return;
114
+ }
115
+ // Submit with Ctrl+S
116
+ if (event.ctrl && event.name === 's') {
117
+ handleSubmit();
118
+ return;
119
+ }
120
+ // Navigate between fields with Tab/Shift+Tab
121
+ if (event.name === 'tab') {
122
+ if (event.shift) {
123
+ moveToPrevField();
124
+ }
125
+ else {
126
+ moveToNextField();
127
+ }
128
+ return;
129
+ }
130
+ // Handle input based on active field
131
+ if (activeField === 'priority') {
132
+ if (event.name === 'up' ||
133
+ event.name === 'k' ||
134
+ event.name === 'left' ||
135
+ event.name === 'h') {
136
+ cyclePriority('up');
137
+ }
138
+ else if (event.name === 'down' ||
139
+ event.name === 'j' ||
140
+ event.name === 'right' ||
141
+ event.name === 'l') {
142
+ cyclePriority('down');
143
+ }
144
+ }
145
+ else if (activeField === 'status') {
146
+ if (event.name === 'up' ||
147
+ event.name === 'k' ||
148
+ event.name === 'down' ||
149
+ event.name === 'j' ||
150
+ event.name === 'left' ||
151
+ event.name === 'h' ||
152
+ event.name === 'right' ||
153
+ event.name === 'l') {
154
+ cycleStatus();
155
+ }
156
+ }
157
+ else {
158
+ // Handle text input for title, description, sourceBranch, targetBranch
159
+ const setters = {
160
+ title: setTitle,
161
+ description: setDescription,
162
+ sourceBranch: setSourceBranch,
163
+ targetBranch: setTargetBranch,
164
+ };
165
+ const setter = setters[activeField];
166
+ if (event.name === 'backspace') {
167
+ setter(prev => prev.slice(0, -1));
168
+ }
169
+ else if (event.name === 'return') {
170
+ if (activeField === 'description') {
171
+ setter(prev => prev + '\n');
172
+ }
173
+ else {
174
+ moveToNextField();
175
+ }
176
+ }
177
+ else if (event.name === 'space') {
178
+ setter(prev => prev + ' ');
179
+ }
180
+ else if (event.name.length === 1 && !event.ctrl && !event.meta) {
181
+ const char = event.shift ? event.name.toUpperCase() : event.name;
182
+ setter(prev => prev + char);
183
+ }
184
+ }
185
+ });
186
+ const projectName = state.selectedProjectPath?.split('/').pop() || 'Project';
187
+ if (!state.selectedProjectPath) {
188
+ return (_jsx(MainPanel, { title: "New PR", children: _jsx("text", { fg: "gray", children: "Select a project first." }) }));
189
+ }
190
+ if (isSubmitting) {
191
+ return (_jsx(MainPanel, { title: `New PR - ${projectName}`, children: _jsx("text", { fg: "cyan", children: "Creating PR..." }) }));
192
+ }
193
+ return (_jsx(MainPanel, { title: `New PR - ${projectName}`, children: _jsxs("box", { flexDirection: "column", flexGrow: 1, children: [_jsx("box", { marginBottom: 1, children: _jsx("text", { fg: "gray", children: "Tab: next field | Shift+Tab: prev | Ctrl+S: save | Esc: cancel" }) }), error && (_jsx("box", { marginBottom: 1, children: _jsx("text", { fg: "red", children: error }) })), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'title' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Title ", activeField === 'title' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, borderStyle: activeField === 'title' ? 'single' : undefined, children: [_jsx("text", { children: title || (activeField === 'title' ? '│' : '') }), activeField === 'title' && _jsx("text", { fg: "cyan", children: "_" })] })] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'description' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Description ", activeField === 'description' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, borderStyle: activeField === 'description' ? 'single' : undefined, height: 3, children: [_jsx("text", { children: description || (activeField === 'description' ? '' : '') }), activeField === 'description' && _jsx("text", { fg: "cyan", children: "_" })] })] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsxs("text", { fg: activeField === 'sourceBranch' ? 'cyan' : 'white', children: [_jsxs("b", { children: ["Source Branch ", activeField === 'sourceBranch' ? '▸' : ' '] }), _jsx("text", { fg: "gray", children: " (auto-detected if empty)" })] }), _jsxs("box", { paddingLeft: 2, borderStyle: activeField === 'sourceBranch' ? 'single' : undefined, children: [_jsx("text", { children: sourceBranch || (activeField === 'sourceBranch' ? '│' : '') }), activeField === 'sourceBranch' && _jsx("text", { fg: "cyan", children: "_" })] })] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'targetBranch' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Target Branch ", activeField === 'targetBranch' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, borderStyle: activeField === 'targetBranch' ? 'single' : undefined, children: [_jsx("text", { children: targetBranch || (activeField === 'targetBranch' ? '│' : '') }), activeField === 'targetBranch' && _jsx("text", { fg: "cyan", children: "_" })] })] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'priority' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Priority ", activeField === 'priority' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, flexDirection: "row", children: [activeField === 'priority' && _jsx("text", { fg: "gray", children: "\u25C0 " }), _jsxs("text", { fg: getPriorityColor(priority), children: [getPriorityLabel(priority), " (", priority, "/", priorityLevels, ")"] }), activeField === 'priority' && _jsx("text", { fg: "gray", children: " \u25B6" })] })] }), _jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: activeField === 'status' ? 'cyan' : 'white', children: _jsxs("b", { children: ["Status ", activeField === 'status' ? '▸' : ' '] }) }), _jsxs("box", { paddingLeft: 2, flexDirection: "row", children: [activeField === 'status' && _jsx("text", { fg: "gray", children: "\u25C0 " }), _jsx("text", { fg: getStatusColor(status), children: status }), activeField === 'status' && _jsx("text", { fg: "gray", children: " \u25B6" })] })] }), _jsx("box", { marginTop: 1, children: _jsx("text", { fg: "green", children: "Press Ctrl+S to create PR" }) })] }) }));
194
+ }
195
+ //# sourceMappingURL=PRCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PRCreate.js","sourceRoot":"","sources":["../../../../src/tui/components/domain/PRCreate.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function PRDetail(): import("react").ReactNode;
2
+ //# sourceMappingURL=PRDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PRDetail.d.ts","sourceRoot":"","sources":["../../../../src/tui/components/domain/PRDetail.tsx"],"names":[],"mappings":"AAuDA,wBAAgB,QAAQ,8BA4LvB"}
@@ -0,0 +1,119 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { useEffect, useRef, useState, useCallback } from 'react';
3
+ import { useKeyboard } from '@opentui/react';
4
+ import { MainPanel } from '../layout/MainPanel.js';
5
+ import { useNavigation } from '../../hooks/useNavigation.js';
6
+ import { useAppState } from '../../state/app-state.js';
7
+ import { daemonService } from '../../services/daemon-service.js';
8
+ function getPriorityColor(priority) {
9
+ if (priority === 1)
10
+ return 'red';
11
+ if (priority === 2)
12
+ return 'yellow';
13
+ return 'green';
14
+ }
15
+ function getPriorityLabel(priority, label) {
16
+ if (label)
17
+ return label;
18
+ if (priority === 1)
19
+ return 'High';
20
+ if (priority === 2)
21
+ return 'Medium';
22
+ return 'Low';
23
+ }
24
+ function getStatusColor(status) {
25
+ switch (status) {
26
+ case 'draft':
27
+ return 'gray';
28
+ case 'open':
29
+ return 'blue';
30
+ case 'merged':
31
+ return 'magenta';
32
+ case 'closed':
33
+ return 'red';
34
+ default:
35
+ return 'gray';
36
+ }
37
+ }
38
+ function PRSection({ title, children }) {
39
+ return (_jsxs("box", { flexDirection: "column", marginBottom: 1, children: [_jsx("text", { fg: "cyan", children: _jsx("b", { children: title }) }), _jsx("box", { paddingLeft: 2, flexDirection: "column", children: children })] }));
40
+ }
41
+ export function PRDetail() {
42
+ const { viewParams, goBack, navigate } = useNavigation();
43
+ const { state, dispatch } = useAppState();
44
+ const [pr, setPr] = useState(null);
45
+ const [isLoading, setIsLoading] = useState(true);
46
+ const scrollBoxRef = useRef(null);
47
+ const loadPr = useCallback(async () => {
48
+ if (!state.daemonConnected || !state.selectedProjectPath)
49
+ return;
50
+ const prId = viewParams.prId || state.selectedPrId;
51
+ if (!prId)
52
+ return;
53
+ setIsLoading(true);
54
+ const result = await daemonService.getPr(state.selectedProjectPath, prId);
55
+ setIsLoading(false);
56
+ if (result.success && result.data) {
57
+ setPr(result.data);
58
+ }
59
+ else if (result.error) {
60
+ dispatch({ type: 'SET_ERROR', error: result.error });
61
+ }
62
+ }, [
63
+ state.daemonConnected,
64
+ state.selectedProjectPath,
65
+ state.selectedPrId,
66
+ viewParams.prId,
67
+ dispatch,
68
+ ]);
69
+ useEffect(() => {
70
+ loadPr();
71
+ }, [loadPr]);
72
+ useKeyboard((event) => {
73
+ if (event.name === 'escape' || event.name === 'backspace') {
74
+ goBack();
75
+ }
76
+ else if (event.name === 'e') {
77
+ // Edit PR
78
+ const prId = viewParams.prId || state.selectedPrId;
79
+ if (prId) {
80
+ navigate('pr-edit', { prId });
81
+ }
82
+ }
83
+ else if (event.name === 'j' || event.name === 'down') {
84
+ if (scrollBoxRef.current) {
85
+ scrollBoxRef.current.scrollBy(1);
86
+ }
87
+ }
88
+ else if (event.name === 'k' || event.name === 'up') {
89
+ if (scrollBoxRef.current) {
90
+ scrollBoxRef.current.scrollBy(-1);
91
+ }
92
+ }
93
+ else if (event.name === 'pagedown' || event.name === 'd') {
94
+ if (scrollBoxRef.current) {
95
+ scrollBoxRef.current.scrollBy(10);
96
+ }
97
+ }
98
+ else if (event.name === 'pageup' || event.name === 'u') {
99
+ if (scrollBoxRef.current) {
100
+ scrollBoxRef.current.scrollBy(-10);
101
+ }
102
+ }
103
+ });
104
+ if (!state.selectedProjectPath) {
105
+ return (_jsx(MainPanel, { title: "Pull Request", children: _jsx("text", { fg: "gray", children: "Select a project first." }) }));
106
+ }
107
+ if (isLoading || !pr) {
108
+ return (_jsx(MainPanel, { title: "Pull Request", children: _jsx("text", { fg: "gray", children: "Loading PR..." }) }));
109
+ }
110
+ const createdDate = new Date(pr.metadata.createdAt).toLocaleString();
111
+ const updatedDate = new Date(pr.metadata.updatedAt).toLocaleString();
112
+ const priorityColor = getPriorityColor(pr.metadata.priority);
113
+ const priorityLabel = getPriorityLabel(pr.metadata.priority, pr.metadata.priorityLabel);
114
+ const statusColor = getStatusColor(pr.metadata.status);
115
+ return (_jsx(MainPanel, { title: `PR #${pr.displayNumber} ${pr.title}`, children: _jsx("scrollbox", { ref: scrollBoxRef, flexGrow: 1, scrollY: true, children: _jsxs("box", { flexDirection: "column", children: [_jsxs("box", { flexDirection: "row", marginBottom: 1, children: [_jsx("text", { children: "Status: " }), _jsx("text", { fg: statusColor, children: pr.metadata.status }), _jsx("text", { children: " | Priority: " }), _jsx("text", { fg: priorityColor, children: priorityLabel })] }), _jsxs("box", { flexDirection: "row", marginBottom: 1, children: [_jsx("text", { fg: "gray", children: "UUID: " }), _jsx("text", { fg: "gray", children: pr.id })] }), _jsx(PRSection, { title: "Branches", children: _jsxs("box", { flexDirection: "row", children: [_jsx("text", { fg: "cyan", children: pr.metadata.sourceBranch }), _jsx("text", { fg: "gray", children: " \u2192 " }), _jsx("text", { fg: "green", children: pr.metadata.targetBranch })] }) }), pr.metadata.linkedIssues.length > 0 && (_jsx(PRSection, { title: "Linked Issues", children: pr.metadata.linkedIssues.map((issueId, index) => (_jsxs("text", { fg: "yellow", children: ["#", issueId] }, index))) })), pr.metadata.reviewers.length > 0 && (_jsx(PRSection, { title: "Reviewers", children: pr.metadata.reviewers.map((reviewer, index) => (_jsx("text", { children: reviewer }, index))) })), _jsxs(PRSection, { title: "Timeline", children: [_jsxs("box", { flexDirection: "row", children: [_jsx("text", { fg: "gray", children: "Created: " }), _jsx("text", { children: createdDate })] }), _jsxs("box", { flexDirection: "row", children: [_jsx("text", { fg: "gray", children: "Updated: " }), _jsx("text", { children: updatedDate })] }), pr.metadata.mergedAt && (_jsxs("box", { flexDirection: "row", children: [_jsx("text", { fg: "magenta", children: "Merged: " }), _jsx("text", { children: new Date(pr.metadata.mergedAt).toLocaleString() })] })), pr.metadata.closedAt && (_jsxs("box", { flexDirection: "row", children: [_jsx("text", { fg: "red", children: "Closed: " }), _jsx("text", { children: new Date(pr.metadata.closedAt).toLocaleString() })] }))] }), Object.keys(pr.metadata.customFields).length > 0 && (_jsx(PRSection, { title: "Custom Fields", children: Object.entries(pr.metadata.customFields).map(([key, value]) => (_jsxs("box", { flexDirection: "row", children: [_jsxs("text", { fg: "yellow", children: [key, ": "] }), _jsx("text", { children: value })] }, key))) })), _jsx("box", { marginBottom: 1, children: _jsx("text", { fg: "gray", children: '─'.repeat(40) }) }), _jsx(PRSection, { title: "Description", children: pr.description ? (pr.description
116
+ .split('\n')
117
+ .map((line, index) => _jsx("text", { children: line || ' ' }, index))) : (_jsx("text", { fg: "gray", children: "No description provided." })) })] }) }) }));
118
+ }
119
+ //# sourceMappingURL=PRDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PRDetail.js","sourceRoot":"","sources":["../../../../src/tui/components/domain/PRDetail.tsx"],"names":[],"mappings":"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"}