diff options
Diffstat (limited to 'src/pages/Timer/Timer.tsx')
| -rw-r--r-- | src/pages/Timer/Timer.tsx | 102 | 
1 files changed, 0 insertions, 102 deletions
diff --git a/src/pages/Timer/Timer.tsx b/src/pages/Timer/Timer.tsx deleted file mode 100644 index a890815..0000000 --- a/src/pages/Timer/Timer.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import React from 'react'; - -import { post } from '../../requests'; - -import { -  Window, -  ContentSection, -  SmartList, -} from 'react-benzin'; -import { User, Solution, RenderPropTypes } from '../../types'; - -import TimerButton from './TimerButton'; -import SolutionCard from '../../components/SolutionCard/SolutionCard'; - -import { Button, makeStyles } from '@material-ui/core'; - - -const useStyles = makeStyles(theme => ({ -  primary: { -    padding: theme.spacing(4), -  }, -  cell: { -    padding: theme.spacing(5), -  }, -})); - - -interface PropTypes { -  user: User; -  recentSolutions: Solution[]; -  setRecentSolutions: (newRecentSolutions: Solution[]) => void; -  setPage: (newPage: string) => void; -} - - -const Timer: React.FC<PropTypes> = ({ user, recentSolutions, setRecentSolutions, setPage }) => { -  const classes = useStyles(); - -  const registerResult = (result: string): void => { -    const solution = { 'author_id': user.id, result }; -    post('solutions/', solution).then(response => { -      setRecentSolutions([response.data].concat(recentSolutions)); -    }); -  }; - -  const handleLearnMore = (): void => { -    setPage('contribute'); -  }; - -  const handleLogin = (): void => { -    setPage('profile'); -  }; - -  const removeSolution = (id: number): void => { -    setRecentSolutions(recentSolutions.filter((solution => solution.id !== id))); -  }; - -  const renderItem: React.FC<RenderPropTypes> = ({ index, style }) => { -    const solution = recentSolutions[index]; -    return ( -      <div style={style} className={classes.cell}> -        <SolutionCard data={solution} removeThisCard={removeSolution} /> -      </div> -    ); -  }; - -  return ( -    <> -      <Window type="primary"> -        <div className={classes.primary}> -          <ContentSection sectionName="Welcome to ChronoCube!"> -            <p> -              ChronoCube is a professional speedcubing timer. -              Share your results publicly - let everyone see your progress and -              achievements! -              Every speedcuber will benefit -              from using it - both amateur and professional! -            </p> -            <Button variant="contained" color="primary" onClick={handleLearnMore}> Learn more </Button> -          </ContentSection> -          {user.id === null && -          <ContentSection sectionName="Log into an account"> -            <p> Tell us your name so we can track your progress</p> -            <Button variant="contained" color="primary" onClick={handleLogin} size="large"> Login </Button> -          </ContentSection> -          } -          <TimerButton registerResult={registerResult} /> -        </div> -      </Window> -      <Window type="secondary" name="Recent solutions"> -        <SmartList -          itemSize={270} -          itemCount={recentSolutions.length} -          renderItem={renderItem} -        /> -      </Window> -    </> -  ); -}; - - -export default Timer;  |