mirror of
https://github.com/clearml/clearml-web
synced 2025-06-26 18:27:02 +00:00
37 lines
1.2 KiB
TypeScript
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
|
|
);
|