feat: add built finished dialog
This commit is contained in:
		
							parent
							
								
									d7ee49aa49
								
							
						
					
					
						commit
						97aa88eac8
					
				
							
								
								
									
										
											BIN
										
									
								
								web/bun.lockb
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								web/bun.lockb
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							@ -32,6 +32,7 @@
 | 
			
		||||
    "@neondatabase/serverless": "^0.6.0",
 | 
			
		||||
    "@next/mdx": "^14.0.4",
 | 
			
		||||
    "@radix-ui/react-accordion": "^1.1.2",
 | 
			
		||||
    "@radix-ui/react-alert-dialog": "^1.0.5",
 | 
			
		||||
    "@radix-ui/react-checkbox": "^1.0.4",
 | 
			
		||||
    "@radix-ui/react-dialog": "^1.0.5",
 | 
			
		||||
    "@radix-ui/react-dropdown-menu": "^2.0.6",
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,19 @@ import { getConnectionStatus } from "@/components/getConnectionStatus";
 | 
			
		||||
import { useEffect, useState } from "react";
 | 
			
		||||
import useWebSocket from "react-use-websocket";
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  AlertDialog,
 | 
			
		||||
  AlertDialogAction,
 | 
			
		||||
  AlertDialogCancel,
 | 
			
		||||
  AlertDialogContent,
 | 
			
		||||
  AlertDialogDescription,
 | 
			
		||||
  AlertDialogFooter,
 | 
			
		||||
  AlertDialogHeader,
 | 
			
		||||
  AlertDialogTitle,
 | 
			
		||||
  AlertDialogTrigger,
 | 
			
		||||
} from "@/components/ui/alert-dialog"
 | 
			
		||||
import { useRouter } from "next/navigation";
 | 
			
		||||
 | 
			
		||||
