From 433afe7894d9920bba8a880fce4cea198e71d9a4 Mon Sep 17 00:00:00 2001 From: jakeross Date: Wed, 5 Nov 2025 23:23:17 -0700 Subject: [PATCH 1/2] feat: enhance well-show component with transducer data --- src/pages/ocotillo/thing/well-show.tsx | 51 +++++++++++++++++++++++++ src/providers/ocotillo-data-provider.ts | 9 ++++- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/src/pages/ocotillo/thing/well-show.tsx b/src/pages/ocotillo/thing/well-show.tsx index 210181aa..fc709dfc 100644 --- a/src/pages/ocotillo/thing/well-show.tsx +++ b/src/pages/ocotillo/thing/well-show.tsx @@ -6,6 +6,7 @@ import { useShow, useNavigation, useList, + useInfiniteList, } from '@refinedev/core' import { useParams } from 'react-router-dom' import { Breadcrumb, CreateButton, Show, useDataGrid } from '@refinedev/mui' @@ -108,6 +109,28 @@ export const WellShow = () => { ] }, []) + const { isLoading: transducerIsLoading, + fetchNextPage, + hasNextPage, + data: transducerData } = useInfiniteList({ + resource: 'observation/transducer-groundwater-level', + dataProviderName: 'ocotillo', + meta: { + params: { + thing_id: id, + }, + }, + pagination: { + pageSize: 10000, + }, + }) + + // useEffect(() => { + // if (!hasNextPage || transducerIsLoading) return + // fetchNextPage() + // }, [hasNextPage, transducerIsLoading, fetchNextPage]) + // + const { dataGridProps: observationDataGridProps } = useDataGrid({ resource: 'observation/groundwater-level', dataProviderName: 'ocotillo', @@ -183,6 +206,34 @@ export const WellShow = () => { setHydrographDatasource(source) }, [observations]) + useEffect(() => { + console.log('transducerData', transducerData) + + if (!transducerData || transducerData.pages.length === 0) return + if (transducerIsLoading) return + if (hasNextPage) { + fetchNextPage() + return + } + + const allTransducerRows = transducerData.pages.flatMap(page => page.data) ?? [] + console.log('allTransducerRows', allTransducerRows) + const source: IHydrographDatasource[] = + { + id: 2, + name: 'Transducer', + style: 'line', + data: + allTransducerRows.map((obs) => ({ + phenomenonTime: new Date(obs.observation.observation_datetime), + result: Number(obs.observation.value), + })) || [], + } + console.log('source', source) + setHydrographDatasource((prevState)=> [...prevState, source]) + + }, [transducerData, transducerIsLoading, hasNextPage, fetchNextPage]) + return ( 0) { From 2385225c167c26975833cb7b66132247bc7dee63 Mon Sep 17 00:00:00 2001 From: jakeross Date: Wed, 5 Nov 2025 23:29:35 -0700 Subject: [PATCH 2/2] feat: simplify pagination handling in data provider and clean up unused effect in well-show component --- src/pages/ocotillo/thing/well-show.tsx | 6 ------ src/providers/ocotillo-data-provider.ts | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/pages/ocotillo/thing/well-show.tsx b/src/pages/ocotillo/thing/well-show.tsx index fc709dfc..a6306079 100644 --- a/src/pages/ocotillo/thing/well-show.tsx +++ b/src/pages/ocotillo/thing/well-show.tsx @@ -125,12 +125,6 @@ export const WellShow = () => { }, }) - // useEffect(() => { - // if (!hasNextPage || transducerIsLoading) return - // fetchNextPage() - // }, [hasNextPage, transducerIsLoading, fetchNextPage]) - // - const { dataGridProps: observationDataGridProps } = useDataGrid({ resource: 'observation/groundwater-level', dataProviderName: 'ocotillo', diff --git a/src/providers/ocotillo-data-provider.ts b/src/providers/ocotillo-data-provider.ts index e9820c43..b15090bd 100644 --- a/src/providers/ocotillo-data-provider.ts +++ b/src/providers/ocotillo-data-provider.ts @@ -79,8 +79,7 @@ export const ocotilloDataProvider: DataProvider = { } if (pagination) { - console.log(pagination) - if (pagination.current !== undefined && pagination.pageSize !== undefined) { + if (pagination.current !== undefined) { params.append('page', pagination.current.toString()) } if (pagination.pageSize !== undefined){