mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Initial in-app survey implementation Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> * Add surveyId fetching and store integration Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> * Add empty line Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> * Fix typos Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> * Use async version of machineId + refactoring Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> * Update preferences hint text Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
37 lines
797 B
TypeScript
37 lines
797 B
TypeScript
import { Store } from "@k8slens/extensions";
|
|
import { observable, toJS, when } from "mobx";
|
|
|
|
export type SurveyPreferencesModel = {
|
|
enabled: boolean;
|
|
};
|
|
|
|
export class SurveyPreferencesStore extends Store.ExtensionStore<SurveyPreferencesModel> {
|
|
|
|
@observable enabled = true;
|
|
|
|
whenEnabled = when(() => this.enabled);
|
|
|
|
private constructor() {
|
|
super({
|
|
configName: "preferences-store",
|
|
defaults: {
|
|
enabled: true
|
|
}
|
|
});
|
|
}
|
|
|
|
protected fromStore({ enabled }: SurveyPreferencesModel): void {
|
|
this.enabled = enabled;
|
|
}
|
|
|
|
toJSON(): SurveyPreferencesModel {
|
|
return toJS({
|
|
enabled: this.enabled
|
|
}, {
|
|
recurseEverything: true
|
|
});
|
|
}
|
|
}
|
|
|
|
export const surveyPreferencesStore = SurveyPreferencesStore.getInstance<SurveyPreferencesStore>();
|