import React from 'react'; import {useDispatch, useSelector} from "react-redux"; import {Button, CircularProgress} from '@material-ui/core'; import { makeStyles, createStyles } from '@material-ui/styles'; import { green } from '@material-ui/core/colors'; import {fetchVariationsAsync, selectVariationsLoadingStatus} from "../../slices/editorSlice"; const useStyles = makeStyles( createStyles({ buttonProgress: { color: green[500], position: 'absolute', top: '50%', left: '50%', marginTop: -12, marginLeft: -12, }, }), ); export default function FetchVariationsButton() { const styles = useStyles(); const dispatch = useDispatch(); const isLoading = useSelector(selectVariationsLoadingStatus); const fetchOutputs = () => { dispatch(fetchVariationsAsync()); }; return ( <Button variant="contained" size="large" color="primary" onClick={fetchOutputs} disabled={isLoading} >{isLoading && ( <CircularProgress size={24} className={styles.buttonProgress}/> )} Generate</Button> ); }