mirror of
https://github.com/velocitatem/cvfs.git
synced 2026-05-31 08:43:37 +00:00
fix: show dashboard overview only on branch selection screen
This commit is contained in:
@@ -574,7 +574,7 @@ export default function Dashboard() {
|
|||||||
.then(([d, allSubs]) => {
|
.then(([d, allSubs]) => {
|
||||||
setDocs(d);
|
setDocs(d);
|
||||||
setAllSubmissions(allSubs);
|
setAllSubmissions(allSubs);
|
||||||
if (d.length) { setSelectedDocId(d[0].id); setSelectedVersionId(d[0].root_version_id ?? null); }
|
if (d.length) { setSelectedDocId(d[0].id); setSelectedVersionId(null); }
|
||||||
})
|
})
|
||||||
.catch(() => setError('Failed to load documents. Make sure the backend is running.'))
|
.catch(() => setError('Failed to load documents. Make sure the backend is running.'))
|
||||||
.finally(() => setLoading(false));
|
.finally(() => setLoading(false));
|
||||||
@@ -644,7 +644,7 @@ export default function Dashboard() {
|
|||||||
const onUploadDone = (doc: Document) => {
|
const onUploadDone = (doc: Document) => {
|
||||||
setDocs(prev => [doc, ...prev.filter(d => d.id !== doc.id)]);
|
setDocs(prev => [doc, ...prev.filter(d => d.id !== doc.id)]);
|
||||||
setSelectedDocId(doc.id);
|
setSelectedDocId(doc.id);
|
||||||
setSelectedVersionId(doc.root_version_id ?? null);
|
setSelectedVersionId(null);
|
||||||
setModal(null);
|
setModal(null);
|
||||||
setSidebarOpen(false);
|
setSidebarOpen(false);
|
||||||
};
|
};
|
||||||
@@ -698,7 +698,7 @@ export default function Dashboard() {
|
|||||||
setDocs(updated);
|
setDocs(updated);
|
||||||
if (selectedDocId === docId) {
|
if (selectedDocId === docId) {
|
||||||
setSelectedDocId(updated[0]?.id ?? null);
|
setSelectedDocId(updated[0]?.id ?? null);
|
||||||
setSelectedVersionId(updated[0]?.root_version_id ?? null);
|
setSelectedVersionId(null);
|
||||||
}
|
}
|
||||||
} catch (e: unknown) {
|
} catch (e: unknown) {
|
||||||
alert(e instanceof Error ? e.message : 'Delete failed');
|
alert(e instanceof Error ? e.message : 'Delete failed');
|
||||||
@@ -715,8 +715,9 @@ export default function Dashboard() {
|
|||||||
await deleteVersion(versionId);
|
await deleteVersion(versionId);
|
||||||
const fresh = await refreshDocs();
|
const fresh = await refreshDocs();
|
||||||
if (selectedVersionId === versionId) {
|
if (selectedVersionId === versionId) {
|
||||||
const doc = fresh.find(d => d.id === selectedDocId);
|
const doc = fresh.find(d => d.id === selectedDocId) ?? null;
|
||||||
setSelectedVersionId(doc?.root_version_id ?? null);
|
if (!doc) setSelectedDocId(null);
|
||||||
|
setSelectedVersionId(null);
|
||||||
}
|
}
|
||||||
} catch (e: unknown) {
|
} catch (e: unknown) {
|
||||||
alert(e instanceof Error ? e.message : 'Delete failed');
|
alert(e instanceof Error ? e.message : 'Delete failed');
|
||||||
@@ -800,7 +801,7 @@ export default function Dashboard() {
|
|||||||
onMouseLeave={() => setDocHovered(null)}
|
onMouseLeave={() => setDocHovered(null)}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setSelectedDocId(d.id);
|
setSelectedDocId(d.id);
|
||||||
setSelectedVersionId(d.root_version_id ?? null);
|
setSelectedVersionId(null);
|
||||||
setActiveTab('content');
|
setActiveTab('content');
|
||||||
setSidebarOpen(false);
|
setSidebarOpen(false);
|
||||||
}}
|
}}
|
||||||
@@ -855,17 +856,10 @@ export default function Dashboard() {
|
|||||||
{/* main panel */}
|
{/* main panel */}
|
||||||
<div className="main-panel">
|
<div className="main-panel">
|
||||||
{!selectedVersion && !loading && (
|
{!selectedVersion && !loading && (
|
||||||
<div style={{ paddingTop: 60, textAlign: 'center', color: 'var(--text-faint)', fontSize: 13 }}>
|
<div style={{ padding: '16px 20px', overflow: 'auto' }}>
|
||||||
Select a branch to view details.
|
{selectedDoc ? (
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{selectedVersion && (
|
|
||||||
<>
|
|
||||||
{selectedDoc && (
|
|
||||||
<div style={{ padding: '16px 20px 0', flexShrink: 0 }}>
|
|
||||||
<div style={{ border: '1px solid var(--border)', borderRadius: 8, background: '#fff', padding: 12 }}>
|
<div style={{ border: '1px solid var(--border)', borderRadius: 8, background: '#fff', padding: 12 }}>
|
||||||
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: 8, marginBottom: 10 }}>
|
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: 8, marginBottom: 8 }}>
|
||||||
<div style={{ minWidth: 0 }}>
|
<div style={{ minWidth: 0 }}>
|
||||||
<div className="label" style={{ marginBottom: 3 }}>Dashboard overview</div>
|
<div className="label" style={{ marginBottom: 3 }}>Dashboard overview</div>
|
||||||
<div style={{ fontSize: 14, fontWeight: 600, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>
|
<div style={{ fontSize: 14, fontWeight: 600, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>
|
||||||
@@ -875,6 +869,10 @@ export default function Dashboard() {
|
|||||||
<span style={{ fontSize: 11, color: 'var(--text-faint)' }}>{selectedDoc.versions.length} version{selectedDoc.versions.length !== 1 ? 's' : ''}</span>
|
<span style={{ fontSize: 11, color: 'var(--text-faint)' }}>{selectedDoc.versions.length} version{selectedDoc.versions.length !== 1 ? 's' : ''}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div style={{ color: 'var(--text-faint)', fontSize: 13, marginBottom: 10 }}>
|
||||||
|
Select a branch to view details.
|
||||||
|
</div>
|
||||||
|
|
||||||
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(120px, 1fr))', gap: 8, marginBottom: 10 }}>
|
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(120px, 1fr))', gap: 8, marginBottom: 10 }}>
|
||||||
<div style={{ border: '1px solid var(--border)', borderRadius: 6, padding: '8px 10px', background: 'var(--surface)' }}>
|
<div style={{ border: '1px solid var(--border)', borderRadius: 6, padding: '8px 10px', background: 'var(--surface)' }}>
|
||||||
<div className="label" style={{ marginBottom: 3 }}>Submissions</div>
|
<div className="label" style={{ marginBottom: 3 }}>Submissions</div>
|
||||||
@@ -894,7 +892,7 @@ export default function Dashboard() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style={{ border: '1px solid var(--border)', borderRadius: 6, background: 'var(--surface)', maxHeight: 220, overflow: 'auto' }}>
|
<div style={{ border: '1px solid var(--border)', borderRadius: 6, background: 'var(--surface)', maxHeight: 320, overflow: 'auto' }}>
|
||||||
<div className="label" style={{ padding: '8px 10px 4px' }}>Full branch tree</div>
|
<div className="label" style={{ padding: '8px 10px 4px' }}>Full branch tree</div>
|
||||||
<CVTree
|
<CVTree
|
||||||
versions={selectedDoc.versions}
|
versions={selectedDoc.versions}
|
||||||
@@ -903,9 +901,16 @@ export default function Dashboard() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
) : (
|
||||||
|
<div style={{ paddingTop: 60, textAlign: 'center', color: 'var(--text-faint)', fontSize: 13 }}>
|
||||||
|
Select a resume to view details.
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{selectedVersion && (
|
||||||
|
<>
|
||||||
{/* version header */}
|
{/* version header */}
|
||||||
<div style={{ padding: '16px 20px 0', flexShrink: 0 }}>
|
<div style={{ padding: '16px 20px 0', flexShrink: 0 }}>
|
||||||
<div style={{ display: 'flex', alignItems: 'flex-start', justifyContent: 'space-between', marginBottom: 12, gap: 12 }}>
|
<div style={{ display: 'flex', alignItems: 'flex-start', justifyContent: 'space-between', marginBottom: 12, gap: 12 }}>
|
||||||
|
|||||||
Reference in New Issue
Block a user