Skip to content

Commit

Permalink
Added confirmation dialog to re-generate deploy-key
Browse files Browse the repository at this point in the history
  • Loading branch information
satr committed Feb 13, 2024
1 parent a361e5b commit 141d09d
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 5 deletions.
44 changes: 39 additions & 5 deletions src/components/configure-application-github/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import {
import { pollingInterval } from '../../store/defaults';
import { handlePromiseWithToast } from '../global-top-nav/styled-toaster';
import { getFetchErrorMessage } from '../../store/utils';
import { ScrimPopup } from '../scrim-popup';

const radixZoneDNS = configVariables.RADIX_CLUSTER_BASE;

Expand All @@ -53,7 +54,8 @@ export const ConfigureApplicationGithub = ({
const isExpanded = !!startVisible;
const webhookURL = `https://webhook.${radixZoneDNS}/events/github?appName=${app.name}`;
const [useOtherCiTool, setUseOtherCiTool] = useState(false);

const [visibleRegenerateScrim, setVisibleRegenerateScrim] =
useState<boolean>(false);
const [regenerateSecrets, { isLoading, error }] =
useRegenerateDeployKeyMutation();
const { data: secrets, refetch: refetchSecrets } =
Expand All @@ -63,13 +65,14 @@ export const ConfigureApplicationGithub = ({
);

const onRegenerate = handlePromiseWithToast(async () => {
setVisibleRegenerateScrim(false);
await regenerateSecrets({
appName: app.name,
regenerateDeployKeyAndSecretData: { sharedSecret: nanoid() },
}).unwrap();
await refetchSecrets();
await refetch?.();
});
}, 'Successfully re-generated deploy key and webhook secret');

return (
<div className="configure-application-github grid grid--gap-medium">
Expand Down Expand Up @@ -130,9 +133,40 @@ export const ConfigureApplicationGithub = ({
<Progress.Circular size={16} /> Regenerating…
</>
) : (
<Button onClick={onRegenerate}>
Regenerate deploy key and webhook secret
</Button>
<>
<ScrimPopup
title={`Warning`}
open={!!visibleRegenerateScrim}
onClose={() => setVisibleRegenerateScrim(false)}
isDismissable
>
<div className="grid grid--gap-medium grid--auto-columns regenerate-content">
<div className="regenerate-options">
<Typography>
Do you want to <strong>re-generate</strong>{' '}
deploy key and webhook secret?
</Typography>
<Typography>
New deploy key and webhook secret need to be put
to the GitHub repository settings
</Typography>
</div>

<Button.Group>
<Button onClick={onRegenerate}>Rerun</Button>
<Button
variant="outlined"
onClick={() => setVisibleRegenerateScrim(false)}
>
Cancel
</Button>
</Button.Group>
</div>
</ScrimPopup>
<Button onClick={() => setVisibleRegenerateScrim(true)}>
Re-generate deploy key and webhook secret
</Button>
</>
)}
</div>
</div>
Expand Down
16 changes: 16 additions & 0 deletions src/components/configure-application-github/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,19 @@
filter: invert(0);
}
}

.regenerate-content {
padding: var(--eds_spacing_medium);
padding-top: 0;
overflow: auto;
}
@media (min-width: 150rem) {
.regenerate-content {
margin: auto;
}
}

.regenerate-options {
margin-top: auto;
margin-bottom: auto;
}

0 comments on commit 141d09d

Please sign in to comment.