diff --git a/app/src/components/datasets/DeleteButton.tsx b/app/src/components/datasets/DeleteButton.tsx index 77b364f..41e92f1 100644 --- a/app/src/components/datasets/DeleteButton.tsx +++ b/app/src/components/datasets/DeleteButton.tsx @@ -55,11 +55,17 @@ const DeleteDatasetEntriesModal = ({ disclosure }: { disclosure: UseDisclosureRe const [deleteRows, deletionInProgress] = useHandledAsyncCallback(async () => { if (!dataset?.id || !selectedIds.size) return; - const response = await deleteRowsMutation.mutateAsync({ - ids: Array.from(selectedIds), - }); - if (maybeReportError(response)) return; + // divide selectedIds into chunks of 15000 to reduce request size + const chunkSize = 15000; + const idsArray = Array.from(selectedIds); + for (let i = 0; i < idsArray.length; i += chunkSize) { + const response = await deleteRowsMutation.mutateAsync({ + ids: idsArray.slice(i, i + chunkSize), + }); + + if (maybeReportError(response)) return; + } await utils.datasetEntries.list.invalidate(); disclosure.onClose(); diff --git a/app/src/pages/datasets/[id].tsx b/app/src/pages/datasets/[id].tsx index e826a3c..0df7261 100644 --- a/app/src/pages/datasets/[id].tsx +++ b/app/src/pages/datasets/[id].tsx @@ -10,9 +10,10 @@ import { useDisclosure, } from "@chakra-ui/react"; import Link from "next/link"; - import { useState, useEffect } from "react"; import { AiOutlineDatabase } from "react-icons/ai"; + +import { env } from "~/env.mjs"; import AppShell from "~/components/nav/AppShell"; import { api } from "~/utils/api"; import { useDataset, useHandledAsyncCallback } from "~/utils/hooks"; @@ -126,7 +127,7 @@ export default function Dataset() { - + {/* */}