export function MachineBuildLog({
 | 
			
		||||
  machine_id,
 | 
			
		||||
  endpoint,
 | 
			
		||||
@ -46,10 +59,32 @@ export function MachineBuildLog({
 | 
			
		||||
    }
 | 
			
		||||
  }, [lastMessage]);
 | 
			
		||||
 | 
			
		||||
  const router = useRouter()
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <div>
 | 
			
		||||
      {connectionStatus}
 | 
			
		||||
      <LogsViewer logs={logs} />
 | 
			
		||||
 | 
			
		||||
      <AlertDialog open={finished}>
 | 
			
		||||
        <AlertDialogContent>
 | 
			
		||||
          <AlertDialogHeader>
 | 
			
		||||
            <AlertDialogTitle>Machine Built</AlertDialogTitle>
 | 
			
		||||
            <AlertDialogDescription>
 | 
			
		||||
              Your machine is built, you can now integrate your API, or directly run to check this machines.
 | 
			
		||||
            </AlertDialogDescription>
 | 
			
		||||
          </AlertDialogHeader>
 | 
			
		||||
          <AlertDialogFooter>
 | 
			
		||||
            <AlertDialogAction onClick={() => {
 | 
			
		||||
              router.push("/workflows")
 | 
			
		||||
            }}>See Workflows</AlertDialogAction>
 | 
			
		||||
            <AlertDialogAction onClick={() => {
 | 
			
		||||
              router.push("/machines")
 | 
			
		||||
            }}>See All Machines</AlertDialogAction>
 | 
			
		||||
          </AlertDialogFooter>
 | 
			
		||||
        </AlertDialogContent>
 | 
			
		||||
      </AlertDialog>
 | 
			
		||||
 | 
			
		||||
    </div>
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										141
									
								
								web/src/components/ui/alert-dialog.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								web/src/components/ui/alert-dialog.tsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,141 @@
 | 
			
		||||
"use client"
 | 
			
		||||
 | 
			
		||||
import * as React from "react"
 | 
			
		||||
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog"
 | 
			
		||||
 | 
			
		||||
import { cn } from "@/lib/utils"
 | 
			
		||||
import { buttonVariants } from "@/components/ui/button"
 | 
			
		||||
 | 
			
		||||
const AlertDialog = AlertDialogPrimitive.Root
 | 
			
		||||
 | 
			
		||||
const AlertDialogTrigger = AlertDialogPrimitive.Trigger
 | 
			
		||||
 | 
			
		||||
const AlertDialogPortal = AlertDialogPrimitive.Portal
 | 
			
		||||
 | 
			
		||||
const AlertDialogOverlay = React.forwardRef<
 | 
			
		||||
  React.ElementRef<typeof AlertDialogPrimitive.Overlay>,
 | 
			
		||||
  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>
 | 
			
		||||
>(({ className, ...props }, ref) => (
 | 
			
		||||
  <AlertDialogPrimitive.Overlay
 | 
			
		||||
    className={cn(
 | 
			
		||||
      "fixed inset-0 z-50 bg-black/80  data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
 | 
			
		||||
      className
 | 
			
		||||
    )}
 | 
			
		||||
    {...props}
 | 
			
		||||
    ref={ref}
 | 
			
		||||
  />
 | 
			
		||||
))
 | 
			
		||||
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName
 | 
			
		||||
 | 
			
		||||
const AlertDialogContent = React.forwardRef<
 | 
			
		||||
  React.ElementRef<typeof AlertDialogPrimitive.Content>,
 | 
			
		||||
  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>
 | 
			
		||||
>(({ className, ...props }, ref) => (
 | 
			
		||||
  <AlertDialogPortal>
 | 
			
		||||
    <AlertDialogOverlay />
 | 
			
		||||
    <AlertDialogPrimitive.Content
 | 
			
		||||
      ref={ref}
 | 
			
		||||
      className={cn(
 | 
			
		||||
        "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
 | 
			
		||||
        className
 | 
			
		||||
      )}
 | 
			
		||||
      {...props}
 | 
			
		||||
    />
 | 
			
		||||
  </AlertDialogPortal>
 | 
			
		||||
))
 | 
			
		||||
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName
 | 
			
		||||
 | 
			
		||||
const AlertDialogHeader = ({
 | 
			
		||||
  className,
 | 
			
		||||
  ...props
 | 
			
		||||
}: React.HTMLAttributes<HTMLDivElement>) => (
 | 
			
		||||
  <div
 | 
			
		||||
    className={cn(
 | 
			
		||||
      "flex flex-col space-y-2 text-center sm:text-left",
 | 
			
		||||
      className
 | 
			
		||||
    )}
 | 
			
		||||
    {...props}
 | 
			
		||||
  />
 | 
			
		||||
)
 | 
			
		||||
AlertDialogHeader.displayName = "AlertDialogHeader"
 | 
			
		||||
 | 
			
		||||
const AlertDialogFooter = ({
 | 
			
		||||
  className,
 | 
			
		||||
  ...props
 | 
			
		||||
}: React.HTMLAttributes<HTMLDivElement>) => (
 | 
			
		||||
  <div
 | 
			
		||||
    className={cn(
 | 
			
		||||
      "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
 | 
			
		||||
      className
 | 
			
		||||
    )}
 | 
			
		||||
    {...props}
 | 
			
		||||
  />
 | 
			
		||||
)
 | 
			
		||||
AlertDialogFooter.displayName = "AlertDialogFooter"
 | 
			
		||||
 | 
			
		||||
const AlertDialogTitle = React.forwardRef<
 | 
			
		||||
  React.ElementRef<typeof AlertDialogPrimitive.Title>,
 | 
			
		||||
  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>
 | 
			
		||||
>(({ className, ...props }, ref) => (
 | 
			
		||||
  <AlertDialogPrimitive.Title
 | 
			
		||||
    ref={ref}
 | 
			
		||||
    className={cn("text-lg font-semibold", className)}
 | 
			
		||||
    {...props}
 | 
			
		||||
  />
 | 
			
		||||
))
 | 
			
		||||
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName
 | 
			
		||||
 | 
			
		||||
const AlertDialogDescription = React.forwardRef<
 | 
			
		||||
  React.ElementRef<typeof AlertDialogPrimitive.Description>,
 | 
			
		||||
  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>
 | 
			
		||||
>(({ className, ...props }, ref) => (
 | 
			
		||||
  <AlertDialogPrimitive.Description
 | 
			
		||||
    ref={ref}
 | 
			
		||||
    className={cn("text-sm text-muted-foreground", className)}
 | 
			
		||||
    {...props}
 | 
			
		||||
  />
 | 
			
		||||
))
 | 
			
		||||
AlertDialogDescription.displayName =
 | 
			
		||||
  AlertDialogPrimitive.Description.displayName
 | 
			
		||||
 | 
			
		||||
const AlertDialogAction = React.forwardRef<
 | 
			
		||||
  React.ElementRef<typeof AlertDialogPrimitive.Action>,
 | 
			
		||||
  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>
 | 
			
		||||
>(({ className, ...props }, ref) => (
 | 
			
		||||
  <AlertDialogPrimitive.Action
 | 
			
		||||
    ref={ref}
 | 
			
		||||
    className={cn(buttonVariants(), className)}
 | 
			
		||||
    {...props}
 | 
			
		||||
  />
 | 
			
		||||
))
 | 
			
		||||
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName
 | 
			
		||||
 | 
			
		||||
const AlertDialogCancel = React.forwardRef<
 | 
			
		||||
  React.ElementRef<typeof AlertDialogPrimitive.Cancel>,
 | 
			
		||||
  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>
 | 
			
		||||
>(({ className, ...props }, ref) => (
 | 
			
		||||
  <AlertDialogPrimitive.Cancel
 | 
			
		||||
    ref={ref}
 | 
			
		||||
    className={cn(
 | 
			
		||||
      buttonVariants({ variant: "outline" }),
 | 
			
		||||
      "mt-2 sm:mt-0",
 | 
			
		||||
      className
 | 
			
		||||
    )}
 | 
			
		||||
    {...props}
 | 
			
		||||
  />
 | 
			
		||||
))
 | 
			
		||||
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName
 | 
			
		||||
 | 
			
		||||
export {
 | 
			
		||||
  AlertDialog,
 | 
			
		||||
  AlertDialogPortal,
 | 
			
		||||
  AlertDialogOverlay,
 | 
			
		||||
  AlertDialogTrigger,
 | 
			
		||||
  AlertDialogContent,
 | 
			
		||||
  AlertDialogHeader,
 | 
			
		||||
  AlertDialogFooter,
 | 
			
		||||
  AlertDialogTitle,
 | 
			
		||||
  AlertDialogDescription,
 | 
			
		||||
  AlertDialogAction,
 | 
			
		||||
  AlertDialogCancel,
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user