diff --git a/extensions/survey/renderer.tsx b/extensions/survey/renderer.tsx
index c740015634..0a8d8a678a 100644
--- a/extensions/survey/renderer.tsx
+++ b/extensions/survey/renderer.tsx
@@ -8,6 +8,7 @@ export default class SurveyRendererExtension extends LensRendererExtension {
appPreferences = [
{
title: "In-App Surveys",
+ showInPreferencesTab: "telemetry",
components: {
Hint: () => ,
Input: () =>
diff --git a/extensions/telemetry/renderer.tsx b/extensions/telemetry/renderer.tsx
index d8ba4225df..15fda68ede 100644
--- a/extensions/telemetry/renderer.tsx
+++ b/extensions/telemetry/renderer.tsx
@@ -8,6 +8,7 @@ export default class TelemetryRendererExtension extends LensRendererExtension {
appPreferences = [
{
title: "Telemetry & Usage Tracking",
+ showInPreferencesTab: "telemetry",
id: "telemetry-tracking",
components: {
Hint: () => ,
diff --git a/src/extensions/registries/app-preference-registry.ts b/src/extensions/registries/app-preference-registry.ts
index e6b5d93cb2..0bbb537fa5 100644
--- a/src/extensions/registries/app-preference-registry.ts
+++ b/src/extensions/registries/app-preference-registry.ts
@@ -9,6 +9,7 @@ export interface AppPreferenceComponents {
export interface AppPreferenceRegistration {
title: string;
id?: string;
+ showInPreferencesTab?: string;
components: AppPreferenceComponents;
}
diff --git a/src/renderer/components/+preferences/preferences.tsx b/src/renderer/components/+preferences/preferences.tsx
index ebb40cfb3f..a743a03670 100644
--- a/src/renderer/components/+preferences/preferences.tsx
+++ b/src/renderer/components/+preferences/preferences.tsx
@@ -6,7 +6,7 @@ import { disposeOnUnmount, observer } from "mobx-react";
import { userStore } from "../../../common/user-store";
import { isWindows } from "../../../common/vars";
-import { appPreferenceRegistry } from "../../../extensions/registries/app-preference-registry";
+import { appPreferenceRegistry, RegisteredAppPreference } from "../../../extensions/registries/app-preference-registry";
import { themeStore } from "../../theme.store";
import { Input } from "../input";
import { PageLayout } from "../layout/page-layout";
@@ -22,6 +22,7 @@ enum PreferencesTab {
Application = "application",
Proxy = "proxy",
Kubernetes = "kubernetes",
+ Telemetry = "telemetry",
Extensions = "extensions",
Other = "other"
}
@@ -59,6 +60,8 @@ export class Preferences extends React.Component {
};
renderNavigation() {
+ const extensions = appPreferenceRegistry.getItems().filter(e => !e.showInPreferencesTab);
+
return (
Preferences
@@ -78,10 +81,17 @@ export class Preferences extends React.Component {
active={this.activeTab == PreferencesTab.Kubernetes}
/>
+ {extensions.length > 0 &&
+
+ }
+
+
+
+ );
+ }
+
render() {
const { preferences } = userStore;
+ const extensions = appPreferenceRegistry.getItems();
+ const telemetryExtensions = extensions.filter(e => e.showInPreferencesTab == PreferencesTab.Telemetry);
let defaultShell = process.env.SHELL || process.env.PTYSHELL;
if (!defaultShell) {
@@ -190,23 +217,17 @@ export class Preferences extends React.Component {
)}
+ {this.activeTab == PreferencesTab.Telemetry && (
+
+ Telemetry
+ {telemetryExtensions.map(this.renderExtension)}
+
+ )}
+
{this.activeTab == PreferencesTab.Extensions && (
Extensions
- {appPreferenceRegistry.getItems().map(({ title, id, components: { Hint, Input } }) => {
- return (
- <>
-
-
- >
- );
- })}
+ {extensions.filter(e => !e.showInPreferencesTab).map(this.renderExtension)}
)}