1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/extensions/survey/src/survey-preferences-store.ts
Lauri Nevala a0e24e0a4d
In-app survey extension (#1945)
* 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>
2021-02-04 18:22:22 +02:00

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>();