improvements: address feedback

This commit is contained in:
Scott Wilson
2025-09-15 14:45:21 -07:00
parent 1f4b50a6e0
commit 1e5244b2c3
4 changed files with 34 additions and 22 deletions
@@ -149,6 +149,9 @@ const SECRET_SCANNING_APP_CONNECTION_MAP = Object.fromEntries(
Object.entries(SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP).map(([key, value]) => [value, key]) Object.entries(SECRET_SCANNING_DATA_SOURCE_CONNECTION_MAP).map(([key, value]) => [value, key])
); );
// scott: ideally this would be derived from a utilized map like the above
const PKI_APP_CONNECTIONS = [AppConnection.AWS, AppConnection.Cloudflare, AppConnection.AzureADCS];
export const listAppConnectionOptions = (projectType?: ProjectType) => { export const listAppConnectionOptions = (projectType?: ProjectType) => {
return [ return [
getAwsConnectionListItem(), getAwsConnectionListItem(),
@@ -200,11 +203,7 @@ export const listAppConnectionOptions = (projectType?: ProjectType) => {
case ProjectType.SecretScanning: case ProjectType.SecretScanning:
return Boolean(SECRET_SCANNING_APP_CONNECTION_MAP[option.app]); return Boolean(SECRET_SCANNING_APP_CONNECTION_MAP[option.app]);
case ProjectType.CertificateManager: case ProjectType.CertificateManager:
return ( return PKI_APP_CONNECTIONS.includes(option.app);
option.app === AppConnection.AWS ||
option.app === AppConnection.Cloudflare ||
option.app === AppConnection.AzureADCS
);
case ProjectType.KMS: case ProjectType.KMS:
return false; return false;
case ProjectType.SSH: case ProjectType.SSH:
@@ -27,18 +27,20 @@ type ContentProps = {
selectedRotation: SecretRotation | null; selectedRotation: SecretRotation | null;
setSelectedRotation: (selectedRotation: SecretRotation | null) => void; setSelectedRotation: (selectedRotation: SecretRotation | null) => void;
initialFormData?: Partial<TSecretRotationV2Form>; initialFormData?: Partial<TSecretRotationV2Form>;
onCancel: () => void;
} & SharedProps; } & SharedProps;
const Content = ({ const Content = ({
setSelectedRotation, setSelectedRotation,
selectedRotation, selectedRotation,
initialFormData, initialFormData,
onCancel,
...props ...props
}: ContentProps) => { }: ContentProps) => {
if (selectedRotation) { if (selectedRotation) {
return ( return (
<SecretRotationV2Form <SecretRotationV2Form
onCancel={() => setSelectedRotation(null)} onCancel={onCancel}
type={selectedRotation} type={selectedRotation}
initialFormData={initialFormData} initialFormData={initialFormData}
{...props} {...props}
@@ -93,13 +95,17 @@ export const CreateSecretRotationV2Modal = ({ onOpenChange, isOpen, ...props }:
} }
}, [connectionId, connectionName]); }, [connectionId, connectionName]);
const handleReset = () => {
setSelectedRotation(null);
setInitialFormData(undefined);
};
return ( return (
<Modal <Modal
isOpen={isOpen} isOpen={isOpen}
onOpenChange={(open) => { onOpenChange={(open) => {
if (!open) { if (!open) {
setSelectedRotation(null); handleReset();
setInitialFormData(undefined);
} }
onOpenChange(open); onOpenChange(open);
}} }}
@@ -137,9 +143,10 @@ export const CreateSecretRotationV2Modal = ({ onOpenChange, isOpen, ...props }:
> >
<Content <Content
onComplete={() => { onComplete={() => {
setSelectedRotation(null); handleReset();
onOpenChange(false); onOpenChange(false);
}} }}
onCancel={handleReset}
initialFormData={initialFormData} initialFormData={initialFormData}
selectedRotation={selectedRotation} selectedRotation={selectedRotation}
setSelectedRotation={setSelectedRotation} setSelectedRotation={setSelectedRotation}
@@ -24,16 +24,18 @@ type ContentProps = {
selectedDataSource: SecretScanningDataSource | null; selectedDataSource: SecretScanningDataSource | null;
setSelectedDataSource: (selectedDataSource: SecretScanningDataSource | null) => void; setSelectedDataSource: (selectedDataSource: SecretScanningDataSource | null) => void;
initialFormData?: Partial<TSecretScanningDataSourceForm>; initialFormData?: Partial<TSecretScanningDataSourceForm>;
onCancel: () => void;
}; };
const Content = ({ setSelectedDataSource, selectedDataSource, ...props }: ContentProps) => { const Content = ({
setSelectedDataSource,
selectedDataSource,
onCancel,
...props
}: ContentProps) => {
if (selectedDataSource) { if (selectedDataSource) {
return ( return (
<SecretScanningDataSourceForm <SecretScanningDataSourceForm onCancel={onCancel} type={selectedDataSource} {...props} />
onCancel={() => setSelectedDataSource(null)}
type={selectedDataSource}
{...props}
/>
); );
} }
@@ -86,11 +88,18 @@ export const CreateSecretScanningDataSourceModal = ({ onOpenChange, isOpen, ...p
} }
}, [connectionId, connectionName]); }, [connectionId, connectionName]);
const resetModal = () => {
setSelectedDataSource(null);
setInitialFormData(undefined);
};
return ( return (
<Modal <Modal
isOpen={isOpen} isOpen={isOpen}
onOpenChange={(open) => { onOpenChange={(open) => {
if (!open) setSelectedDataSource(null); if (!open) {
resetModal();
}
onOpenChange(open); onOpenChange(open);
}} }}
> >
@@ -127,9 +136,10 @@ export const CreateSecretScanningDataSourceModal = ({ onOpenChange, isOpen, ...p
> >
<Content <Content
onComplete={() => { onComplete={() => {
setSelectedDataSource(null); resetModal();
onOpenChange(false); onOpenChange(false);
}} }}
onCancel={resetModal}
selectedDataSource={selectedDataSource} selectedDataSource={selectedDataSource}
setSelectedDataSource={setSelectedDataSource} setSelectedDataSource={setSelectedDataSource}
initialFormData={initialFormData} initialFormData={initialFormData}
@@ -8,7 +8,6 @@ import { RequestProjectAccessModal } from "@app/components/projects";
import { AccessRestrictedBanner, Button } from "@app/components/v2"; import { AccessRestrictedBanner, Button } from "@app/components/v2";
import { OrgPermissionSubjects } from "@app/context"; import { OrgPermissionSubjects } from "@app/context";
import { OrgPermissionAdminConsoleAction } from "@app/context/OrgPermissionContext/types"; import { OrgPermissionAdminConsoleAction } from "@app/context/OrgPermissionContext/types";
import { getProjectHomePage } from "@app/helpers/project";
import { usePopUp } from "@app/hooks"; import { usePopUp } from "@app/hooks";
import { useOrgAdminAccessProject, useSearchProjects } from "@app/hooks/api"; import { useOrgAdminAccessProject, useSearchProjects } from "@app/hooks/api";
@@ -41,10 +40,7 @@ export const ProjectAccessError = () => {
projectId: project.id projectId: project.id
}); });
await navigate({ await navigate({
to: getProjectHomePage(project.type, project.environments), to: "."
params: {
projectId: project.id
}
}); });
} catch { } catch {
createNotification({ createNotification({