Show parallel fetch as its own column in UI and TUI
This commit is contained in:
@@ -108,11 +108,11 @@ func (m *model) viewVirtualsList() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, v := range m.virtuals {
|
for i, v := range m.virtuals {
|
||||||
parallel := ""
|
parallel := "-"
|
||||||
if v.ParallelFetch {
|
if v.ParallelFetch {
|
||||||
parallel = "parallel "
|
parallel = "parallel"
|
||||||
}
|
}
|
||||||
line := fmt.Sprintf(" %-25s %-12s %d members %s%s",
|
line := fmt.Sprintf(" %-25s %-12s %3d members %-8s %s",
|
||||||
v.Name, v.PackageType, len(v.Members), parallel, v.Description)
|
v.Name, v.PackageType, len(v.Members), parallel, v.Description)
|
||||||
if i == m.cursor {
|
if i == m.cursor {
|
||||||
sb.WriteString(selStyle.Render(line))
|
sb.WriteString(selStyle.Render(line))
|
||||||
|
|||||||
+23
-24
@@ -26,6 +26,8 @@ export function Virtuals() {
|
|||||||
.finally(() => setLoading(false));
|
.finally(() => setLoading(false));
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const selected = virtuals.find(x => x.name === expanded);
|
||||||
|
|
||||||
function memberLink(name: string) {
|
function memberLink(name: string) {
|
||||||
const remote = remoteMap[name];
|
const remote = remoteMap[name];
|
||||||
if (remote?.repo_type === 'local') {
|
if (remote?.repo_type === 'local') {
|
||||||
@@ -67,6 +69,13 @@ export function Virtuals() {
|
|||||||
header: 'Description',
|
header: 'Description',
|
||||||
render: (v: Virtual) => v.description || <span className="text-muted">—</span>,
|
render: (v: Virtual) => v.description || <span className="text-muted">—</span>,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: 'parallel',
|
||||||
|
header: 'Parallel',
|
||||||
|
render: (v: Virtual) =>
|
||||||
|
v.parallel_fetch ? <Badge variant="green">parallel</Badge> : <span className="text-muted">—</span>,
|
||||||
|
width: '100px',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
key: 'managed',
|
key: 'managed',
|
||||||
header: 'Managed',
|
header: 'Managed',
|
||||||
@@ -81,33 +90,23 @@ export function Virtuals() {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{expanded && (
|
{selected && (
|
||||||
<div className="virtual-detail-panel">
|
<div className="virtual-detail-panel">
|
||||||
<h3 className="section-label">Members of {expanded}</h3>
|
<h3 className="section-label">Members of {selected.name}</h3>
|
||||||
<p className="text-muted">
|
|
||||||
Parallel fetch: {virtuals.find(v => v.name === expanded)?.parallel_fetch ? 'enabled' : 'disabled'}
|
|
||||||
</p>
|
|
||||||
<ul className="member-list">
|
<ul className="member-list">
|
||||||
{virtuals
|
{selected.members?.map((m, i) => {
|
||||||
.find(v => v.name === expanded)
|
const remote = remoteMap[m];
|
||||||
?.members?.map((m, i) => {
|
const typeLabel = remote?.repo_type === 'local' ? 'local' : 'remote';
|
||||||
const remote = remoteMap[m];
|
return (
|
||||||
const typeLabel = remote?.repo_type === 'local' ? 'local' : 'remote';
|
<li key={m}>
|
||||||
return (
|
<span className="member-priority">{i + 1}</span>
|
||||||
<li key={m}>
|
<Link to={memberLink(m)} className="mono">{m}</Link>
|
||||||
<span className="member-priority">{i + 1}</span>
|
<Badge variant={typeLabel === 'local' ? 'yellow' : 'default'}>{typeLabel}</Badge>
|
||||||
<Link to={memberLink(m)} className="mono">{m}</Link>
|
</li>
|
||||||
<Badge variant={typeLabel === 'local' ? 'yellow' : 'default'}>{typeLabel}</Badge>
|
);
|
||||||
</li>
|
})}
|
||||||
);
|
|
||||||
})}
|
|
||||||
</ul>
|
</ul>
|
||||||
{(() => {
|
<UsageInstructions packageType={selected.package_type} repoClass="virtual" name={selected.name} defaultOpen />
|
||||||
const v = virtuals.find(x => x.name === expanded);
|
|
||||||
return v ? (
|
|
||||||
<UsageInstructions packageType={v.package_type} repoClass="virtual" name={v.name} defaultOpen />
|
|
||||||
) : null;
|
|
||||||
})()}
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user