34 lines
806 B
TypeScript
34 lines
806 B
TypeScript
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'
|
|
|
|
import axios from '../../axios-movies'
|
|
import { RootState } from '../index'
|
|
import { IMovieDetails } from './movieDetailsSlice'
|
|
|
|
const initialState: { data: IMovieDetails[] } = {
|
|
data: [],
|
|
}
|
|
|
|
export const getTopRatedAsync = createAsyncThunk<
|
|
any,
|
|
void,
|
|
{ state: RootState }
|
|
>('topRated/getTopRated', async () => {
|
|
const response = await axios.get(
|
|
`/movie/top_rated?api_key=${process.env.API_KEY}&language=en-US`
|
|
)
|
|
return response.data.results
|
|
})
|
|
|
|
const trendingSlice = createSlice({
|
|
name: 'topRated',
|
|
initialState,
|
|
reducers: {},
|
|
extraReducers: (builder) => {
|
|
builder.addCase(getTopRatedAsync.fulfilled, (state, { payload }) => {
|
|
state.data = payload
|
|
})
|
|
},
|
|
})
|
|
|
|
export default trendingSlice.reducer
|