diff --git a/src/FetchRequestDetail.tsx b/src/FetchRequestDetail.tsx
index d16959d..f33a47d 100644
--- a/src/FetchRequestDetail.tsx
+++ b/src/FetchRequestDetail.tsx
@@ -264,10 +264,13 @@ export default function FetchRequestDetail() {
const isCompleted = index < activeStep;
const isActive = index === activeStep;
const isPaused = req.status === "paused" && isActive;
+ const isFailed = req.status === "failed" && isActive;
let icon: React.ReactNode;
if (isCompleted) {
icon = ;
+ } else if (isFailed) {
+ icon = ;
} else if (isPaused) {
icon = ;
} else if (isActive) {
diff --git a/src/FetchRequests.tsx b/src/FetchRequests.tsx
index 44add79..be105d4 100644
--- a/src/FetchRequests.tsx
+++ b/src/FetchRequests.tsx
@@ -30,6 +30,7 @@ import {
InputLabel,
FormControl,
OutlinedInput,
+ Autocomplete,
} from "@mui/material";
import DeleteIcon from "@mui/icons-material/Delete";
import CloudUploadIcon from "@mui/icons-material/CloudUpload";
@@ -56,6 +57,7 @@ import type {
} from "./features/fetch-requests";
import { RETRY_MAX } from "./features/fetch-requests";
import { useNavigate } from "react-router-dom";
+import { useResourceByName, useConfig } from "../react-openapi";
const statusColors: Record = {
pending: "default",
@@ -119,6 +121,16 @@ export default function FetchRequests() {
...(accountFilter ? { account_name: accountFilter } : {}),
...(sourceFilter !== "all" ? { source_type: sourceFilter } : {}),
});
+ const { useList: useAccountsList } = useResourceByName("accounts");
+ const { data: accountsData } = useAccountsList();
+ const accountOptions: string[] = React.useMemo(() => {
+ return (accountsData?.data ?? []).map((a: any) => a.name).filter(Boolean);
+ }, [accountsData]);
+
+ const config = useConfig();
+ const fetchRes = config?.resources.find((r: any) => r.name === "fetch-requests");
+ const formatOptions: string[] = (fetchRes?.fields?.source?.schema?.format?.options as string[]) ?? ["axis", "icici_ocr"];
+
const createMutation = useCreateFetchRequest();
const updateMutation = useUpdateFetchRequest();
const deleteMutation = useDeleteFetchRequest();
@@ -253,18 +265,40 @@ export default function FetchRequests() {
Uploaded as: {uploadedPath}
)}
- setFormat(e.target.value)} size="small" />
+
+ Format
+
+
>
) : (
<>
- setFormat(e.target.value)} size="small" helperText="e.g. email, pdf, csv" />
+
+ Format
+
+
setFromEmail(e.target.value)} size="small" />
setSubject(e.target.value)} size="small" />
setRawTerms(e.target.value)} size="small" helperText="Comma-separated search terms" />
>
)}
- setAccountName(e.target.value)} size="small" required />
+ setAccountName(val ?? "")}
+ renderInput={(params) => (
+
+ )}
+ sx={{ "& .MuiOutlinedInput-root": { height: "auto", minHeight: "2.5rem" } }}
+ />
setPayorUsername(e.target.value)} size="small" helperText="Default: aetos" />