12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import { createSlice } from '@reduxjs/toolkit';
- import { ApiKeysState } from 'app/types';
- export const initialApiKeysState: ApiKeysState = {
- hasFetched: false,
- includeExpired: false,
- keys: [],
- keysIncludingExpired: [],
- searchQuery: '',
- };
- 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 };
- },
- },
- });
- export const { apiKeysLoaded, includeExpiredToggled, isFetching, setSearchQuery } = apiKeysSlice.actions;
- export const apiKeysReducer = apiKeysSlice.reducer;
- export default {
- apiKeys: apiKeysReducer,
- };
|