openreplay/frontend/app/mstore/settingsStore.ts
2022-06-30 12:57:19 +02:00

45 lines
1.4 KiB
TypeScript

import { makeAutoObservable, observable, action } from "mobx"
import SessionSettings from "./types/sessionSettings"
import { sessionService } from "App/services"
import { toast } from 'react-toastify';
export default class SettingsStore {
loadingCaptureRate: boolean = false;
sessionSettings: SessionSettings = new SessionSettings()
captureRateFetched: boolean = false;
limits: any = null;
constructor() {
makeAutoObservable(this, {
sessionSettings: observable,
})
}
saveCaptureRate(data: any) {
return sessionService.saveCaptureRate(data)
.then(data => data.json())
.then(({ data }) => {
this.sessionSettings.merge({
captureRate: data.rate,
captureAll: data.captureAll
})
toast.success("Settings updated successfully");
}).catch(err => {
toast.error("Error saving capture rate");
})
}
fetchCaptureRate(): Promise<any> {
this.loadingCaptureRate = true;
return sessionService.fetchCaptureRate()
.then(data => {
this.sessionSettings.merge({
captureRate: data.rate,
captureAll: data.captureAll
})
this.captureRateFetched = true;
}).finally(() => {
this.loadingCaptureRate = false;
})
}
}