From 65185cd499c7fabd3e36ce694e01d15b731adfa8 Mon Sep 17 00:00:00 2001 From: Jordi Enric Date: Wed, 18 Jun 2025 12:20:03 +0200 Subject: [PATCH] reduce dupplicate code in reports date ranges --- .../WarehouseCollectionDetail.tsx | 21 +++------ .../interfaces/Reports/ReportFilterBar.tsx | 25 +---------- .../Settings/Logs/PreviewFilterPanel.tsx | 11 +---- apps/studio/data/reports/api-report-query.ts | 44 ++++++++++++++++--- .../data/reports/storage-report-query.ts | 14 +++++- apps/studio/hooks/analytics/useLogsQuery.tsx | 25 +++-------- .../project/[ref]/reports/api-overview.tsx | 23 +--------- .../pages/project/[ref]/reports/storage.tsx | 36 ++------------- 8 files changed, 68 insertions(+), 131 deletions(-) diff --git a/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx b/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx index f0be4402a71..8bb2de4c156 100644 --- a/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx +++ b/apps/studio/components/interfaces/DataWarehouse/WarehouseCollectionDetail.tsx @@ -22,22 +22,26 @@ import { TestCollectionDialog } from './TestCollectionDialog' const INTERVALS: DatetimeHelper[] = [ { + id: 'last-hour', text: 'Last hour', calcFrom: () => dayjs().subtract(1, 'hour').toISOString(), calcTo: () => dayjs().toISOString(), default: true, }, { + id: 'last-12-hours', text: 'Last 12 hours', calcFrom: () => dayjs().subtract(12, 'hour').toISOString(), calcTo: () => dayjs().toISOString(), }, { + id: 'last-day', text: 'Last day', calcFrom: () => dayjs().subtract(1, 'day').toISOString(), calcTo: () => dayjs().toISOString(), }, { + id: 'last-7-days', text: 'Last 7 days', calcFrom: () => dayjs().subtract(7, 'day').toISOString(), calcTo: () => dayjs().toISOString(), @@ -202,22 +206,7 @@ order by timestamp desc limit ${filters.limit} offset ${filters.offset} value={search} onChange={(e) => setSearch(e.target.value)} /> */} - - setFilters({ - ...filters, - interval: { - to: () => e.to || '', - from: () => e.from || '', - }, - }) - } - /> +
diff --git a/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx b/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx index 918bce39d8f..4f73e3c81ac 100644 --- a/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx +++ b/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx @@ -20,7 +20,7 @@ import { Select, cn, } from 'ui' -import { DatePickerValue, LogsDatePicker } from '../Settings/Logs/Logs.DatePickers' +import { LogsDatePicker } from '../Settings/Logs/Logs.DatePickers' import { REPORTS_DATEPICKER_HELPERS } from './Reports.constants' import type { ReportFilterItem } from './Reports.types' @@ -30,9 +30,6 @@ interface ReportFilterBarProps { onAddFilter: (filter: ReportFilterItem) => void onRemoveFilters: (filters: ReportFilterItem[]) => void onRefresh: () => void - onDatepickerChange: ComponentProps['onSubmit'] - datepickerTo?: string - datepickerFrom?: string datepickerHelpers: typeof REPORTS_DATEPICKER_HELPERS } @@ -83,7 +80,6 @@ const ReportFilterBar = ({ filters, isLoading = false, onAddFilter, - onDatepickerChange, onRemoveFilters, onRefresh, datepickerHelpers, @@ -117,11 +113,6 @@ const ReportFilterBar = ({ }) } - const handleDatepickerChange = (vals: DatePickerValue) => { - onDatepickerChange(vals) - setSelectedRange(vals) - } - const handleProductFilterChange = async ( nextProductFilter: null | (typeof PRODUCT_FILTERS)[number] ) => { @@ -144,14 +135,6 @@ const ReportFilterBar = ({ setCurrentProductFilter(nextProductFilter) } - const defaultHelper = datepickerHelpers[0] - const [selectedRange, setSelectedRange] = useState({ - to: defaultHelper.calcTo(), - from: defaultHelper.calcFrom(), - isHelper: true, - text: defaultHelper.text, - }) - return (
@@ -163,11 +146,7 @@ const ReportFilterBar = ({ tooltip={{ content: { side: 'bottom', text: 'Refresh report' } }} onClick={() => onRefresh()} /> - +