├── screenshot.png ├── .prettierrc ├── public ├── favicon.png ├── robots.txt └── index.html ├── src ├── components │ ├── Quote.css │ ├── Footer.css │ ├── __tests__ │ │ ├── __snapshots__ │ │ │ ├── Button.test.js.snap │ │ │ ├── Quote.test.js.snap │ │ │ ├── Footer.test.js.snap │ │ │ ├── Header.test.js.snap │ │ │ ├── Home.test.js.snap │ │ │ └── Calculator.test.js.snap │ │ ├── Home.test.js │ │ ├── Footer.test.js │ │ ├── Quote.test.js │ │ ├── Button.test.js │ │ ├── Header.test.js │ │ └── Calculator.test.js │ ├── Quote.js │ ├── Footer.js │ ├── Button.js │ ├── Home.js │ ├── Header.css │ ├── Header.js │ ├── Calculator.css │ └── Calculator.js ├── App.css ├── setupTests.js ├── App.test.js ├── index.js ├── reportWebVitals.js ├── index.css ├── App.js └── logic │ ├── operate.js │ ├── operate.test.js │ ├── calculate.test.js │ └── calculate.js ├── .babelrc ├── .stylelintrc.json ├── .gitignore ├── .github ├── workflows │ ├── deploy-to-gh-pages.yml │ └── linters.yml └── pull_request_template.md ├── .eslintrc.json ├── README.md ├── package.json └── LICENSE /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahangarha/MV-MathMagicians/HEAD/screenshot.png -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "singleQuote": true 5 | } 6 | -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahangarha/MV-MathMagicians/HEAD/public/favicon.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/components/Quote.css: -------------------------------------------------------------------------------- 1 | blockquote { 2 | max-width: 500px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | } 6 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-react" 4 | ], 5 | "plugins": ["@babel/plugin-syntax-jsx"] 6 | } -------------------------------------------------------------------------------- /src/components/Footer.css: -------------------------------------------------------------------------------- 1 | footer { 2 | text-align: center; 3 | padding: 2rem 1rem; 4 | background-color: #000; 5 | } 6 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | #tabs { 2 | width: 100%; 3 | max-width: 992px; 4 | margin: 0 auto; 5 | padding: 3rem 1rem; 6 | flex-grow: 1; 7 | } 8 | -------------------------------------------------------------------------------- /src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/components/__tests__/__snapshots__/Button.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Renders correctly 1`] = ` 4 | 11 | `; 12 | -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | it('renders branding title', () => { 5 | render(); 6 | const branding = screen.getByRole('heading', { name: 'Math Magicians' }); 7 | expect(branding).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /src/components/__tests__/Home.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Renderer from 'react-test-renderer'; 3 | import Home from '../Home'; 4 | 5 | it('Renders correctly', () => { 6 | const tree = Renderer 7 | .create() 8 | .toJSON(); 9 | 10 | expect(tree).toMatchSnapshot(); 11 | }); 12 | -------------------------------------------------------------------------------- /src/components/__tests__/Footer.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Renderer from 'react-test-renderer'; 3 | import Footer from '../Footer'; 4 | 5 | it('Renders correctly', () => { 6 | const tree = Renderer 7 | .create(