import { Button, Dialog, DialogActions, DialogBody, DialogContent, DialogSurface, DialogTitle, DialogTrigger, Field, ProgressBar, } from "@fluentui/react-components"; import * as React from "react"; interface ProgressModalDialogProps { isOpen: boolean; title: string; message: string; maxValue: number; value: number; dismissText: string; onDismiss: () => void; onCancel?: () => void; /* mode drives the state of the action buttons * inProgress: Show cancel button * completed: Show close button * aborting: Show cancel button, but disabled * aborted: Show close button */ mode?: "inProgress" | "completed" | "aborting" | "aborted"; } /** * React component that renders a modal dialog with a progress bar. */ export const ProgressModalDialog: React.FC = ({ isOpen, title, message, maxValue, value, dismissText, onCancel, onDismiss, children, mode = "completed", }) => ( { if (!data.open) { onDismiss(); } }} > {title} {children} {mode === "inProgress" || mode === "aborting" ? ( ) : ( )} );