mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 14:27:30 +00:00
Greptile review fixes + pagination tweaks
This commit is contained in:
+30
-6
@@ -168,6 +168,13 @@ export const SecretScanningFindingsTable = ({ findings }: Props) => {
|
|||||||
setPage
|
setPage
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const currentPageData = useMemo(
|
||||||
|
() => filteredFindings.slice(offset, perPage * page),
|
||||||
|
[filteredFindings, offset, perPage, page]
|
||||||
|
);
|
||||||
|
|
||||||
|
const currentPageDataIds = useMemo(() => currentPageData.map((f) => f.id), [currentPageData]);
|
||||||
|
|
||||||
const handleSort = (column: FindingsOrderBy) => {
|
const handleSort = (column: FindingsOrderBy) => {
|
||||||
if (column === orderBy) {
|
if (column === orderBy) {
|
||||||
toggleOrderDirection();
|
toggleOrderDirection();
|
||||||
@@ -288,12 +295,29 @@ export const SecretScanningFindingsTable = ({ findings }: Props) => {
|
|||||||
<Th className="">
|
<Th className="">
|
||||||
<Checkbox
|
<Checkbox
|
||||||
id="checkbox-select-all"
|
id="checkbox-select-all"
|
||||||
isChecked={selectedRows.length === filteredFindings.length}
|
isChecked={
|
||||||
onCheckedChange={() =>
|
currentPageDataIds.length > 0 &&
|
||||||
setSelectedRows((sr) =>
|
currentPageDataIds.every((id) => selectedRows.includes(id))
|
||||||
sr.length === filteredFindings.length ? [] : filteredFindings.map((f) => f.id)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
onCheckedChange={() => {
|
||||||
|
const allCurrentlySelectedOnPage =
|
||||||
|
currentPageDataIds.length > 0 &&
|
||||||
|
currentPageDataIds.every((id) => selectedRows.includes(id));
|
||||||
|
|
||||||
|
if (allCurrentlySelectedOnPage) {
|
||||||
|
// Deselect all on current page
|
||||||
|
setSelectedRows((prev) =>
|
||||||
|
prev.filter((rowId) => !currentPageDataIds.includes(rowId))
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// Select all on current page
|
||||||
|
setSelectedRows((prev) => {
|
||||||
|
const newSelectedRows = new Set(prev);
|
||||||
|
currentPageDataIds.forEach((id) => newSelectedRows.add(id));
|
||||||
|
return Array.from(newSelectedRows);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
}}
|
}}
|
||||||
@@ -356,7 +380,7 @@ export const SecretScanningFindingsTable = ({ findings }: Props) => {
|
|||||||
</Tr>
|
</Tr>
|
||||||
</THead>
|
</THead>
|
||||||
<TBody>
|
<TBody>
|
||||||
{filteredFindings.slice(offset, perPage * page).map((finding) => (
|
{currentPageData.map((finding) => (
|
||||||
<SecretScanningFindingRow
|
<SecretScanningFindingRow
|
||||||
isSelected={selectedRows.includes(finding.id)}
|
isSelected={selectedRows.includes(finding.id)}
|
||||||
onToggleSelect={(v) =>
|
onToggleSelect={(v) =>
|
||||||
|
|||||||
+5
-2
@@ -144,8 +144,11 @@ export const SecretScanningUpdateFindingModal = ({ findings, isOpen, onOpenChang
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal isOpen={isOpen} onOpenChange={onOpenChange}>
|
<Modal isOpen={isOpen} onOpenChange={onOpenChange}>
|
||||||
<ModalContent title="Update Finding" subTitle="Update the status or leave remarks">
|
<ModalContent
|
||||||
<Content findings={findings || []} onComplete={() => onOpenChange(false)} />
|
title={`Update Finding${findings.length === 1 ? "" : "s"}`}
|
||||||
|
subTitle="Update the status or leave remarks"
|
||||||
|
>
|
||||||
|
<Content findings={findings} onComplete={() => onOpenChange(false)} />
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user