Frontend Feature Changes

This commit is contained in:
sriram
2026-09-02 12:27:10 +05:30
parent b677ddf9e6
commit 2108e402b0
7 changed files with 869 additions and 513 deletions

View File

@@ -1,15 +1,21 @@
import React, { useEffect, useState } from 'react';
import { Wrench, Database, Layers, Inbox, Workflow } from 'lucide-react';
import { Wrench, Database, Layers, ClipboardCheck, Workflow } from 'lucide-react';
import { api } from '../api/client';
import { NavigationHeader } from '../components/NavigationHeader';
import { BatchCatalogPanel } from './BatchCatalogPanel';
import { InboxPanel } from './InboxPanel';
import { UploadResultsPanel } from './UploadResultsPanel';
import { OrchestrationPanel } from './OrchestrationPanel';
/*
* The admin panel carries the read-only project overview plus three ingestion
* views: a multi-file batch upload, the review inbox, and the Dagster
* orchestration screen.
* views: a multi-file batch upload, the results of a colleague's upload, and
* the Dagster orchestration screen.
*
* "Upload Results" was the Review Inbox until it stopped being useful as one:
* UPLOAD_AUTORUN defaults to true, so a colleague's upload runs on arrival and
* the inbox is permanently empty. The tab now leads with what the pipeline did
* with the newest colleague upload, and the approval gate reveals itself only
* when files are actually waiting - which is what the badge below counts.
*
* TWO KINDS OF REMOVAL HAVE HAPPENED HERE, AND THE DIFFERENCE MATTERS.
*
@@ -30,7 +36,10 @@ import { OrchestrationPanel } from './OrchestrationPanel';
const TABS = [
{ id: 'project', label: 'Project Overview Details', icon: Database },
{ id: 'batch', label: 'Batch Catalog Ingestion', icon: Layers },
{ id: 'inbox', label: 'Review Inbox', icon: Inbox },
// The id stays 'inbox' - the badge, the render guard and the onBatchStarted
// wiring all key off it, and the tab still owns the review inbox; it just
// leads with the pipeline result now.
{ id: 'inbox', label: 'Upload Results', icon: ClipboardCheck },
{ id: 'orchestration', label: 'Dagster Orchestration', icon: Workflow },
];
@@ -64,7 +73,8 @@ export function AdminPage() {
fetchProjectDetails();
}, []);
// The badge. Polled here rather than inside InboxPanel so the count is live
// The badge. Polled here rather than inside UploadResultsPanel so the count
// is live
// whichever tab is open - the whole point is finding out that a colleague
// sent something while you were looking at a different screen. A failed poll
// is swallowed: a transient network blip must not replace the panel with an
@@ -132,7 +142,7 @@ export function AdminPage() {
{activeTab === 'batch' && <BatchCatalogPanel adoptBatch={adoptedBatch} />}
{activeTab === 'inbox' && (
<InboxPanel
<UploadResultsPanel
onBatchStarted={(batch) => {
setAdoptedBatch(batch);
setActiveTab('batch');