All files / app/store/settings settings.reducer.ts

0% Statements 0/12
100% Branches 0/0
0% Functions 0/5
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27                                                     
import { RootState } from '..';
import { grantDiagnosticsPermission, revokeDiagnosticPermission } from './settings.actions';
import { createReducer, createSelector } from '@reduxjs/toolkit';
 
export interface SettingsState {
  diagnosticPermission: boolean | undefined;
}
 
const initialState: SettingsState = { diagnosticPermission: undefined };
 
function setDiagnosticPermissionTo(givenPermission: boolean) {
  return (state: SettingsState) => ({ ...state, diagnosticPermission: givenPermission });
}
 
export const settingsReducer = createReducer(initialState, builder =>
  builder
    .addCase(grantDiagnosticsPermission, setDiagnosticPermissionTo(true))
    .addCase(revokeDiagnosticPermission, setDiagnosticPermissionTo(false))
);
 
export const selectSettingsState = (state: RootState) => state.settings;
 
export const selectHasUserGivenDiagnosticPermission = createSelector(
  selectSettingsState,
  state => state.diagnosticPermission
);