feat(web): add input display
This commit is contained in:
		
							parent
							
								
									0dec0015a5
								
							
						
					
					
						commit
						63f9706afa
					
				@ -1,3 +1,4 @@
 | 
			
		||||
import { RunInputs } from "@/components/RunInputs";
 | 
			
		||||
import { LiveStatus } from "./LiveStatus";
 | 
			
		||||
import { RunOutputs } from "@/components/RunOutputs";
 | 
			
		||||
import {
 | 
			
		||||
@ -18,17 +19,11 @@ export async function RunDisplay({
 | 
			
		||||
}: {
 | 
			
		||||
  run: Awaited<ReturnType<typeof findAllRuns>>[0];
 | 
			
		||||
}) {
 | 
			
		||||
  // const [view, setView] = useState<any>();
 | 
			
		||||
  return (
 | 
			
		||||
    <Dialog>
 | 
			
		||||
      <DialogTrigger
 | 
			
		||||
        asChild
 | 
			
		||||
        className="appearance-none hover:cursor-pointer"
 | 
			
		||||
        // onClick={async () => {
 | 
			
		||||
        //   if (view) return;
 | 
			
		||||
        //   const _view = await callServerPromise(getRunsOutputDisplay(run.id));
 | 
			
		||||
        //   setView(_view);
 | 
			
		||||
        // }}
 | 
			
		||||
      >
 | 
			
		||||
        <TableRow>
 | 
			
		||||
          <TableCell>{run.version?.version}</TableCell>
 | 
			
		||||
@ -45,6 +40,7 @@ export async function RunDisplay({
 | 
			
		||||
          </DialogDescription>
 | 
			
		||||
        </DialogHeader>
 | 
			
		||||
        <div className="max-h-96 overflow-y-scroll">
 | 
			
		||||
          <RunInputs run={run}/>
 | 
			
		||||
          <Suspense>
 | 
			
		||||
            <RunOutputs run_id={run.id} />
 | 
			
		||||
          </Suspense>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										51
									
								
								web/src/components/RunInputs.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								web/src/components/RunInputs.tsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,51 @@
 | 
			
		||||
import { OutputRender } from "./RunDisplay";
 | 
			
		||||
import { CodeBlock } from "@/components/CodeBlock";
 | 
			
		||||
import {
 | 
			
		||||
  Table,
 | 
			
		||||
  TableBody,
 | 
			
		||||
  TableCell,
 | 
			
		||||
  TableHead,
 | 
			
		||||
  TableHeader,
 | 
			
		||||
  TableRow,
 | 
			
		||||
} from "@/components/ui/table";
 | 
			
		||||
import { findAllRuns } from "@/server/findAllRuns";
 | 
			
		||||
import { getRunsOutput } from "@/server/getRunsOutput";
 | 
			
		||||
 | 
			
		||||
export async function RunInputs({
 | 
			
		||||
  run,
 | 
			
		||||
}: {
 | 
			
		||||
  run: Awaited<ReturnType<typeof findAllRuns>>[0];
 | 
			
		||||
}) {
 | 
			
		||||
  return (
 | 
			
		||||
    <>
 | 
			
		||||
      {run.workflow_inputs && (
 | 
			
		||||
        <Table className="table-fixed">
 | 
			
		||||
          <TableHeader className="bg-background top-0 sticky">
 | 
			
		||||
            <TableRow>
 | 
			
		||||
              <TableHead className="w-[200px]">File</TableHead>
 | 
			
		||||
              <TableHead className="">Input</TableHead>
 | 
			
		||||
            </TableRow>
 | 
			
		||||
          </TableHeader>
 | 
			
		||||
          <TableBody>
 | 
			
		||||
            {Object.entries(run.workflow_inputs).map(([key, data]) => {
 | 
			
		||||
              let imageUrl;
 | 
			
		||||
              try {
 | 
			
		||||
                const url = new URL(data);
 | 
			
		||||
                if (url.pathname.endsWith('.png')) {
 | 
			
		||||
                  imageUrl = data;
 | 
			
		||||
                }
 | 
			
		||||
              } catch (_) {
 | 
			
		||||
              }
 | 
			
		||||
              return (
 | 
			
		||||
                <TableRow key={key}>
 | 
			
		||||
                  <TableCell>{key}</TableCell>
 | 
			
		||||
                  {imageUrl ? <TableCell><img className="w-[200px] aspect-square" src={imageUrl}></img></TableCell> : <TableCell>{data}</TableCell>}
 | 
			
		||||
                </TableRow>
 | 
			
		||||
              );
 | 
			
		||||
            })}
 | 
			
		||||
          </TableBody>
 | 
			
		||||
        </Table>
 | 
			
		||||
      )}
 | 
			
		||||
    </>
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
@ -12,22 +12,8 @@ import { getRunsOutput } from "@/server/getRunsOutput";
 | 
			
		||||
 | 
			
		||||
export async function RunOutputs({ run_id }: { run_id: string }) {
 | 
			
		||||
  const outputs = await getRunsOutput(run_id);
 | 
			
		||||
  // console.log("Getting runs out put");
 | 
			
		||||
 | 
			
		||||
  // const [outputs, setOutputs] =
 | 
			
		||||
  //   useState<Awaited<ReturnType<typeof getRunsOutput>>>();
 | 
			
		||||
 | 
			
		||||
  // useEffect(() => {
 | 
			
		||||
  //   if (!run_id) return;
 | 
			
		||||
  //   // fetch(`/api/run?run_id=${run_id}`)
 | 
			
		||||
  //   //   .then((x) => x.json())
 | 
			
		||||
  //   //   .then((x) => setOutputs(x));
 | 
			
		||||
  //   callServerPromise(getRunsOutput(run_id).then((x) => setOutputs(x)));
 | 
			
		||||
  // }, [run_id]);
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <Table className="table-fixed">
 | 
			
		||||
      {/* <TableCaption>A list of your recent runs.</TableCaption> */}
 | 
			
		||||
      <TableHeader className="bg-background top-0 sticky">
 | 
			
		||||
        <TableRow>
 | 
			
		||||
          <TableHead className="w-[200px]">File</TableHead>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user