7 |
8 | {
9 | quote && quote.quote &&
10 |
11 |
12 |
13 | {quote && quote.quote}
14 |
15 |
16 |
17 |
18 | }
19 |
20 | );
21 | }
22 |
--------------------------------------------------------------------------------
/src/RandomQuote/constants.js:
--------------------------------------------------------------------------------
1 | export const SET_QUOTE = '@randomQuote/SET_QUOTE';
2 | export const CLEAR_QUOTE = '@randomQuote/CLEAR_QUOTE';
3 | export const TOGGLE_BTN_DISABLE = '@randomQuote/TOGGLE_BTN_DISABLE';
4 |
--------------------------------------------------------------------------------
/src/RandomQuote/container.jsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import { connect } from 'react-redux';
3 | import RamdomQuote from './component';
4 | import { setQuote, clearQuote, disableButton } from './actions';
5 | import { getDataFromAPI } from '../HandleAPICalls/actions';
6 |
7 | class RamdomQuoteContainer extends Component {
8 | constructor(props) {
9 | super(props);
10 | this.getQuote = this.getQuote.bind(this);
11 | }
12 |
13 | getQuote() {
14 | this.props.disableButton(true);
15 | this.props.clearQuote();
16 |
17 | this.props.getDataFromAPI(
18 | 'https://api.quotable.io/random',
19 | 'GET',
20 | { per_page: 1, orderby: 'rand' },
21 | ({ author, content }) => {
22 | this.props.setQuote(content, author);
23 | this.props.disableButton(false);
24 | }
25 | // err => console.log(err),
26 | );
27 | }
28 |
29 | render() {
30 | const quote = this.props.quote;
31 | return