-
Reports
+
+
+
Reports
+
+
+ {selectedReports.length > 0 && (
+
Reports selected: {selectedReports.length}
+ )}
+
+
-
+
>
);
}
diff --git a/app/components/results-table.tsx b/app/components/results-table.tsx
index 33692d29..88b8b430 100644
--- a/app/components/results-table.tsx
+++ b/app/components/results-table.tsx
@@ -25,7 +25,7 @@ import { ReadResultsOutput, type Result } from '@/app/lib/storage';
import DeleteResultsButton from '@/app/components/delete-results-button';
const columns = [
- { name: 'Title', uid: 'title' },
+ { name: 'Result ID', uid: 'title' },
{ name: 'Project', uid: 'project' },
{ name: 'Created at', uid: 'createdAt' },
{ name: 'Tags', uid: 'tags' },
@@ -50,6 +50,8 @@ export default function ResultsTable({ onSelect, onDeleted, selected }: Readonly
const [project, setProject] = useState(defaultProjectName);
const [selectedTags, setSelectedTags] = useState
([]);
const [search, setSearch] = useState('');
+ const [dateFrom, setDateFrom] = useState('');
+ const [dateTo, setDateTo] = useState('');
const [page, setPage] = useState(1);
const [rowsPerPage, setRowsPerPage] = useState(10);
@@ -59,6 +61,8 @@ export default function ResultsTable({ onSelect, onDeleted, selected }: Readonly
project,
...(selectedTags.length > 0 && { tags: selectedTags.join(',') }),
...(search.trim() && { search: search.trim() }),
+ ...(dateFrom && { dateFrom }),
+ ...(dateTo && { dateTo }),
});
const {
@@ -68,7 +72,7 @@ export default function ResultsTable({ onSelect, onDeleted, selected }: Readonly
error,
refetch,
} = useQuery(withQueryParams(resultListEndpoint, getQueryParams()), {
- dependencies: [project, selectedTags, search, rowsPerPage, page],
+ dependencies: [project, selectedTags, search, dateFrom, dateTo, rowsPerPage, page],
placeholderData: keepPreviousData,
});
@@ -104,6 +108,16 @@ export default function ResultsTable({ onSelect, onDeleted, selected }: Readonly
setPage(1);
}, []);
+ const onDateFromChange = useCallback((date: string) => {
+ setDateFrom(date);
+ setPage(1);
+ }, []);
+
+ const onDateToChange = useCallback((date: string) => {
+ setDateTo(date);
+ setPage(1);
+ }, []);
+
const pages = useMemo(() => {
return total ? Math.ceil(total / rowsPerPage) : 0;
}, [project, total, rowsPerPage]);
@@ -130,12 +144,16 @@ export default function ResultsTable({ onSelect, onDeleted, selected }: Readonly
return (
<>
void;
onSearchChange?: (search: string) => void;
onTagsChange?: (tags: string[]) => void;
+ onDateFromChange?: (date: string) => void;
+ onDateToChange?: (date: string) => void;
+ dateFrom?: string;
+ dateTo?: string;
rowPerPageOptions?: number[];
entity: 'report' | 'result';
}
@@ -29,6 +34,10 @@ export default function TablePaginationOptions({
onProjectChange,
onSearchChange,
onTagsChange,
+ onDateFromChange,
+ onDateToChange,
+ dateFrom,
+ dateTo,
}: TablePaginationRowProps) {
const rowPerPageItems = rowPerPageOptions ?? defaultRowPerPageOptions;
@@ -55,6 +64,14 @@ export default function TablePaginationOptions({
/>
{entity === 'result' && }
+ {(onDateFromChange || onDateToChange) && (
+
+ )}