CreatorCenter_OOIN/src/store/slices/discoverySlice.js

59 lines
1.5 KiB
JavaScript
Raw Normal View History

2025-05-15 10:42:39 +08:00
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
const mockCreators = [
{
id: 1,
sessions: 1,
creator: 12,
shoppableCreators: 12,
avgFollowers: 12,
avgGMV: 12,
avgVideoViews: 12,
date: '2021-01-01',
},
{
id: 2,
sessions: 2,
creator: 12,
shoppableCreators: 12,
avgFollowers: 12,
avgGMV: 12,
avgVideoViews: 12,
date: '2021-01-01',
},
];
export const fetchDiscovery = createAsyncThunk('discovery/fetchDiscovery', async (search) => {
// const response = await fetch('/api/discovery');
// return response.json();
return mockCreators;
});
const initialState = {
creators: [],
status: 'idle',
error: null,
};
const discoverySlice = createSlice({
name: 'discovery',
initialState,
reducers: {},
extraReducers: (builder) => {
builder
.addCase(fetchDiscovery.pending, (state) => {
state.status = 'loading';
})
.addCase(fetchDiscovery.fulfilled, (state, action) => {
state.status = 'succeeded';
state.creators = action.payload;
})
.addCase(fetchDiscovery.rejected, (state, action) => {
state.status = 'failed';
state.error = action.error.message;
});
},
});
export const {} = discoverySlice.actions;
export default discoverySlice.reducer;