Use redux hooks on movies components

This commit is contained in:
Grégoire Delattre 2020-04-03 16:24:00 +02:00
parent 6ac382b659
commit 2e83c3169f
2 changed files with 27 additions and 37 deletions

View File

@ -1,35 +1,32 @@
import React from "react"; import React from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { List } from "immutable"; import { List } from "immutable";
import { connect } from "react-redux"; import { useDispatch } from "react-redux";
import { searchMovieSubtitles } from "../../actions/subtitles"; import { searchMovieSubtitles } from "../../actions/subtitles";
import { SubtitlesButton } from "../buttons/subtitles"; import { SubtitlesButton } from "../buttons/subtitles";
const movieSubtitlesButton = ({ export const MovieSubtitlesButton = ({
inLibrary, inLibrary,
imdbId, imdbId,
searching, searching,
searchMovieSubtitles,
subtitles, subtitles,
}) => ( }) => {
<SubtitlesButton const dispatch = useDispatch();
inLibrary={inLibrary}
searching={searching}
subtitles={subtitles}
search={() => searchMovieSubtitles(imdbId)}
/>
);
movieSubtitlesButton.propTypes = { return (
<SubtitlesButton
inLibrary={inLibrary}
searching={searching}
subtitles={subtitles}
search={() => dispatch(searchMovieSubtitles(imdbId))}
/>
);
};
MovieSubtitlesButton.propTypes = {
searching: PropTypes.bool, searching: PropTypes.bool,
inLibrary: PropTypes.bool, inLibrary: PropTypes.bool,
imdbId: PropTypes.string, imdbId: PropTypes.string,
searchMovieSubtitles: PropTypes.func,
subtitles: PropTypes.instanceOf(List), subtitles: PropTypes.instanceOf(List),
}; };
export const MovieSubtitlesButton = connect(null, { searchMovieSubtitles })(
movieSubtitlesButton
);

View File

@ -1,33 +1,26 @@
import React from "react"; import React from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { List } from "immutable"; import { List } from "immutable";
import { connect } from "react-redux"; import { useDispatch } from "react-redux";
import { getMovieDetails } from "../../actions/movies"; import { getMovieDetails } from "../../actions/movies";
import { TorrentsButton } from "../buttons/torrents"; import { TorrentsButton } from "../buttons/torrents";
const movieTorrentsButton = ({ export const MovieTorrentsButton = ({ torrents, imdbId, title, searching }) => {
torrents, const dispatch = useDispatch();
imdbId, return (
title, <TorrentsButton
searching, torrents={torrents}
getMovieDetails, searching={searching}
}) => ( search={() => dispatch(getMovieDetails(imdbId))}
<TorrentsButton url={`#/torrents/search/movies/${encodeURI(title)}`}
torrents={torrents} />
searching={searching} );
search={() => getMovieDetails(imdbId)} };
url={`#/torrents/search/movies/${encodeURI(title)}`} MovieTorrentsButton.propTypes = {
/>
);
movieTorrentsButton.propTypes = {
torrents: PropTypes.instanceOf(List), torrents: PropTypes.instanceOf(List),
imdbId: PropTypes.string, imdbId: PropTypes.string,
title: PropTypes.string, title: PropTypes.string,
searching: PropTypes.bool, searching: PropTypes.bool,
getMovieDetails: PropTypes.func, getMovieDetails: PropTypes.func,
}; };
export const MovieTorrentsButton = connect(null, { getMovieDetails })(
movieTorrentsButton
);