Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
api-keys
/
state
/
File Content:
reducers.ts
import { createSlice } from '@reduxjs/toolkit'; import { ApiKeysState } from 'app/types'; export const initialApiKeysState: ApiKeysState = { hasFetched: false, includeExpired: false, keys: [], keysIncludingExpired: [], searchQuery: '', migrationResult: { total: 0, migrated: 0, failed: 0, failedApikeyIDs: [0], failedDetails: [], }, }; const apiKeysSlice = createSlice({ name: 'apiKeys', initialState: initialApiKeysState, reducers: { apiKeysLoaded: (state, action): ApiKeysState => { const { keys, keysIncludingExpired } = action.payload; const includeExpired = action.payload.keys.length === 0 && action.payload.keysIncludingExpired.length > 0 ? true : state.includeExpired; return { ...state, hasFetched: true, keys, keysIncludingExpired, includeExpired }; }, setSearchQuery: (state, action): ApiKeysState => { return { ...state, searchQuery: action.payload }; }, includeExpiredToggled: (state): ApiKeysState => { return { ...state, includeExpired: !state.includeExpired }; }, isFetching: (state): ApiKeysState => { return { ...state, hasFetched: false }; }, setMigrationResult: (state, action): ApiKeysState => { return { ...state, migrationResult: action.payload }; }, }, }); export const { apiKeysLoaded, includeExpiredToggled, isFetching, setSearchQuery, setMigrationResult } = apiKeysSlice.actions; export const apiKeysReducer = apiKeysSlice.reducer; export default { apiKeys: apiKeysReducer, };
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
actions.ts
1475 bytes
0644
reducers.test.ts
1768 bytes
0644
reducers.ts
1569 bytes
0644
selectors.test.ts
4518 bytes
0644
selectors.ts
694 bytes
0644
N4ST4R_ID | Naxtarrr