Commit c43f1e34 by asranov0003

feat: add messenger history slice

parent e348e26e
import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";
import { sendRpcRequest } from "../../services/apiClient";
interface MessengerHistoryState {
messengerHistory: any[];
loading: boolean;
error: string | null;
}
const initialState: MessengerHistoryState = {
messengerHistory: [],
loading: false,
error: null,
};
export const fetchMessengerHistory = createAsyncThunk(
"messengerHistory/fetchMessengerHistory",
async (
{
deviceId,
dateFrom,
dateTo,
messengerId,
recStart,
}: {
deviceId: string;
dateFrom: Date;
dateTo: Date;
messengerId: number;
recStart: number;
},
{ rejectWithValue }
) => {
try {
const response = await sendRpcRequest("data.getcontent", {
deviceId,
type: messengerId,
dateFrom,
dateTo,
recStart: recStart,
recLimit: 500,
});
return response;
} catch (error: unknown) {
if (typeof error === "object" && error !== null && "message" in error) {
return rejectWithValue(error.message);
}
return rejectWithValue("Unknown error occurred");
}
}
);
const messengerHistorySlice = createSlice({
name: "messengerHistory",
initialState,
reducers: {},
extraReducers: (builder) => {
builder
.addCase(fetchMessengerHistory.pending, (state) => {
state.loading = true;
state.error = null;
})
.addCase(fetchMessengerHistory.fulfilled, (state, action) => {
state.loading = false;
state.messengerHistory = action.payload;
})
.addCase(fetchMessengerHistory.rejected, (state, action) => {
state.loading = false;
state.error = action.payload as string;
});
},
});
export default messengerHistorySlice.reducer;
......@@ -7,6 +7,7 @@ import commandSlice from "./slices/commandSlice";
import appsSlice from "./slices/appsSlice";
import browserHistorySlice from "./slices/browserHistorySlice";
import callHistorySlice from "./slices/callHistorySlice";
import messengerHistorySlice from "./slices/messengerHistorySlice";
import {
useDispatch,
useSelector,
......@@ -23,6 +24,7 @@ export const store = configureStore({
apps: appsSlice,
browserHistory: browserHistorySlice,
callHistory: callHistorySlice,
messengerHistory: messengerHistorySlice,
},
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment