diff --git a/src/app/allocators/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/provider-table.tsx b/src/app/allocators/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/provider-table.tsx index 9a38d08..40f7eae 100644 --- a/src/app/allocators/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/provider-table.tsx +++ b/src/app/allocators/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/provider-table.tsx @@ -165,31 +165,6 @@ const useReportViewProvidersColumns = (/*compareMode: boolean*/) => { ); }, }, - { - accessorKey: "retrievability_success_rate", - header: () => { - return
Retrieval Rate
; - }, - cell: ({ row }) => { - if (row.original.not_found) { - return ( -
- N/A -
- ); - } - - const successRate = row.getValue( - "retrievability_success_rate" - ) as number; - - return ( -
- {(successRate * 100).toFixed(2)}% -
- ); - }, - }, { accessorKey: "retrievability_success_rate_http", header: () => { diff --git a/src/app/clients/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/report-view-provider-table.tsx b/src/app/clients/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/report-view-provider-table.tsx index ae1f828..3f46c3a 100644 --- a/src/app/clients/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/report-view-provider-table.tsx +++ b/src/app/clients/(pages)/[id]/(pages)/reports/(pages)/[...report]/components/provider-view/report-view-provider-table.tsx @@ -248,36 +248,6 @@ const useReportViewProvidersColumns = (compareMode: boolean) => { ); }, }, - { - accessorKey: "retrievability_success_rate", - header: () => { - return
Retrieval Rate
; - }, - cell: ({ row }) => { - if (row.original.not_found) { - return ( -
- N/A -
- ); - } - - const successRate = row.getValue( - "retrievability_success_rate" - ) as number; - - return ( -
- {(successRate * 100).toFixed(2)}% - {compareMode && ( - - )} -
- ); - }, - }, { accessorKey: "retrievability_success_rate_http", header: () => { diff --git a/src/app/compliance-data-portal/(pages)/allocators/retrievability/page.tsx b/src/app/compliance-data-portal/(pages)/allocators/retrievability/page.tsx index b2f3a03..8489878 100644 --- a/src/app/compliance-data-portal/(pages)/allocators/retrievability/page.tsx +++ b/src/app/compliance-data-portal/(pages)/allocators/retrievability/page.tsx @@ -3,6 +3,7 @@ import { ChartWrapper } from "@/app/compliance-data-portal/components/chart-wrapper"; import { EditionRoundCheckbox } from "@/app/compliance-data-portal/components/edition-round-checkbox"; import { StackedBarGraph } from "@/app/compliance-data-portal/components/graphs/stacked-bar-graph"; +import { RetrievabilityTypeSelect } from "@/app/compliance-data-portal/components/retrievability-type-select"; import useWeeklyChartData from "@/app/compliance-data-portal/hooks/useWeeklyChartData"; import { Checkbox } from "@/components/ui/checkbox"; import { useAllocatorRetrievability } from "@/lib/hooks/cdp.hooks"; @@ -14,17 +15,17 @@ import { type ComponentProps, useCallback, useEffect, useState } from "react"; type CheckboxProps = ComponentProps; type CheckedChangeHandler = NonNullable; -const httpRetrievabilityFilterKey = "httpRetrievability"; +const retrievabilityFilterKey = "retrievabilityType"; const openDataFilterKey = "openDataOnly"; export default function AllocatorRetrievabilityPage() { const { filters, updateFilter } = useSearchParamsFilters(); - const httpRetrievability = filters[httpRetrievabilityFilterKey] === "true"; + const retrievabilityType = filters[retrievabilityFilterKey] ?? "urlFinder"; const openDataOnly = filters[openDataFilterKey] === "true"; const [usePercentage, setUsePercentage] = useState(false); const { data, isLoading } = useAllocatorRetrievability({ - httpRetrievability, + retrievabilityType, openDataOnly, }); @@ -45,17 +46,6 @@ export default function AllocatorRetrievabilityPage() { const { scale, calcPercentage, selectedScale, setSelectedScale } = useChartScale(minValue); - const handleHTTPRetrievabilityToggleChange = - useCallback( - (state) => { - updateFilter( - httpRetrievabilityFilterKey, - state === true ? "true" : undefined - ); - }, - [updateFilter] - ); - const handleOpenDataToggleChange = useCallback( (state) => { updateFilter(openDataFilterKey, state === true ? "true" : undefined); @@ -86,19 +76,12 @@ export default function AllocatorRetrievabilityPage() { additionalFilters={[
- -
,
{ + updateFilter(queryParamName, value); + }, + [updateFilter, queryParamName] + ); + + return ( +
+ {!!label && {label}} + + +
+ ); +} diff --git a/src/lib/hooks/cdp.hooks.ts b/src/lib/hooks/cdp.hooks.ts index 59272e8..e9e7adc 100644 --- a/src/lib/hooks/cdp.hooks.ts +++ b/src/lib/hooks/cdp.hooks.ts @@ -30,19 +30,21 @@ const allocatorSPsComplianceMetrics = [ ] as const; interface UseStorageProviderRetrievabilityParameters { - httpRetrievability?: boolean; + retrievabilityType?: string; openDataOnly?: boolean; } const useStorageProviderRetrievability = ({ - httpRetrievability = false, + retrievabilityType = undefined, openDataOnly = false, }: UseStorageProviderRetrievabilityParameters) => { const { selectedRoundId } = useEditionRound(); const fetchData = useCallback(async () => { const searchParams = new URLSearchParams(); - searchParams.set("httpRetrievability", String(httpRetrievability)); + if (retrievabilityType) + searchParams.set("retrievabilityType", String(retrievabilityType)); + searchParams.set("openDataOnly", String(openDataOnly)); if (selectedRoundId) searchParams.set("editionId", selectedRoundId); @@ -55,7 +57,7 @@ const useStorageProviderRetrievability = ({ count: data?.histogram?.total, buckets: data?.histogram?.results, } as ICDPUnifiedHistogram; - }, [httpRetrievability, openDataOnly, selectedRoundId]); + }, [retrievabilityType, openDataOnly, selectedRoundId]); const [data, setData] = useState(undefined); const [isLoading, setIsLoading] = useState(false); @@ -141,19 +143,21 @@ const useStorageProviderBiggestDeal = () => { }; interface UseAllocatorRetrievabilityParameters { - httpRetrievability?: boolean; + retrievabilityType?: string; openDataOnly?: boolean; } const useAllocatorRetrievability = ({ - httpRetrievability = false, + retrievabilityType = undefined, openDataOnly = false, }: UseAllocatorRetrievabilityParameters) => { const { selectedRoundId } = useEditionRound(); const fetchData = useCallback(async () => { const searchParams = new URLSearchParams(); - searchParams.set("httpRetrievability", String(httpRetrievability)); + if (retrievabilityType) + searchParams.set("retrievabilityType", String(retrievabilityType)); + searchParams.set("openDataOnly", String(openDataOnly)); if (selectedRoundId) searchParams.set("editionId", selectedRoundId); @@ -166,7 +170,7 @@ const useAllocatorRetrievability = ({ count: data?.histogram?.total, buckets: data?.histogram?.results, } as ICDPUnifiedHistogram; - }, [httpRetrievability, openDataOnly, selectedRoundId]); + }, [retrievabilityType, openDataOnly, selectedRoundId]); const [data, setData] = useState(undefined); const [isLoading, setIsLoading] = useState(false);