33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { EnvName } from "./interfaces";
|
|
import { determineInstalledOsVersion, MinVersionOverride } from "../util/index";
|
|
import { maybeGetDevice } from "../resources/selectors";
|
|
import { MW } from "./middlewares";
|
|
import { Everything } from "../interfaces";
|
|
import { Store, Action } from "redux";
|
|
import { Dispatch } from "redux";
|
|
import { createReminderFn } from "./upgrade_reminder";
|
|
|
|
const maybeRemindUserToUpdate = createReminderFn();
|
|
|
|
function getVersionFromState(state: Everything) {
|
|
const device = maybeGetDevice(state.resources.index);
|
|
const v =
|
|
determineInstalledOsVersion(state.bot, device) || MinVersionOverride.ALWAYS;
|
|
maybeRemindUserToUpdate(v);
|
|
return v;
|
|
}
|
|
|
|
const fn: MW =
|
|
(store: Store<Everything>) =>
|
|
(dispatch: Dispatch<Action<object>>) =>
|
|
// tslint:disable-next-line:no-any
|
|
(action: any) => {
|
|
const fbos = getVersionFromState(store.getState());
|
|
window.Rollbar?.configure({ payload: { fbos } });
|
|
return dispatch(action);
|
|
};
|
|
|
|
const env: EnvName = "*";
|
|
|
|
export const versionChangeMiddleware = { env, fn };
|