diff --git a/frontend/src/lib/fn/csv.ts b/frontend/src/lib/fn/csv.ts index d10fc0660..083dd02a9 100644 --- a/frontend/src/lib/fn/csv.ts +++ b/frontend/src/lib/fn/csv.ts @@ -1,11 +1,8 @@ /** * Converts a JSON array of objects to CSV format * @param {Array} jsonData - Array of objects to convert - * @param {string} filename - Name of the file to download (without extension) */ export const convertJsonToCsv = (jsonData: Record[]) => { - // Get headers from the first object - if (jsonData.length === 0) { return new Blob([""], { type: "text/csv;charset=utf-8;" }); } @@ -14,24 +11,19 @@ export const convertJsonToCsv = (jsonData: Record { return headers .map((header) => { - // Handle special cases in the data let cell = row[header]; - // Convert null/undefined to empty string if (cell === null || cell === undefined) { return ""; } - // Handle normal values if (typeof cell === "number" || typeof cell === "boolean") { return cell; } - // Convert objects/arrays to JSON string if (typeof cell === "object") { cell = JSON.stringify(cell); } diff --git a/frontend/src/pages/organization/SecretScanningPage/SecretScanningPage.tsx b/frontend/src/pages/organization/SecretScanningPage/SecretScanningPage.tsx index 44546edbe..e66e2382b 100644 --- a/frontend/src/pages/organization/SecretScanningPage/SecretScanningPage.tsx +++ b/frontend/src/pages/organization/SecretScanningPage/SecretScanningPage.tsx @@ -27,7 +27,7 @@ export const SecretScanningPage = withPermission( () => { const queryParams = useSearch({ from: ROUTE_PATHS.Organization.SecretScanning.id - }) as Record; + }); const { config } = useServerConfig(); const { currentOrg } = useOrganization(); diff --git a/frontend/src/pages/organization/SecretScanningPage/route.tsx b/frontend/src/pages/organization/SecretScanningPage/route.tsx index 4e9260d94..03c7b64f3 100644 --- a/frontend/src/pages/organization/SecretScanningPage/route.tsx +++ b/frontend/src/pages/organization/SecretScanningPage/route.tsx @@ -1,25 +1,25 @@ -import { createFileRoute /* stripSearchParams */ } from "@tanstack/react-router"; +import { createFileRoute, stripSearchParams } from "@tanstack/react-router"; +import { zodValidator } from "@tanstack/zod-adapter"; +import { z } from "zod"; -// import { zodValidator } from "@tanstack/zod-adapter"; -// import { z } from "zod"; import { SecretScanningPage } from "./SecretScanningPage"; -// const SecretScanningQueryParams = z.object({ -// state: z.string().catch(""), -// installation_id: z.string().catch("") -// }); +const SecretScanningQueryParams = z.object({ + state: z.string().catch(""), + installation_id: z.coerce.number().optional() +}); export const Route = createFileRoute( "/_authenticate/_inject-org-details/organization/_layout/secret-scanning" )({ - component: SecretScanningPage - // validateSearch: zodValidator(SecretScanningQueryParams), - // search: { - // middlewares: [ - // stripSearchParams({ - // installation_id: "", - // state: "" - // }) - // ] - // } + component: SecretScanningPage, + validateSearch: zodValidator(SecretScanningQueryParams), + search: { + middlewares: [ + stripSearchParams({ + installation_id: 0, + state: "" + }) + ] + } });