{
- private static keyExtensions = ["key", "keystore", "jks", "p12", "pfx", "pem"];
- private static certExtensions = ["crt", "cer", "ca-bundle", "p7b", "p7c", "p7s", "p12", "pfx", "pem"];
-
- constructor(props: AddHelmRepoDialogProps) {
- super(props);
- makeObservable(this);
- }
-
- static open() {
- dialogState.isOpen = true;
- }
-
- static close() {
- dialogState.isOpen = false;
- }
-
- @observable helmRepo = getEmptyRepo();
- @observable showOptions = false;
-
- @action
- close = () => {
- AddHelmRepoDialog.close();
- this.helmRepo = getEmptyRepo();
- this.showOptions = false;
- };
-
- setFilepath(type: FileType, value: string) {
- this.helmRepo[type] = value;
- }
-
- getFilePath(type: FileType) {
- return this.helmRepo[type];
- }
-
- async selectFileDialog(type: FileType, fileFilter: FileFilter) {
- const { canceled, filePaths } = await requestOpenFilePickingDialog({
- defaultPath: this.getFilePath(type),
- properties: ["openFile", "showHiddenFiles"],
- message: `Select file`,
- buttonLabel: `Use file`,
- filters: [
- fileFilter,
- { name: "Any", extensions: ["*"] },
- ],
- });
-
- if (!canceled && filePaths.length) {
- this.setFilepath(type, filePaths[0]);
- }
- }
-
- async addCustomRepo() {
- try {
- await HelmRepoManager.getInstance().addRepo(this.helmRepo);
- Notifications.ok((
- <>
- {"Helm repository "}
- {this.helmRepo.name}
- {" has been added."}
- >
- ));
- this.props.onAddRepo();
- this.close();
- } catch (err) {
- Notifications.error((
- <>
- {"Adding helm branch "}
- {this.helmRepo.name}
- {" has failed: "}
- {String(err)}
- >
- ));
- }
- }
-
- renderFileInput(placeholder:string, fileType:FileType, fileExtensions:string[]){
- return (
-
- this.setFilepath(fileType, v)}
- />
- this.selectFileDialog(fileType, { name: placeholder, extensions: fileExtensions })}
- tooltip="Browse"
- />
-
- );
- }
-
- renderOptions() {
- return (
- <>
-
- this.helmRepo.insecureSkipTlsVerify = v}
- />
- {this.renderFileInput("Key file", FileType.KeyFile, AddHelmRepoDialog.keyExtensions)}
- {this.renderFileInput("Ca file", FileType.CaFile, AddHelmRepoDialog.certExtensions)}
- {this.renderFileInput("Certificate file", FileType.CertFile, AddHelmRepoDialog.certExtensions)}
-
- this.helmRepo.username = v}
- />
- this.helmRepo.password = v}
- />
- >
- );
- }
-
- render() {
- const { ...dialogProps } = this.props;
-
- const header = Add custom Helm Repo
;
-
- return (
-
- );
- }
-}
diff --git a/src/renderer/components/+preferences/helm-charts.tsx b/src/renderer/components/+preferences/helm-charts.tsx
deleted file mode 100644
index d4f67902a6..0000000000
--- a/src/renderer/components/+preferences/helm-charts.tsx
+++ /dev/null
@@ -1,202 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-
-import styles from "./helm-charts.module.scss";
-
-import React from "react";
-import { observable, makeObservable, computed } from "mobx";
-
-import type { HelmRepo } from "../../../main/helm/helm-repo-manager";
-import { HelmRepoManager } from "../../../main/helm/helm-repo-manager";
-import { Button } from "../button";
-import { Icon } from "../icon";
-import { Notifications } from "../notifications";
-import type { SelectOption } from "../select";
-import { Select } from "../select";
-import { AddHelmRepoDialog } from "./add-helm-repo-dialog";
-import { observer } from "mobx-react";
-import { RemovableItem } from "./removable-item";
-import { Notice } from "../+extensions/notice";
-import { Spinner } from "../spinner";
-import { noop } from "../../utils";
-import type { SingleValue } from "react-select";
-
-@observer
-export class HelmCharts extends React.Component {
- @observable loadingRepos = false;
- @observable loadingAvailableRepos = false;
- @observable repos: HelmRepo[] = [];
- @observable addedRepos = observable.map();
-
- constructor(props: {}) {
- super(props);
- makeObservable(this);
- }
-
- @computed get repoOptions() {
- return this.repos.map(repo => ({
- value: repo,
- label: repo.name,
- isSelected: this.addedRepos.has(repo.name),
- }));
- }
-
- componentDidMount() {
- this.loadAvailableRepos().catch(noop);
- this.loadRepos().catch(noop);
- }
-
- async loadAvailableRepos() {
- this.loadingAvailableRepos = true;
-
- try {
- if (!this.repos.length) {
- this.repos = await HelmRepoManager.getInstance().loadAvailableRepos();
- }
- } catch (err) {
- Notifications.error(String(err));
- }
-
- this.loadingAvailableRepos = false;
- }
-
- async loadRepos() {
- this.loadingRepos = true;
-
- try {
- const repos = await HelmRepoManager.getInstance().repositories(); // via helm-cli
-
- this.addedRepos.replace(repos.map(repo => [repo.name, repo]));
- } catch (err) {
- Notifications.error(String(err));
- }
-
- this.loadingRepos = false;
- }
-
- async addRepo(repo: HelmRepo) {
- try {
- await HelmRepoManager.getInstance().addRepo(repo);
- this.addedRepos.set(repo.name, repo);
- } catch (err) {
- Notifications.error((
- <>
- {"Adding helm branch "}
- {repo.name}
- {" has failed: "}
- {String(err)}
- >
- ));
- }
- }
-
- async removeRepo(repo: HelmRepo) {
- try {
- await HelmRepoManager.getInstance().removeRepo(repo);
- this.addedRepos.delete(repo.name);
- } catch (err) {
- Notifications.error(
- <>
- {"Removing helm branch "}
- {repo.name}
- {" has failed: "}
- {String(err)}
- >,
- );
- }
- }
-
- onRepoSelect = async (option: SingleValue<{ value: HelmRepo }>): Promise => {
- if (!option) {
- return;
- }
-
- if (this.addedRepos.has(option.value.name)) {
- return void Notifications.ok((
- <>
- {"Helm repo "}
- {option.value.name}
- {" already in use."}
- >
- ));
- }
-
- await this.addRepo(option.value);
- };
-
- formatOptionLabel = ({ value, isSelected }: SelectOption) => (
-
- {value.name}
- {isSelected && (
-
- )}
-
- );
-
- renderRepositories() {
- const repos = Array.from(this.addedRepos);
-
- if (this.loadingRepos) {
- return
;
- }
-
- if (!repos.length) {
- return (
-
- The repositories have not been added yet
-
- );
- }
-
- return repos.map(([name, repo]) => {
- return (
- this.removeRepo(repo)}
- className="mt-3"
- >
-
-
- );
- });
- }
-
- render() {
- return (
-
-
-
-
-
-
this.loadRepos()}/>
-
- {this.renderRepositories()}
-
-
- );
- }
-}
diff --git a/src/renderer/components/+preferences/kubernetes.tsx b/src/renderer/components/+preferences/kubernetes.tsx
index 51f013f406..5305743530 100644
--- a/src/renderer/components/+preferences/kubernetes.tsx
+++ b/src/renderer/components/+preferences/kubernetes.tsx
@@ -4,9 +4,7 @@
*/
import { observer } from "mobx-react";
import React from "react";
-
-import { HelmCharts } from "./helm-charts";
-import { HelmCharts as HelmCharts2 } from "./kubernetes/helm-charts/helm-charts-2";
+import { HelmCharts } from "./kubernetes/helm-charts/helm-charts";
import { KubeconfigSyncs } from "./kubeconfig-syncs";
import { KubectlBinaries } from "./kubectl-binaries";
import { Preferences } from "./preferences";
@@ -27,7 +25,6 @@ export const Kubernetes = observer(() => (
diff --git a/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog-content.tsx b/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog-content.tsx
index 37309a7f80..0c254d91fb 100644
--- a/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog-content.tsx
+++ b/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog-content.tsx
@@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
-import "../../../add-helm-repo-dialog.scss";
+import "./add-helm-repo-dialog.scss";
import React from "react";
import { Wizard, WizardStep } from "../../../../wizard";
diff --git a/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog.tsx b/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog.tsx
index eec64cefb2..612ef7fdde 100644
--- a/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog.tsx
+++ b/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/activation-of-custom-helm-repository-dialog.tsx
@@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
-import "../../../add-helm-repo-dialog.scss";
+import "./add-helm-repo-dialog.scss";
import React from "react";
import { Dialog } from "../../../../dialog";
diff --git a/src/renderer/components/+preferences/add-helm-repo-dialog.scss b/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/add-helm-repo-dialog.scss
similarity index 100%
rename from src/renderer/components/+preferences/add-helm-repo-dialog.scss
rename to src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-custom-helm-repository/add-helm-repo-dialog.scss
diff --git a/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-public-helm-repository/activation-of-public-helm-repository.tsx b/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-public-helm-repository/activation-of-public-helm-repository.tsx
index 05d513bcbd..57c449e55b 100644
--- a/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-public-helm-repository/activation-of-public-helm-repository.tsx
+++ b/src/renderer/components/+preferences/kubernetes/helm-charts/activation-of-public-helm-repository/activation-of-public-helm-repository.tsx
@@ -39,21 +39,19 @@ const NonInjectedActivationOfPublicHelmRepository = observer(({
}));
return (
-
-
-
+
);
});
diff --git a/src/renderer/components/+preferences/helm-charts.module.scss b/src/renderer/components/+preferences/kubernetes/helm-charts/helm-charts.module.scss
similarity index 100%
rename from src/renderer/components/+preferences/helm-charts.module.scss
rename to src/renderer/components/+preferences/kubernetes/helm-charts/helm-charts.module.scss
diff --git a/src/renderer/components/+preferences/kubernetes/helm-charts/helm-charts-2.tsx b/src/renderer/components/+preferences/kubernetes/helm-charts/helm-charts.tsx
similarity index 100%
rename from src/renderer/components/+preferences/kubernetes/helm-charts/helm-charts-2.tsx
rename to src/renderer/components/+preferences/kubernetes/helm-charts/helm-charts.tsx
diff --git a/src/renderer/components/+preferences/kubernetes/helm-charts/helm-repositories.tsx b/src/renderer/components/+preferences/kubernetes/helm-charts/helm-repositories.tsx
index aab7cb9152..64f2523261 100644
--- a/src/renderer/components/+preferences/kubernetes/helm-charts/helm-repositories.tsx
+++ b/src/renderer/components/+preferences/kubernetes/helm-charts/helm-repositories.tsx
@@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
-import styles from "../../helm-charts.module.scss";
+import styles from "./helm-charts.module.scss";
import React from "react";