mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-04 12:26:13 +00:00
Fix: Status filtering & query invalidation
This commit is contained in:
+25
-4
@@ -37,12 +37,14 @@ import {
|
|||||||
import { usePopUp } from "@app/hooks";
|
import { usePopUp } from "@app/hooks";
|
||||||
import { useGetWorkspaceUsers, useReviewAccessRequest } from "@app/hooks/api";
|
import { useGetWorkspaceUsers, useReviewAccessRequest } from "@app/hooks/api";
|
||||||
import {
|
import {
|
||||||
|
accessApprovalKeys,
|
||||||
useGetAccessApprovalPolicies,
|
useGetAccessApprovalPolicies,
|
||||||
useGetAccessApprovalRequests,
|
useGetAccessApprovalRequests,
|
||||||
useGetAccessRequestsCount
|
useGetAccessRequestsCount
|
||||||
} from "@app/hooks/api/accessApproval/queries";
|
} from "@app/hooks/api/accessApproval/queries";
|
||||||
import { TAccessApprovalRequest } from "@app/hooks/api/accessApproval/types";
|
import { TAccessApprovalRequest } from "@app/hooks/api/accessApproval/types";
|
||||||
import { ApprovalStatus, TAccessApprovalPolicy, TWorkspaceUser } from "@app/hooks/api/types";
|
import { ApprovalStatus, TAccessApprovalPolicy, TWorkspaceUser } from "@app/hooks/api/types";
|
||||||
|
import { queryClient } from "@app/reactQuery";
|
||||||
import { SpecificPrivilegeSecretForm } from "@app/views/Project/MembersPage/components/MemberListTab/MemberRoleForm/SpecificPrivilegeSection";
|
import { SpecificPrivilegeSecretForm } from "@app/views/Project/MembersPage/components/MemberListTab/MemberRoleForm/SpecificPrivilegeSection";
|
||||||
|
|
||||||
const DisplayBadge = ({ text, className }: { text: string; className?: string }) => {
|
const DisplayBadge = ({ text, className }: { text: string; className?: string }) => {
|
||||||
@@ -296,8 +298,18 @@ export const AccessApprovalRequest = ({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const filteredRequests = useMemo(() => {
|
const filteredRequests = useMemo(() => {
|
||||||
if (statusFilter === "open") return requests?.filter((request) => !request.isApproved);
|
if (statusFilter === "open")
|
||||||
if (statusFilter === "close") return requests?.filter((request) => request.isApproved);
|
return requests?.filter(
|
||||||
|
(request) =>
|
||||||
|
!request.isApproved &&
|
||||||
|
!request.reviewers.some((reviewer) => reviewer.status === ApprovalStatus.REJECTED)
|
||||||
|
);
|
||||||
|
if (statusFilter === "close")
|
||||||
|
return requests?.filter(
|
||||||
|
(request) =>
|
||||||
|
request.isApproved ||
|
||||||
|
request.reviewers.some((reviewer) => reviewer.status === ApprovalStatus.REJECTED)
|
||||||
|
);
|
||||||
|
|
||||||
return requests;
|
return requests;
|
||||||
}, [requests, statusFilter, requestedByFilter, envFilter]);
|
}, [requests, statusFilter, requestedByFilter, envFilter]);
|
||||||
@@ -481,7 +493,7 @@ export const AccessApprovalRequest = ({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{!!filteredRequests?.length &&
|
{!!filteredRequests?.length &&
|
||||||
requests?.map((request) => {
|
filteredRequests?.map((request) => {
|
||||||
const details = generateRequestDetails(request);
|
const details = generateRequestDetails(request);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -546,7 +558,16 @@ export const AccessApprovalRequest = ({
|
|||||||
<SelectAccessModal
|
<SelectAccessModal
|
||||||
policies={policies}
|
policies={policies}
|
||||||
isOpen={popUp.requestAccess.isOpen}
|
isOpen={popUp.requestAccess.isOpen}
|
||||||
onOpenChange={() => handlePopUpClose("requestAccess")}
|
onOpenChange={() => {
|
||||||
|
queryClient.invalidateQueries(
|
||||||
|
accessApprovalKeys.getAccessApprovalRequests(
|
||||||
|
projectSlug,
|
||||||
|
envFilter,
|
||||||
|
requestedByFilter
|
||||||
|
)
|
||||||
|
);
|
||||||
|
handlePopUpClose("requestAccess");
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user