clearml-web/src/app/core/reducers/usage-stats.reducer.ts
shyallegro 07d90efe15
Release v1.3 (#19)
Co-authored-by: shyallegro <support@allegro.ai>
2022-03-15 15:46:26 +02:00

37 lines
1.2 KiB
TypeScript

import {Action, createReducer, on, createSelector} from '@ngrx/store';
import {setUsageStats} from '../actions/usage-stats.actions';
export const userStatsFeatureKey = 'userStats';
export interface UsageStatState {
allowed: boolean;
currVersion: string;
allowedVersion: string;
}
export const initialState: UsageStatState = {
allowed: null,
currVersion: '',
allowedVersion: ''
};
const _statsReducer = createReducer(initialState,
on(setUsageStats, (state: UsageStatState, newState) => ({...state, ...newState}))
);
export const usageStatsReducer = (state = initialState, action: Action) => _statsReducer(state, action);
export const selectSendStats = state => state.userStatsFeatureKey;
export const selectAllowed = createSelector(selectSendStats, (state) => state?.allowed);
export const selectCurrentVersion = createSelector(selectSendStats, (state) => state?.currVersion);
export const selectAllowedVersion = createSelector(selectSendStats, (state) => state?.allowedVersion);
export const selectPromptUser = createSelector(
selectCurrentVersion,
selectAllowedVersion,
selectAllowed,
(currentVer, allowedVer, allowed) => !allowed && currentVer !== allowedVer
);