Advertisement
Guest User

Untitled

a guest
Jul 28th, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. export const setQuery = query => {
  2. return (dispatch, getState) => {
  3. dispatch(getMovies(query, getState().search.page))
  4. dispatch({
  5. type: 'SEARCH/SET_QUERY',
  6. payload: query
  7. })
  8. }
  9. }
  10.  
  11. const setMovies = movies => {
  12. return {
  13. type: 'SET_MOVIES',
  14. payload: movies
  15. }
  16. }
  17.  
  18. const setPages = pages => {
  19. return {
  20. type: 'SET_PAGES',
  21. payload: pages
  22. }
  23. }
  24.  
  25.  
  26.  
  27. export const getMovies = (query, page, discover) => {
  28.  
  29. return dispatch => {
  30. if (!query && !discover) {
  31. getPopularMovies(page)
  32. .then(r => {
  33. dispatch(setPages(r.total_pages))
  34. dispatch(setMovies(r.results))
  35. })
  36. }
  37. else if (discover) {
  38. console.log(discover)
  39. getMoviesByDiscover(discover, page)
  40. .then(r => {
  41. dispatch(setPages(r.total_pages))
  42. dispatch(setMovies(r.results))
  43. })
  44. }
  45. else {
  46. searchMovies(query, page)
  47. .then(r => {
  48. dispatch(setPages(r.total_pages))
  49. dispatch(setMovies(r.results))
  50. })
  51. }
  52. }
  53. }
  54.  
  55.  
  56. export const setPage = page => {
  57. return (dispatch, getState) => {
  58. dispatch(getMovies(
  59. getState().search.query,
  60. page,
  61. getState().search.genres
  62. ))
  63. return {
  64. type: 'SEARCH/SET_PAGE',
  65. payload: page
  66. }
  67. }
  68. }
  69.  
  70. export const setGenre = genre => {
  71. return (dispatch, getState) => {
  72. dispatch(getMovies(
  73. null,
  74. getState().search.page,
  75. [...getState().search.genres, genre]
  76. ))
  77. return {
  78. type: 'SEARCH/SET_GENRE',
  79. payload: genre
  80. }
  81. }
  82. }
  83.  
  84. export const removeGenre = genre => {
  85. return (dispatch, getState) => {
  86. dispatch(getMovies(
  87. null,
  88. getState().search.page,
  89. [...getState().search.genres.filter(g => g !== genre)]
  90. ))
  91. return {
  92. type: 'SEARCH/REMOVE_GENRE',
  93. payload: genre
  94. }
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement