initial telemetry extension

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen committed 2020-10-09 18:25:15 +03:00
1 parent 4f98a01a8b
commit 734be8a4c3
28 files changed
+3832 -48

No files matched your search

@@ -0,0 +1,23 @@
import { Checkbox } from "@lens/ui-extensions"
import React from "react"
import { TelemetryPreferencesStore } from "./telemetry-preferences-store"
export class TelemetryPreferenceInput extends React.Component<{telemetry: TelemetryPreferencesStore}, {}> {
render() {
return (
<Checkbox
label="Allow telemetry & usage tracking"
value={this.props.telemetry.enabled}
onChange={v => this.props.telemetry.enabled = v}
/>
)
}
}
export class TelemetryPreferenceHint extends React.Component {
render() {
return (
<span>Telemetry & usage data is collected to continuously improve the Lens experience.</span>
)
}
}
@@ -0,0 +1,31 @@
import { BaseStore } from "@lens/extensions";
import { toJS } from "mobx"
export type TelemetryPreferencesModel = {
enabled: boolean;
}
export class TelemetryPreferencesStore extends BaseStore<TelemetryPreferencesModel> {
private constructor() {
super({
configName: "telemetry-preferences-store",
})
this.data.enabled = true
}
get enabled() {
return this.data.enabled
}
set enabled(v: boolean) {
this.data.enabled = v
}
toJSON(): TelemetryPreferencesModel {
return toJS({
enabled: this.data.enabled
}, {
recurseEverything: true
})
}
}