import React from 'react';
import { useDispatch, useSelector } from 'react-redux';

import { getLiveStreams } from '../../../store/reducers/twitchReducer';
import { RootState } from '../../../store/reducers/rootReducer';
import { makeStyles } from '@material-ui/core/styles';
import { Button } from '@material-ui/core';
import SyncIcon from '@material-ui/icons/Sync';
import { Link } from 'react-router-dom';
import SettingsIcon from '@material-ui/icons/Settings';
import { AppDispatch } from '../../../store/store';

const useStyles = makeStyles({
    root: {
        display: 'flex',
        justifyContent: 'center',
        paddingTop: 3,
        paddingBottom: 8,
    },
    button: {
        textTransform: 'none',
        marginLeft: 10,
    },
});

export const LiveStreamFooter = () => {
    const classes = useStyles();
    const dispatch: AppDispatch = useDispatch();

    const { loading } = useSelector((state: RootState) => state.common);

    return (
        <div className={classes.root}>
            {!loading && (
                <Button
                    className={classes.button}
                    variant="outlined"
                    color="default"
                    size={'small'}
                    disabled={loading}
                    startIcon={<SyncIcon />}
                    onClick={() => dispatch(getLiveStreams())}
                >
                    Refresh
                </Button>
            )}

            <Button
                component={Link}
                className={classes.button}
                variant="outlined"
                size={'small'}
                disabled={loading}
                startIcon={<SettingsIcon />}
                to="/settings"
            >
                Settings
            </Button>
        </div>
    );
};