mirror of
https://github.com/lux-tel/session-desktop.git
synced 2026-10-30 20:33:24 +00:00
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { createSlice, type PayloadAction } from '@reduxjs/toolkit';
|
|
import type { TrArgs } from '../../localization/localeTools';
|
|
|
|
export type NetworkModalState = {
|
|
infoLoading: boolean;
|
|
/**
|
|
* Use to simulate a refresh of the data, when we have some data in the cache still valid (not stale)
|
|
*/
|
|
infoFakeRefreshing: boolean;
|
|
lastRefreshedTimestamp: number;
|
|
errorMessage: TrArgs | null;
|
|
};
|
|
|
|
export const initialNetworkModalState: NetworkModalState = {
|
|
infoLoading: false,
|
|
infoFakeRefreshing: false,
|
|
lastRefreshedTimestamp: 0,
|
|
errorMessage: null,
|
|
};
|
|
|
|
export const networkModalSlice = createSlice({
|
|
name: 'networkModal',
|
|
initialState: initialNetworkModalState,
|
|
reducers: {
|
|
setInfoLoading(state, action: PayloadAction<boolean>) {
|
|
state.infoLoading = action.payload;
|
|
return state;
|
|
},
|
|
setInfoFakeRefreshing(state, action: PayloadAction<boolean>) {
|
|
state.infoFakeRefreshing = action.payload;
|
|
return state;
|
|
},
|
|
setLastRefreshedTimestamp(state, action: PayloadAction<number>) {
|
|
state.lastRefreshedTimestamp = action.payload;
|
|
return state;
|
|
},
|
|
setErrorMessage(state, action: PayloadAction<TrArgs | null>) {
|
|
state.errorMessage = action.payload;
|
|
return state;
|
|
},
|
|
},
|
|
});
|
|
|
|
export const { setInfoLoading, setInfoFakeRefreshing, setLastRefreshedTimestamp, setErrorMessage } =
|
|
networkModalSlice.actions;
|
|
export default networkModalSlice.reducer;
|