Feat: Open approval with ID in URL

This commit is contained in:
Daniel Hougaard
2024-08-26 20:04:06 +04:00
parent 1655ca27d1
commit 1242a43d98
@@ -1,4 +1,4 @@
import { Fragment, useState } from "react"; import { Fragment, useEffect, useState } from "react";
import { import {
faCheck, faCheck,
faCheckCircle, faCheckCircle,
@@ -28,6 +28,7 @@ import {
} from "@app/context"; } from "@app/context";
import { import {
useGetSecretApprovalRequestCount, useGetSecretApprovalRequestCount,
useGetSecretApprovalRequestDetails,
useGetSecretApprovalRequests, useGetSecretApprovalRequests,
useGetWorkspaceUsers useGetWorkspaceUsers
} from "@app/hooks/api"; } from "@app/hooks/api";
@@ -47,6 +48,7 @@ export const SecretApprovalRequest = () => {
const [statusFilter, setStatusFilter] = useState<"open" | "close">("open"); const [statusFilter, setStatusFilter] = useState<"open" | "close">("open");
const [envFilter, setEnvFilter] = useState<string>(); const [envFilter, setEnvFilter] = useState<string>();
const [committerFilter, setCommitterFilter] = useState<string>(); const [committerFilter, setCommitterFilter] = useState<string>();
const [usingUrlRequestId, setUsingUrlRequestId] = useState(false);
const { const {
data: secretApprovalRequests, data: secretApprovalRequests,
@@ -67,6 +69,24 @@ export const SecretApprovalRequest = () => {
const { permission } = useProjectPermission(); const { permission } = useProjectPermission();
const { data: members } = useGetWorkspaceUsers(workspaceId); const { data: members } = useGetWorkspaceUsers(workspaceId);
const isSecretApprovalScreen = Boolean(selectedApproval); const isSecretApprovalScreen = Boolean(selectedApproval);
const queryParams = new URLSearchParams(window.location.search);
const requestId = queryParams.get("requestId");
const { data: secretApprovalRequestDetails } = useGetSecretApprovalRequestDetails({
id: requestId!,
options: {
enabled: !!requestId && !usingUrlRequestId
}
});
useEffect(() => {
if (!requestId || usingUrlRequestId) return;
if (secretApprovalRequestDetails) {
setSelectedApproval(secretApprovalRequestDetails);
setUsingUrlRequestId(true);
}
}, [queryParams, secretApprovalRequestDetails]);
const handleGoBackSecretRequestDetail = () => { const handleGoBackSecretRequestDetail = () => {
setSelectedApproval(null); setSelectedApproval(null);