@industry-theme/file-city-panel 0.2.34 → 0.2.36
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/panels/CodeCityPanel.d.ts.map +1 -1
- package/dist/panels/CodeCityPanel.stories.d.ts +5 -0
- package/dist/panels/CodeCityPanel.stories.d.ts.map +1 -1
- package/dist/panels/components/Legend.d.ts +10 -0
- package/dist/panels/components/Legend.d.ts.map +1 -1
- package/dist/panels/components/PrChangesTree.d.ts +30 -0
- package/dist/panels/components/PrChangesTree.d.ts.map +1 -0
- package/dist/panels/components/PrChangesTree.stories.d.ts +42 -0
- package/dist/panels/components/PrChangesTree.stories.d.ts.map +1 -0
- package/dist/panels.bundle.js +216 -39
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
package/dist/panels.bundle.js
CHANGED
|
@@ -106,7 +106,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
106
106
|
* This source code is licensed under the ISC license.
|
|
107
107
|
* See the LICENSE file in the root directory of this source tree.
|
|
108
108
|
*/
|
|
109
|
-
const __iconNode$
|
|
109
|
+
const __iconNode$h = [
|
|
110
110
|
[
|
|
111
111
|
"path",
|
|
112
112
|
{
|
|
@@ -115,14 +115,14 @@ const __iconNode$g = [
|
|
|
115
115
|
}
|
|
116
116
|
]
|
|
117
117
|
];
|
|
118
|
-
const Activity = createLucideIcon("activity", __iconNode$
|
|
118
|
+
const Activity = createLucideIcon("activity", __iconNode$h);
|
|
119
119
|
/**
|
|
120
120
|
* @license lucide-react v0.552.0 - ISC
|
|
121
121
|
*
|
|
122
122
|
* This source code is licensed under the ISC license.
|
|
123
123
|
* See the LICENSE file in the root directory of this source tree.
|
|
124
124
|
*/
|
|
125
|
-
const __iconNode$
|
|
125
|
+
const __iconNode$g = [
|
|
126
126
|
["path", { d: "M10 12h4", key: "a56b0p" }],
|
|
127
127
|
["path", { d: "M10 8h4", key: "1sr2af" }],
|
|
128
128
|
["path", { d: "M14 21v-3a2 2 0 0 0-4 0v3", key: "1rgiei" }],
|
|
@@ -135,55 +135,55 @@ const __iconNode$f = [
|
|
|
135
135
|
],
|
|
136
136
|
["path", { d: "M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16", key: "16ra0t" }]
|
|
137
137
|
];
|
|
138
|
-
const Building2 = createLucideIcon("building-2", __iconNode$
|
|
138
|
+
const Building2 = createLucideIcon("building-2", __iconNode$g);
|
|
139
139
|
/**
|
|
140
140
|
* @license lucide-react v0.552.0 - ISC
|
|
141
141
|
*
|
|
142
142
|
* This source code is licensed under the ISC license.
|
|
143
143
|
* See the LICENSE file in the root directory of this source tree.
|
|
144
144
|
*/
|
|
145
|
-
const __iconNode$
|
|
145
|
+
const __iconNode$f = [
|
|
146
146
|
["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
|
|
147
147
|
["path", { d: "M18 17V9", key: "2bz60n" }],
|
|
148
148
|
["path", { d: "M13 17V5", key: "1frdt8" }],
|
|
149
149
|
["path", { d: "M8 17v-3", key: "17ska0" }]
|
|
150
150
|
];
|
|
151
|
-
const ChartColumn = createLucideIcon("chart-column", __iconNode$
|
|
151
|
+
const ChartColumn = createLucideIcon("chart-column", __iconNode$f);
|
|
152
152
|
/**
|
|
153
153
|
* @license lucide-react v0.552.0 - ISC
|
|
154
154
|
*
|
|
155
155
|
* This source code is licensed under the ISC license.
|
|
156
156
|
* See the LICENSE file in the root directory of this source tree.
|
|
157
157
|
*/
|
|
158
|
-
const __iconNode$
|
|
159
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
158
|
+
const __iconNode$e = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
159
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$e);
|
|
160
160
|
/**
|
|
161
161
|
* @license lucide-react v0.552.0 - ISC
|
|
162
162
|
*
|
|
163
163
|
* This source code is licensed under the ISC license.
|
|
164
164
|
* See the LICENSE file in the root directory of this source tree.
|
|
165
165
|
*/
|
|
166
|
-
const __iconNode$
|
|
167
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
166
|
+
const __iconNode$d = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
167
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$d);
|
|
168
168
|
/**
|
|
169
169
|
* @license lucide-react v0.552.0 - ISC
|
|
170
170
|
*
|
|
171
171
|
* This source code is licensed under the ISC license.
|
|
172
172
|
* See the LICENSE file in the root directory of this source tree.
|
|
173
173
|
*/
|
|
174
|
-
const __iconNode$
|
|
174
|
+
const __iconNode$c = [
|
|
175
175
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
176
176
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
177
177
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
178
178
|
];
|
|
179
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
179
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$c);
|
|
180
180
|
/**
|
|
181
181
|
* @license lucide-react v0.552.0 - ISC
|
|
182
182
|
*
|
|
183
183
|
* This source code is licensed under the ISC license.
|
|
184
184
|
* See the LICENSE file in the root directory of this source tree.
|
|
185
185
|
*/
|
|
186
|
-
const __iconNode$
|
|
186
|
+
const __iconNode$b = [
|
|
187
187
|
[
|
|
188
188
|
"path",
|
|
189
189
|
{
|
|
@@ -201,14 +201,14 @@ const __iconNode$a = [
|
|
|
201
201
|
],
|
|
202
202
|
["path", { d: "m2 2 20 20", key: "1ooewy" }]
|
|
203
203
|
];
|
|
204
|
-
const EyeOff = createLucideIcon("eye-off", __iconNode$
|
|
204
|
+
const EyeOff = createLucideIcon("eye-off", __iconNode$b);
|
|
205
205
|
/**
|
|
206
206
|
* @license lucide-react v0.552.0 - ISC
|
|
207
207
|
*
|
|
208
208
|
* This source code is licensed under the ISC license.
|
|
209
209
|
* See the LICENSE file in the root directory of this source tree.
|
|
210
210
|
*/
|
|
211
|
-
const __iconNode$
|
|
211
|
+
const __iconNode$a = [
|
|
212
212
|
[
|
|
213
213
|
"path",
|
|
214
214
|
{
|
|
@@ -218,14 +218,14 @@ const __iconNode$9 = [
|
|
|
218
218
|
],
|
|
219
219
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
220
220
|
];
|
|
221
|
-
const Eye = createLucideIcon("eye", __iconNode$
|
|
221
|
+
const Eye = createLucideIcon("eye", __iconNode$a);
|
|
222
222
|
/**
|
|
223
223
|
* @license lucide-react v0.552.0 - ISC
|
|
224
224
|
*
|
|
225
225
|
* This source code is licensed under the ISC license.
|
|
226
226
|
* See the LICENSE file in the root directory of this source tree.
|
|
227
227
|
*/
|
|
228
|
-
const __iconNode$
|
|
228
|
+
const __iconNode$9 = [
|
|
229
229
|
[
|
|
230
230
|
"path",
|
|
231
231
|
{
|
|
@@ -236,14 +236,14 @@ const __iconNode$8 = [
|
|
|
236
236
|
["path", { d: "M12 17h.01", key: "p32p05" }],
|
|
237
237
|
["path", { d: "M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3", key: "mhlwft" }]
|
|
238
238
|
];
|
|
239
|
-
const FileQuestionMark = createLucideIcon("file-question-mark", __iconNode$
|
|
239
|
+
const FileQuestionMark = createLucideIcon("file-question-mark", __iconNode$9);
|
|
240
240
|
/**
|
|
241
241
|
* @license lucide-react v0.552.0 - ISC
|
|
242
242
|
*
|
|
243
243
|
* This source code is licensed under the ISC license.
|
|
244
244
|
* See the LICENSE file in the root directory of this source tree.
|
|
245
245
|
*/
|
|
246
|
-
const __iconNode$
|
|
246
|
+
const __iconNode$8 = [
|
|
247
247
|
[
|
|
248
248
|
"path",
|
|
249
249
|
{
|
|
@@ -256,14 +256,14 @@ const __iconNode$7 = [
|
|
|
256
256
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
257
257
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
258
258
|
];
|
|
259
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
259
|
+
const FileText = createLucideIcon("file-text", __iconNode$8);
|
|
260
260
|
/**
|
|
261
261
|
* @license lucide-react v0.552.0 - ISC
|
|
262
262
|
*
|
|
263
263
|
* This source code is licensed under the ISC license.
|
|
264
264
|
* See the LICENSE file in the root directory of this source tree.
|
|
265
265
|
*/
|
|
266
|
-
const __iconNode$
|
|
266
|
+
const __iconNode$7 = [
|
|
267
267
|
[
|
|
268
268
|
"path",
|
|
269
269
|
{
|
|
@@ -273,14 +273,14 @@ const __iconNode$6 = [
|
|
|
273
273
|
],
|
|
274
274
|
["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }]
|
|
275
275
|
];
|
|
276
|
-
const File = createLucideIcon("file", __iconNode$
|
|
276
|
+
const File = createLucideIcon("file", __iconNode$7);
|
|
277
277
|
/**
|
|
278
278
|
* @license lucide-react v0.552.0 - ISC
|
|
279
279
|
*
|
|
280
280
|
* This source code is licensed under the ISC license.
|
|
281
281
|
* See the LICENSE file in the root directory of this source tree.
|
|
282
282
|
*/
|
|
283
|
-
const __iconNode$
|
|
283
|
+
const __iconNode$6 = [
|
|
284
284
|
[
|
|
285
285
|
"path",
|
|
286
286
|
{
|
|
@@ -289,20 +289,33 @@ const __iconNode$5 = [
|
|
|
289
289
|
}
|
|
290
290
|
]
|
|
291
291
|
];
|
|
292
|
-
const Folder = createLucideIcon("folder", __iconNode$
|
|
292
|
+
const Folder = createLucideIcon("folder", __iconNode$6);
|
|
293
293
|
/**
|
|
294
294
|
* @license lucide-react v0.552.0 - ISC
|
|
295
295
|
*
|
|
296
296
|
* This source code is licensed under the ISC license.
|
|
297
297
|
* See the LICENSE file in the root directory of this source tree.
|
|
298
298
|
*/
|
|
299
|
-
const __iconNode$
|
|
299
|
+
const __iconNode$5 = [
|
|
300
300
|
["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
|
|
301
301
|
["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
|
|
302
302
|
["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
|
|
303
303
|
["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
|
|
304
304
|
];
|
|
305
|
-
const GitBranch = createLucideIcon("git-branch", __iconNode$
|
|
305
|
+
const GitBranch = createLucideIcon("git-branch", __iconNode$5);
|
|
306
|
+
/**
|
|
307
|
+
* @license lucide-react v0.552.0 - ISC
|
|
308
|
+
*
|
|
309
|
+
* This source code is licensed under the ISC license.
|
|
310
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
311
|
+
*/
|
|
312
|
+
const __iconNode$4 = [
|
|
313
|
+
["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }],
|
|
314
|
+
["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
|
|
315
|
+
["path", { d: "M13 6h3a2 2 0 0 1 2 2v7", key: "1yeb86" }],
|
|
316
|
+
["line", { x1: "6", x2: "6", y1: "9", y2: "21", key: "rroup" }]
|
|
317
|
+
];
|
|
318
|
+
const GitPullRequest = createLucideIcon("git-pull-request", __iconNode$4);
|
|
306
319
|
/**
|
|
307
320
|
* @license lucide-react v0.552.0 - ISC
|
|
308
321
|
*
|
|
@@ -10098,9 +10111,125 @@ const GitChangesTree = ({
|
|
|
10098
10111
|
}
|
|
10099
10112
|
);
|
|
10100
10113
|
};
|
|
10114
|
+
const PrChangesTree = ({
|
|
10115
|
+
prFiles,
|
|
10116
|
+
rootPath,
|
|
10117
|
+
onFileClick,
|
|
10118
|
+
onNodeHover
|
|
10119
|
+
}) => {
|
|
10120
|
+
const { theme: theme2 } = useTheme();
|
|
10121
|
+
const hasChanges = useMemo(
|
|
10122
|
+
() => prFiles.added.length > 0 || prFiles.modified.length > 0 || prFiles.removed.length > 0 || prFiles.renamed.length > 0,
|
|
10123
|
+
[prFiles.added.length, prFiles.modified.length, prFiles.removed.length, prFiles.renamed.length]
|
|
10124
|
+
);
|
|
10125
|
+
const renamedPaths = useMemo(
|
|
10126
|
+
() => prFiles.renamed.map((r) => r.filename),
|
|
10127
|
+
[prFiles.renamed]
|
|
10128
|
+
);
|
|
10129
|
+
const getFileStatus = useCallback(
|
|
10130
|
+
(filePath) => {
|
|
10131
|
+
if (prFiles.added.includes(filePath)) {
|
|
10132
|
+
return "added";
|
|
10133
|
+
}
|
|
10134
|
+
if (prFiles.modified.includes(filePath)) {
|
|
10135
|
+
return "modified";
|
|
10136
|
+
}
|
|
10137
|
+
if (prFiles.removed.includes(filePath)) {
|
|
10138
|
+
return "removed";
|
|
10139
|
+
}
|
|
10140
|
+
if (renamedPaths.includes(filePath)) {
|
|
10141
|
+
return "renamed";
|
|
10142
|
+
}
|
|
10143
|
+
return void 0;
|
|
10144
|
+
},
|
|
10145
|
+
[prFiles, renamedPaths]
|
|
10146
|
+
);
|
|
10147
|
+
const handleFileSelect = useCallback(
|
|
10148
|
+
(filePath) => {
|
|
10149
|
+
const status = getFileStatus(filePath);
|
|
10150
|
+
onFileClick == null ? void 0 : onFileClick(filePath, status);
|
|
10151
|
+
},
|
|
10152
|
+
[getFileStatus, onFileClick]
|
|
10153
|
+
);
|
|
10154
|
+
const prChangesData = useMemo(() => {
|
|
10155
|
+
if (!hasChanges) {
|
|
10156
|
+
return null;
|
|
10157
|
+
}
|
|
10158
|
+
const statusData = [
|
|
10159
|
+
...prFiles.added.map((filePath) => ({
|
|
10160
|
+
filePath,
|
|
10161
|
+
indexStatus: "A",
|
|
10162
|
+
workingTreeStatus: " ",
|
|
10163
|
+
status: "A"
|
|
10164
|
+
})),
|
|
10165
|
+
...prFiles.modified.map((filePath) => ({
|
|
10166
|
+
filePath,
|
|
10167
|
+
indexStatus: "M",
|
|
10168
|
+
workingTreeStatus: " ",
|
|
10169
|
+
status: "M"
|
|
10170
|
+
})),
|
|
10171
|
+
...prFiles.removed.map((filePath) => ({
|
|
10172
|
+
filePath,
|
|
10173
|
+
indexStatus: "D",
|
|
10174
|
+
workingTreeStatus: " ",
|
|
10175
|
+
status: "D"
|
|
10176
|
+
})),
|
|
10177
|
+
...prFiles.renamed.map((renamed) => ({
|
|
10178
|
+
filePath: renamed.filename,
|
|
10179
|
+
indexStatus: "R",
|
|
10180
|
+
workingTreeStatus: " ",
|
|
10181
|
+
status: "R"
|
|
10182
|
+
}))
|
|
10183
|
+
];
|
|
10184
|
+
const allChangedFiles = [
|
|
10185
|
+
...prFiles.added,
|
|
10186
|
+
...prFiles.modified,
|
|
10187
|
+
...prFiles.removed,
|
|
10188
|
+
...renamedPaths
|
|
10189
|
+
].sort((a, b) => a.localeCompare(b));
|
|
10190
|
+
const builder = new N();
|
|
10191
|
+
const tree = builder.build({ files: allChangedFiles, rootPath: rootPath ?? "" });
|
|
10192
|
+
return { tree, statusData };
|
|
10193
|
+
}, [hasChanges, prFiles, renamedPaths, rootPath]);
|
|
10194
|
+
if (!hasChanges) {
|
|
10195
|
+
return /* @__PURE__ */ jsx(
|
|
10196
|
+
"div",
|
|
10197
|
+
{
|
|
10198
|
+
style: {
|
|
10199
|
+
padding: "12px 0",
|
|
10200
|
+
fontSize: theme2.fontSizes[0],
|
|
10201
|
+
fontFamily: theme2.fonts.body,
|
|
10202
|
+
color: theme2.colors.textSecondary,
|
|
10203
|
+
fontStyle: "italic",
|
|
10204
|
+
textAlign: "center"
|
|
10205
|
+
},
|
|
10206
|
+
children: "No PR selected"
|
|
10207
|
+
}
|
|
10208
|
+
);
|
|
10209
|
+
}
|
|
10210
|
+
if (!prChangesData) {
|
|
10211
|
+
return null;
|
|
10212
|
+
}
|
|
10213
|
+
return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
10214
|
+
GitStatusFileTree,
|
|
10215
|
+
{
|
|
10216
|
+
fileTree: prChangesData.tree,
|
|
10217
|
+
theme: theme2,
|
|
10218
|
+
gitStatusData: prChangesData.statusData,
|
|
10219
|
+
onFileSelect: handleFileSelect,
|
|
10220
|
+
onNodeHover,
|
|
10221
|
+
transparentBackground: true,
|
|
10222
|
+
horizontalNodePadding: "0px",
|
|
10223
|
+
verticalPadding: "4px",
|
|
10224
|
+
openByDefault: true
|
|
10225
|
+
}
|
|
10226
|
+
) });
|
|
10227
|
+
};
|
|
10101
10228
|
const Legend = ({
|
|
10102
10229
|
fileTypes,
|
|
10103
10230
|
gitStatus,
|
|
10231
|
+
prFiles,
|
|
10232
|
+
prNumber,
|
|
10104
10233
|
fileTree,
|
|
10105
10234
|
rootPath,
|
|
10106
10235
|
agentLayers,
|
|
@@ -10109,6 +10238,8 @@ const Legend = ({
|
|
|
10109
10238
|
onItemClick,
|
|
10110
10239
|
onGitFileClick,
|
|
10111
10240
|
onGitNodeHover,
|
|
10241
|
+
onPrFileClick,
|
|
10242
|
+
onPrNodeHover,
|
|
10112
10243
|
onAgentLayerClick,
|
|
10113
10244
|
onQualityMetricClick,
|
|
10114
10245
|
onClearAgentLayers,
|
|
@@ -10116,9 +10247,10 @@ const Legend = ({
|
|
|
10116
10247
|
}) => {
|
|
10117
10248
|
const { theme: theme2 } = useTheme();
|
|
10118
10249
|
const hasGitStatus = gitStatus != null && (gitStatus.staged.length > 0 || gitStatus.unstaged.length > 0 || gitStatus.untracked.length > 0 || gitStatus.deleted.length > 0);
|
|
10250
|
+
const hasPrFiles = prFiles != null && (prFiles.added.length > 0 || prFiles.modified.length > 0 || prFiles.removed.length > 0 || prFiles.renamed.length > 0);
|
|
10119
10251
|
const hasAgentLayers = agentLayers && agentLayers.length > 0;
|
|
10120
10252
|
const hasQualityMetrics = qualityMetrics && qualityMetrics.length > 0;
|
|
10121
|
-
const isEmpty = fileTypes.length === 0 && !hasGitStatus && !hasAgentLayers && !hasQualityMetrics;
|
|
10253
|
+
const isEmpty = fileTypes.length === 0 && !hasGitStatus && !hasPrFiles && !hasAgentLayers && !hasQualityMetrics;
|
|
10122
10254
|
const qualityModeLabels = {
|
|
10123
10255
|
coverage: "Test Coverage",
|
|
10124
10256
|
eslint: "Linting Quality",
|
|
@@ -10139,12 +10271,11 @@ const Legend = ({
|
|
|
10139
10271
|
backgroundColor: theme2.colors.background,
|
|
10140
10272
|
borderTop: isRight ? "none" : `1px solid ${theme2.colors.border}`,
|
|
10141
10273
|
borderLeft: isRight ? `1px solid ${theme2.colors.border}` : "none",
|
|
10142
|
-
overflowY: "auto",
|
|
10143
|
-
overflowX: "hidden",
|
|
10144
10274
|
boxSizing: "border-box",
|
|
10145
10275
|
flex: 1,
|
|
10146
10276
|
minWidth: 0,
|
|
10147
|
-
minHeight: 0
|
|
10277
|
+
minHeight: 0,
|
|
10278
|
+
overflow: "hidden"
|
|
10148
10279
|
},
|
|
10149
10280
|
children: [
|
|
10150
10281
|
isEmpty && /* @__PURE__ */ jsxs(
|
|
@@ -10429,7 +10560,41 @@ const Legend = ({
|
|
|
10429
10560
|
}
|
|
10430
10561
|
)
|
|
10431
10562
|
] }),
|
|
10432
|
-
|
|
10563
|
+
hasPrFiles && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px", flex: 1, minHeight: 0 }, children: [
|
|
10564
|
+
/* @__PURE__ */ jsxs(
|
|
10565
|
+
"div",
|
|
10566
|
+
{
|
|
10567
|
+
style: {
|
|
10568
|
+
display: "flex",
|
|
10569
|
+
alignItems: "center",
|
|
10570
|
+
gap: "6px",
|
|
10571
|
+
fontSize: theme2.fontSizes[0],
|
|
10572
|
+
fontFamily: theme2.fonts.body,
|
|
10573
|
+
fontWeight: 600,
|
|
10574
|
+
color: theme2.colors.textSecondary,
|
|
10575
|
+
textTransform: "uppercase",
|
|
10576
|
+
letterSpacing: "0.5px",
|
|
10577
|
+
flexShrink: 0
|
|
10578
|
+
},
|
|
10579
|
+
children: [
|
|
10580
|
+
/* @__PURE__ */ jsx(GitPullRequest, { size: 12 }),
|
|
10581
|
+
"PR Changes",
|
|
10582
|
+
prNumber ? ` #${prNumber}` : "",
|
|
10583
|
+
hasPrFiles && ` (${prFiles.added.length + prFiles.modified.length + prFiles.removed.length + prFiles.renamed.length} files)`
|
|
10584
|
+
]
|
|
10585
|
+
}
|
|
10586
|
+
),
|
|
10587
|
+
/* @__PURE__ */ jsx("div", { style: { flex: 1, minHeight: 0, overflowY: "auto" }, children: /* @__PURE__ */ jsx(
|
|
10588
|
+
PrChangesTree,
|
|
10589
|
+
{
|
|
10590
|
+
prFiles,
|
|
10591
|
+
rootPath,
|
|
10592
|
+
onFileClick: onPrFileClick,
|
|
10593
|
+
onNodeHover: onPrNodeHover
|
|
10594
|
+
}
|
|
10595
|
+
) })
|
|
10596
|
+
] }),
|
|
10597
|
+
fileTypes.length > 0 && !hasPrFiles && /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [
|
|
10433
10598
|
/* @__PURE__ */ jsx(
|
|
10434
10599
|
"div",
|
|
10435
10600
|
{
|
|
@@ -24350,7 +24515,7 @@ const CodeCityPanelContent = ({
|
|
|
24350
24515
|
actions: actions2,
|
|
24351
24516
|
events
|
|
24352
24517
|
}) => {
|
|
24353
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
|
|
24518
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
|
|
24354
24519
|
const { theme: theme2 } = useTheme();
|
|
24355
24520
|
const [cityData, setCityData] = useState(null);
|
|
24356
24521
|
const [hoverInfo, setHoverInfo] = useState(null);
|
|
@@ -24464,7 +24629,7 @@ const CodeCityPanelContent = ({
|
|
|
24464
24629
|
return COLOR_MODES.find((m) => m.id === colorMode) || COLOR_MODES[0];
|
|
24465
24630
|
}, [colorMode]);
|
|
24466
24631
|
const hoveredFileMetric = useMemo(() => {
|
|
24467
|
-
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2, _o2,
|
|
24632
|
+
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2, _o2, _p2;
|
|
24468
24633
|
if (!((_a2 = hoverInfo == null ? void 0 : hoverInfo.hoveredBuilding) == null ? void 0 : _a2.path)) return null;
|
|
24469
24634
|
const filePath = hoverInfo.hoveredBuilding.path;
|
|
24470
24635
|
if (!qualityData) return null;
|
|
@@ -24529,7 +24694,7 @@ const CodeCityPanelContent = ({
|
|
|
24529
24694
|
return { type: "knip", value: null, label: "No dead code data" };
|
|
24530
24695
|
}
|
|
24531
24696
|
case "alexandria": {
|
|
24532
|
-
const metric = (
|
|
24697
|
+
const metric = (_p2 = (_o2 = qualityData.fileMetrics) == null ? void 0 : _o2.alexandria) == null ? void 0 : _p2.find((m) => m.file === filePath);
|
|
24533
24698
|
if (metric) {
|
|
24534
24699
|
const issues = metric.issueCount;
|
|
24535
24700
|
return { type: "alexandria", value: metric, label: issues > 0 ? `${issues} doc issue${issues > 1 ? "s" : ""}` : "Well documented" };
|
|
@@ -24817,6 +24982,12 @@ const CodeCityPanelContent = ({
|
|
|
24817
24982
|
const { staged, unstaged, untracked, deleted } = gitSlice.data;
|
|
24818
24983
|
return staged.length + unstaged.length + untracked.length + deleted.length;
|
|
24819
24984
|
}, [gitSlice == null ? void 0 : gitSlice.data]);
|
|
24985
|
+
useMemo(() => {
|
|
24986
|
+
var _a2;
|
|
24987
|
+
if (!((_a2 = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _a2.filesByStatus)) return 0;
|
|
24988
|
+
const { added, modified, removed, renamed } = prFilesSlice.data.filesByStatus;
|
|
24989
|
+
return added.length + modified.length + removed.length + renamed.length;
|
|
24990
|
+
}, [(_g = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _g.filesByStatus]);
|
|
24820
24991
|
const legendAgentLayers = useMemo(() => {
|
|
24821
24992
|
const agentLayers = highlightLayers.filter(
|
|
24822
24993
|
(layer) => layer.id.startsWith("event-highlight")
|
|
@@ -25073,7 +25244,7 @@ const CodeCityPanelContent = ({
|
|
|
25073
25244
|
} finally {
|
|
25074
25245
|
setLoading(false);
|
|
25075
25246
|
}
|
|
25076
|
-
}, [fileTreeSlice == null ? void 0 : fileTreeSlice.data, fileTreeSlice == null ? void 0 : fileTreeSlice.loading, (
|
|
25247
|
+
}, [fileTreeSlice == null ? void 0 : fileTreeSlice.data, fileTreeSlice == null ? void 0 : fileTreeSlice.loading, (_h = context.currentScope.repository) == null ? void 0 : _h.path]);
|
|
25077
25248
|
const handleFileClick = useCallback(
|
|
25078
25249
|
(filePath) => {
|
|
25079
25250
|
if (actions2.openFile) {
|
|
@@ -25361,7 +25532,7 @@ const CodeCityPanelContent = ({
|
|
|
25361
25532
|
textOverflow: "ellipsis",
|
|
25362
25533
|
whiteSpace: "nowrap"
|
|
25363
25534
|
},
|
|
25364
|
-
children: ((
|
|
25535
|
+
children: ((_i = hoverInfo.fileTooltip) == null ? void 0 : _i.text) || ((_k = (_j = hoverInfo.hoveredDistrict) == null ? void 0 : _j.path) == null ? void 0 : _k.split("/").pop()) || ((_l = hoverInfo.hoveredDistrict) == null ? void 0 : _l.path) || "Unknown"
|
|
25365
25536
|
}
|
|
25366
25537
|
),
|
|
25367
25538
|
/* @__PURE__ */ jsx(
|
|
@@ -25375,7 +25546,7 @@ const CodeCityPanelContent = ({
|
|
|
25375
25546
|
textOverflow: "ellipsis",
|
|
25376
25547
|
whiteSpace: "nowrap"
|
|
25377
25548
|
},
|
|
25378
|
-
children: ((
|
|
25549
|
+
children: ((_m = hoverInfo.hoveredBuilding) == null ? void 0 : _m.path) || ((_n = hoverInfo.hoveredDistrict) == null ? void 0 : _n.path) || "/"
|
|
25379
25550
|
}
|
|
25380
25551
|
)
|
|
25381
25552
|
]
|
|
@@ -25501,10 +25672,13 @@ const CodeCityPanelContent = ({
|
|
|
25501
25672
|
{
|
|
25502
25673
|
fileTypes: [],
|
|
25503
25674
|
gitStatus: gitSlice == null ? void 0 : gitSlice.data,
|
|
25675
|
+
prFiles: (_o = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _o.filesByStatus,
|
|
25676
|
+
prNumber: (_p = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _p.pullNumber,
|
|
25504
25677
|
fileTree: fileTreeSlice == null ? void 0 : fileTreeSlice.data,
|
|
25505
|
-
rootPath: (
|
|
25678
|
+
rootPath: (_q = context.currentScope.repository) == null ? void 0 : _q.path,
|
|
25506
25679
|
onGitFileClick: handleFileClick,
|
|
25507
25680
|
onGitNodeHover: handleGitNodeHover,
|
|
25681
|
+
onPrFileClick: handleFileClick,
|
|
25508
25682
|
position: layout.legendPosition
|
|
25509
25683
|
}
|
|
25510
25684
|
),
|
|
@@ -25519,14 +25693,17 @@ const CodeCityPanelContent = ({
|
|
|
25519
25693
|
{
|
|
25520
25694
|
fileTypes: legendFileTypes,
|
|
25521
25695
|
gitStatus: gitSlice == null ? void 0 : gitSlice.data,
|
|
25696
|
+
prFiles: (_r = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _r.filesByStatus,
|
|
25697
|
+
prNumber: (_s = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _s.pullNumber,
|
|
25522
25698
|
fileTree: fileTreeSlice == null ? void 0 : fileTreeSlice.data,
|
|
25523
|
-
rootPath: (
|
|
25699
|
+
rootPath: (_t = context.currentScope.repository) == null ? void 0 : _t.path,
|
|
25524
25700
|
agentLayers: legendAgentLayers,
|
|
25525
25701
|
qualityMetrics: legendQualityMetrics,
|
|
25526
25702
|
colorMode,
|
|
25527
25703
|
onItemClick: toggleFileType,
|
|
25528
25704
|
onGitFileClick: handleFileClick,
|
|
25529
25705
|
onGitNodeHover: handleGitNodeHover,
|
|
25706
|
+
onPrFileClick: handleFileClick,
|
|
25530
25707
|
onAgentLayerClick: toggleAgentLayer,
|
|
25531
25708
|
onQualityMetricClick: toggleQualityMetric,
|
|
25532
25709
|
onClearAgentLayers: clearAgentLayers,
|