Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/dashboard/src/repositories/detail/general/RemoveConfiguration.tsx
2502 views
1
/**
2
* Copyright (c) 2023 Gitpod GmbH. All rights reserved.
3
* Licensed under the GNU Affero General Public License (AGPL).
4
* See License.AGPL.txt in the project root for license information.
5
*/
6
7
import { Heading3, Subheading } from "@podkit/typography/Headings";
8
import { RemoveConfigurationModal } from "./RemoveConfigurationModal";
9
import { useHistory } from "react-router";
10
import { useCallback, useState } from "react";
11
import type { Configuration } from "@gitpod/public-api/lib/gitpod/v1/configuration_pb";
12
import { ConfigurationSettingsField } from "../ConfigurationSettingsField";
13
import { Button } from "@podkit/buttons/Button";
14
15
interface Props {
16
configuration: Configuration;
17
}
18
export const RemoveConfiguration = ({ configuration }: Props) => {
19
const [showRemoveModal, setShowRemoveModal] = useState(false);
20
21
const history = useHistory();
22
const onProjectRemoved = useCallback(() => {
23
history.push("/repositories");
24
}, [history]);
25
26
return (
27
<>
28
<ConfigurationSettingsField>
29
<Heading3>Remove this repository</Heading3>
30
<Subheading className="max-w-lg">
31
This will remove all settings and environment variables you have set for this repository. It will
32
not delete the underlying git repository.
33
</Subheading>
34
35
<Button variant="destructive" className="mt-4" onClick={() => setShowRemoveModal(true)}>
36
Remove Repository
37
</Button>
38
</ConfigurationSettingsField>
39
{configuration && showRemoveModal && (
40
<RemoveConfigurationModal
41
configuration={configuration}
42
onRemoved={onProjectRemoved}
43
onClose={() => setShowRemoveModal(false)}
44
/>
45
)}
46
</>
47
);
48
};
49
50