From 43f202e0e656e8de8a8de3773ac86e3da697251d Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 14:55:18 +0200 Subject: [PATCH 01/21] Add files via upload --- code/public/favicon.ico | Bin 0 -> 894 bytes code/public/index.html | 29 +++++++++-------------------- code/public/og-image-survey.jpg | Bin 0 -> 83647 bytes 3 files changed, 9 insertions(+), 20 deletions(-) create mode 100644 code/public/favicon.ico create mode 100644 code/public/og-image-survey.jpg diff --git a/code/public/favicon.ico b/code/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ce14c9ff45db62dfae22e9a3679ff2076edf71de GIT binary patch literal 894 zcmZQzU<5(|0R|u`!H~hsz#zuJz@P!dKp_SNAO?xUfG{@$0|<|T(GVC70m?%F0MAze AY5)KL literal 0 HcmV?d00001 diff --git a/code/public/index.html b/code/public/index.html index e6730aa66..3628cf3ee 100644 --- a/code/public/index.html +++ b/code/public/index.html @@ -4,31 +4,20 @@ - - Technigo React App + + + + + + + + + Big Dada's Gym
- diff --git a/code/public/og-image-survey.jpg b/code/public/og-image-survey.jpg new file mode 100644 index 0000000000000000000000000000000000000000..362d30deee8a9543bf321bd07ebac0cfd0c8c627 GIT binary patch literal 83647 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≦|kS;^J4fo-(!K2z58YfhonlA&&gI;jd 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 o^LHDNf9oOtO+ov&9`Zv${awi Date: Mon, 20 Mar 2023 14:56:28 +0200 Subject: [PATCH 02/21] Update App.js --- code/src/App.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/code/src/App.js b/code/src/App.js index f2007d229..1fdfaa428 100644 --- a/code/src/App.js +++ b/code/src/App.js @@ -1,9 +1,60 @@ -import React from 'react'; +import React, { useState } from 'react'; +import { Name } from './components/Name'; +import { Kilograms } from './components/Kilograms'; +import { Level } from './components/Level'; +import { Reps } from './components/Reps'; +import { Result } from './components/Result'; export const App = () => { + const [step, setStep] = useState(1); + const [name, setName] = useState(''); + const [kilo, setKilo] = useState(''); + const [reps, setReps] = useState(''); + const [level, setLevel] = useState(); + + const handleStepIncrease = () => { + setStep(step + 1); + } + return ( -
- Find me in src/app.js! +
+
+ {step === 1 && ( + + + )} + {step === 2 && ( + + )} + {step === 3 && ( +
+

All right,

+

{name}

+

Your best at the gym?

+
+

kg

+

reps

+
+
+ + +
+
+ )} + {step === 4 && ( + + )} + {step < 4 && ( +
+ {/*

Current step: {step}

*/} + +
+ )} +
); } From 81e5c6e19ef399ae0cee04151cfae5586fb9f91d Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 14:57:11 +0200 Subject: [PATCH 03/21] Update index.css --- code/src/index.css | 567 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 564 insertions(+), 3 deletions(-) diff --git a/code/src/index.css b/code/src/index.css index 4a1df4db7..876041954 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -1,13 +1,574 @@ +*, +*:before, +*:after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +:root { + --primary: #002a3a; + --secondary: #FBF8F3; + --third: #ff8f33; + --dark-box-shadow: 5px 7px 41px 9px rgba(255,255,255,0.8),6px 6px 25px -10px rgba(255,255,255,0.8); +} + + body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; + font-family: "Sora", "Helvetica Neue", "Helvetica", "Arial", sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; +background: var(--primary); +color: var(--secondary); + } + + code { font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; } + +p { + + font-size: 28px; + font-weight: 600; + font-family: "Sora", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + margin: 30px, 0, 0, 30px; +} + + +.page-one-container { + + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin-top: 60px; +} + +.page-one-title { + font-size: 28px; + margin-bottom: 0; + font-weight: 800; +} + +.page-one-sub-title { + font-size: 28px; + margin-top: 4px; + font-weight: 800; +} + +.page-one-question { + font-size: 18px; + margin-top: 100px; + font-weight: 800; +} + +.yes-no-buttton { + + margin-top: 60px; + font-size: 18px; + font-weight: 800; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + line-height: 2.1; + display: flex; + gap: 6em; +} + +input[type="radio"] { + display: grid; + place-content: center; + appearance: none; + background-color: var(--secondary); + margin: 0; + margin-left:6px; + font: inherit; + color: var(--third); + width: 1.15em; + height: 1.15em; + border: 0.15em solid var(--secondary); + border-radius: 50%; + cursor: pointer; +} + +input[type="radio"]::before { + content: ""; + width: 0.65em; + height: 0.65em; + border-radius: 50%; + transform: scale(0); + transition: 120ms transform ease-in-out; + box-shadow: inset 1em 1em var(--third); + cursor: pointer; +} + + +input[type="radio"]:checked::before { + transform: scale(1); + cursor: pointer; +} + + + +.button_container{ + +position: absolute; +top: 364px; +left: calc(50% - 28px); +} + +.button-next { + font-size: 28px; + margin-bottom: 0; + font-weight: 800; + background-color: transparent; + border: none; + color: var(--third); + margin-top:100px; + cursor:pointer; +} + + +.page-two-question { + font-size: 18px; + margin-top: 90px; + font-weight: 800; +} + +.input-field { + margin-top: 40px; + font-size: 20px; + text-align: center; + width: 70%; + font-weight: 600; + color: rgb(63, 62, 62); + font-family: "Sora", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + padding: 10px; + border: none; + padding: 12px 20px; + margin: 8px 0; + box-sizing: border-box; + background-color: #d4d3d3; + -webkit-transition: 0.5s; + transition: 0.5s; + outline: none; +} + +input[type=text]:focus { + background-color: var(--secondary); +} + +.radio-buttons { + font-size: 28px; + font-weight: 600; +} + +.page-three-question { + font-size: 18px; + margin-top: 80px; + font-weight: 800; +} + +.kg-reps { + +display: flex; +align-items: center; +justify-content: center; +gap:90px; +margin-top: 40px; + +} + +.page-three-kg { + font-size: 18px; + font-weight: 800; + margin-left: 10px; + +} + +.page-three-reps { + font-size: 18px; + font-weight: 800; + +} + +.set-kg-reps { + + display: flex; +align-items: center; +justify-content: center; +gap: 36px; +margin-top: 10px; +margin-left:10px; +} + +.kilograms { + margin-top: 40px; + font-size: 20px; + text-align: center; + width: 80px; + font-weight: 600; + color: rgb(63, 62, 62); + font-family: "Sora", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + border: none; + padding: 10px 10px; + margin: 10px 0; + box-sizing: border-box; + background-color: #d4d3d3; + -webkit-transition: 0.5s; + transition: 0.5s; + outline: none; +} + +.kilograms[type=number]:focus { + background-color: var(--secondary); +} + + +.reps select { + display: none; /*hide original SELECT element: */ +} + +.reps-selected { + background-color: DodgerBlue; +} + +/* Style the arrow inside the select element: */ +.select-selected:after { + position: absolute; + content: ""; + top: 14px; + right: 10px; + width: 0; + height: 0; + border: 6px solid transparent; + border-color: #fff transparent transparent transparent; +} + +/* Point the arrow upwards when the select box is open (active): */ +.select-selected.select-arrow-active:after { + border-color: transparent transparent #fff transparent; + top: 7px; +} + + + +/* style the items (options), including the selected item: */ +.select-items div,.select-selected { + color: #ffffff; + padding: 8px 16px; + border: 1px solid transparent; + border-color: transparent transparent rgba(0, 0, 0, 0.1) transparent; + cursor: pointer; +} + +/* Style items (options): */ +.select-items { + position: absolute; + background-color: DodgerBlue; + top: 100%; + left: 0; + right: 0; + z-index: 99; +} + +/* Hide the items when the select box is closed: */ +.select-hide { + display: none; +} + +.select-items div:hover, .same-as-selected { + background-color: rgba(0, 0, 0, 0.1); +} + + +.reps { + position:relative; + margin-top: 40px; + font-size: 20px; + text-align: center; + width: 80px; + font-weight: 600; + color: rgb(63, 62, 62); + font-family: "Sora", "Helvetica Neue", "Helvetica", "Arial", sans-serif; + border: none; + padding: 10px 10px; + margin: 10px 8px; + box-sizing: border-box; + background-color: #d4d3d3; + -webkit-transition: 0.5s; + transition: 0.5s; + outline: none; +} + +.reps[type=number]:focus { + background-color: var(--secondary); + +} + + +/* Chrome, Safari, Edge, Opera */ +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ +input[type=number] { + -moz-appearance: textfield; + appearance: textfield; +} + + +.one-rep-max-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin-top: 44px; + +} + + + + + +.one-rep-max-name { + font-size: 28px; + margin-bottom: 0; + font-weight: 800; +} + +.one-rep-max-text { + font-size: 28px; + margin-top: 4px; + font-weight: 800; +} + +.one-rep-max-kg { + font-size: 42px; + margin-top: 32px; + font-weight: 800; +} + +.reps-and-worksets-combo { +display: grid; +grid-template-columns: 1fr 1fr; +gap: 80px; +margin-left: auto; +margin-right: auto; +margin-top: 38px; +max-width: 240px; +width: 240px; + +} + + + + +.one-rep-max-reps { + display: flex; + justify-content: center; + font-size: 18px; + +} + + + +.close_button_container{ + + position: absolute; + top: 90%; + left: calc(50% - 10px); + } + + +.close_button{ + display: flex; + align-items: center; + justify-content: center; + font-size: 24px; + color: var(--third); + font-weight: 900; + margin-top: 24px; + background-color: transparent; + cursor: pointer; + border: none; + margin: 0; + + +} + + + + + + +@media (min-width: 380px) { + + .page-one-container { + margin-top: 120px; + } + + + .page-one-sub-title { + + margin-top: 4px; + + } + + .page-one-question { + font-size: 18px; + margin-top: 170px; + font-weight: 800; + } + + .button_container{ + + position: absolute; + top: 650px; + left: calc(50% - 28px); + } + + + .page-two-question { + + margin-top: 170px; + + } + + .input-field { + margin-top: 20px; + } + + .page-three-question { + + margin-top: 150px; + + } + + + .one-rep-max-container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin-top: 90px; + + } + + + + + + .one-rep-max-name { + font-size: 28px; + margin-bottom: 0; + font-weight: 800; + } + + .one-rep-max-text { + font-size: 28px; + margin-top: 4px; + font-weight: 800; + } + + .one-rep-max-kg { + font-size: 58px; + margin-top: 50px; + font-weight: 800; + } + + + .reps-and-worksets-combo { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 70px; + margin-left: auto; + margin-right: auto; + margin-top: 58px; + max-width: 240px; + width: 240px; + + } + + + .one-rep-max-reps { + display: flex; + justify-content: center; + font-size: 20px; + + } + + + + .close_button_container{ + + position: absolute; + top: 760px; + left: calc(50% - 10px); + max-height: 100px; + } + + + .close_button{ + display: flex; + align-items: center; + justify-content: center; + font-size: 24px; + color: var(--third); + font-weight: 900; + margin-top: 24px; + background-color: transparent; + cursor: pointer; + border: none; + margin: 0; + + + } + + } + + @media (min-width: 480px) { + .gym_app_container { + display: flex; + justify-content: center; + align-items: center; + } + + .gym-app { + max-width: 540px; + max-height: 902px; + height: 902px; + border-radius: 10px; + box-shadow: var(--dark-box-shadow); + + + transform: scale(0.84); + align-self: center; + display: flex; + margin-left: auto; + margin-right: auto; + padding-left: 20px; + padding-right: 20px; + padding-top: 0; + padding-bottom: 0; + position: relative; + border-radius: 1rem; + box-shadow: var(--light-box-shadow); + + } + + + } + + + From a156cb21e6ca7eef81da228128a079e4a4489c63 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 14:57:53 +0200 Subject: [PATCH 04/21] Update index.js --- code/src/index.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/src/index.js b/code/src/index.js index 99f6d0de7..84eb42916 100644 --- a/code/src/index.js +++ b/code/src/index.js @@ -1,8 +1,6 @@ -import React from 'react'; -import { createRoot } from 'react-dom/client' +import React from 'react' +import ReactDOM from 'react-dom' import './index.css' import { App } from './App' -const container = document.getElementById('root'); -const root = createRoot(container); -root.render(); +ReactDOM.render(, document.getElementById('root')) From 04ffd910a44b0e4a8e18f268f44d9e7233f90172 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 14:58:44 +0200 Subject: [PATCH 05/21] Add files via upload --- code/components/Button.js | 28 ++++++++++++++++++++ code/components/Kilograms.js | 11 ++++++++ code/components/Level.js | 32 +++++++++++++++++++++++ code/components/Name.js | 24 +++++++++++++++++ code/components/OneRepMax.js | 20 +++++++++++++++ code/components/Reps.js | 31 ++++++++++++++++++++++ code/components/Result.js | 50 ++++++++++++++++++++++++++++++++++++ 7 files changed, 196 insertions(+) create mode 100644 code/components/Button.js create mode 100644 code/components/Kilograms.js create mode 100644 code/components/Level.js create mode 100644 code/components/Name.js create mode 100644 code/components/OneRepMax.js create mode 100644 code/components/Reps.js create mode 100644 code/components/Result.js diff --git a/code/components/Button.js b/code/components/Button.js new file mode 100644 index 000000000..dc135ad37 --- /dev/null +++ b/code/components/Button.js @@ -0,0 +1,28 @@ +/* eslint-disable react/button-has-type */ +import React from 'react'; +import PropTypes from 'prop-types' + +export const Button = ({ children, version, type, isDisabled }) => { + return ( + + ) +} + +Button.defaultProps = { + version: 'primary', + type: 'button', + isDisabled: false + +} + +Button.propTypes = { + children: PropTypes.node.isRequired, + version: PropTypes.string, + type: PropTypes.string, + isDisabled: PropTypes.bool + +} + +export default Button \ No newline at end of file diff --git a/code/components/Kilograms.js b/code/components/Kilograms.js new file mode 100644 index 000000000..499985b26 --- /dev/null +++ b/code/components/Kilograms.js @@ -0,0 +1,11 @@ +import React from 'react'; + +export const Kilograms = ({ kilo, setKilo }) => { + const handleKiloChange = (event) => { + setKilo(event.target.value); + }; + + return ( + + ); +}; \ No newline at end of file diff --git a/code/components/Level.js b/code/components/Level.js new file mode 100644 index 000000000..29adcab9e --- /dev/null +++ b/code/components/Level.js @@ -0,0 +1,32 @@ +import React from 'react' + +const levelSelect = ['YES', 'NO'] + +export const Level = ({ level, setLevel }) => { + const handleLevelSelect = (event) => { + setLevel(event.target.value); + } + return ( +
+

Bench Press

+

1 RM

+

We do the math – you lift!

+
+ {levelSelect.map((yesorno) => ( + + ))} +
+
+ ); +}; + +export default Level \ No newline at end of file diff --git a/code/components/Name.js b/code/components/Name.js new file mode 100644 index 000000000..3f027083a --- /dev/null +++ b/code/components/Name.js @@ -0,0 +1,24 @@ +import React from 'react'; +import PropTypes from 'prop-types' + +export const Name = ({ name, setName }) => { + const handleNameChange = (event) => { + const limit = 10; + setName(event.target.value.slice(0, limit)); + }; + return ( +
+

Bench Press

+

1 RM

+

What is your name?

+ +
+ ); +} + +Name.propTypes = { + name: PropTypes.string.isRequired + +} + +export default Name diff --git a/code/components/OneRepMax.js b/code/components/OneRepMax.js new file mode 100644 index 000000000..73c20108a --- /dev/null +++ b/code/components/OneRepMax.js @@ -0,0 +1,20 @@ +import React from 'react'; + +export const OneRepMax = ({ kilo, reps }) => { + const resultEpley = (kilo * (1 + reps / 30)); + const resultBrzycki = (kilo * (36 / (37 - reps))); + const resultBaechle = (kilo * (1 + 0.033 * reps)); + const result = (resultEpley + resultBrzycki + resultBaechle) / 3; + return Math.round(result); +}; + +export const Result = ({ name, kilo, reps }) => { + const oneRepMax = OneRepMax({ kilo, reps }); + return ( + <> +

OK, here we go {name}

+

You have already lifted {reps} with {kilo} in the benchpress.

+

As you consider yourself beginner, your 1 rep max is around {oneRepMax}

+ + ); +}; \ No newline at end of file diff --git a/code/components/Reps.js b/code/components/Reps.js new file mode 100644 index 000000000..7b0ec3350 --- /dev/null +++ b/code/components/Reps.js @@ -0,0 +1,31 @@ +import React from 'react' + +export const Reps = ({ reps, setReps }) => { + return ( +
+ +
+ ); +}; + +export default Reps diff --git a/code/components/Result.js b/code/components/Result.js new file mode 100644 index 000000000..c037ff7dc --- /dev/null +++ b/code/components/Result.js @@ -0,0 +1,50 @@ +import React from 'react'; + +export const Result = ({ name, kilo, reps }) => { + const resultEpley = (kilo * (1 + reps / 30)); + const resultBrzycki = (kilo * (36 / (37 - reps))); + const resultBaechle = (kilo * (1 + 0.033 * reps)); + const oneRepMax = (resultEpley + resultBrzycki + resultBaechle) / 3; + console.log(oneRepMax); + return ( + <> +
+

{`${name}'s`}

+

Bench Press Max

+

{Math.round(oneRepMax)} kg

+
+
+
+

2 reps

+

3 reps

+

4 reps

+

5 reps

+

6 reps

+

7 reps

+

8 reps

+

9 reps

+

10 reps

+

11 reps

+

12 reps

+
+
+

{Math.round(oneRepMax * 0.97)} kg

+

{Math.round(oneRepMax * 0.94)} kg

+

{Math.round(oneRepMax * 0.91)} kg

+

{Math.round(oneRepMax * 0.88)} kg

+

{Math.round(oneRepMax * 0.86)} kg

+

{Math.round(oneRepMax * 0.83)} kg

+

{Math.round(oneRepMax * 0.81)} kg

+

{Math.round(oneRepMax * 0.79)} kg

+

{Math.round(oneRepMax * 0.77)} kg

+

{Math.round(oneRepMax * 0.75)} kg

+

{Math.round(oneRepMax * 0.73)} kg

+ +
+
+
+ +
+ + ); +}; From 5262338e81db4300110b28024e6b1e958435fa94 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:00:41 +0200 Subject: [PATCH 06/21] Update README.md --- README.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 50e5933d0..2dc5a34f3 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,24 @@ # Survey form with React -Replace this readme with your own information about your project. +✔️ **Brief** -Start by briefly describing the assignment in a sentence or two. Keep it short and to the point. +This week we will be practicing React state and controlled forms by making a Typeform-like product. Your completed project should consist of at least 3 questions that need to be answered by users. + +**What you need to do** + +✓ Your survey should consist of at least 3 questions. + +✓ At least one question should use radio buttons. + +✓ At least one question should use a select dropdown. + +✓ There should be a submit button. When pressed your app should hide the input form and show a summary of the user's submissions. + +✓ Your site should follow accessibility guidelines ## The problem -Describe how you approached to problem, and what tools and techniques you used to solve it. How did you plan? What technologies did you use? If you had more time, what would be next? +Trying to learn React. Lot of new stuff... ## View it live From f5421e40196bd6b3d4d15f3b85541a7af3638c67 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:21:21 +0200 Subject: [PATCH 07/21] Delete Button.js --- code/components/Button.js | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 code/components/Button.js diff --git a/code/components/Button.js b/code/components/Button.js deleted file mode 100644 index dc135ad37..000000000 --- a/code/components/Button.js +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable react/button-has-type */ -import React from 'react'; -import PropTypes from 'prop-types' - -export const Button = ({ children, version, type, isDisabled }) => { - return ( - - ) -} - -Button.defaultProps = { - version: 'primary', - type: 'button', - isDisabled: false - -} - -Button.propTypes = { - children: PropTypes.node.isRequired, - version: PropTypes.string, - type: PropTypes.string, - isDisabled: PropTypes.bool - -} - -export default Button \ No newline at end of file From fd75cc86885a377a779735a2ad5f0c74a4d41cd4 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:23:10 +0200 Subject: [PATCH 08/21] Delete code/components directory --- code/components/Kilograms.js | 11 -------- code/components/Level.js | 32 ----------------------- code/components/Name.js | 24 ----------------- code/components/OneRepMax.js | 20 --------------- code/components/Reps.js | 31 ---------------------- code/components/Result.js | 50 ------------------------------------ 6 files changed, 168 deletions(-) delete mode 100644 code/components/Kilograms.js delete mode 100644 code/components/Level.js delete mode 100644 code/components/Name.js delete mode 100644 code/components/OneRepMax.js delete mode 100644 code/components/Reps.js delete mode 100644 code/components/Result.js diff --git a/code/components/Kilograms.js b/code/components/Kilograms.js deleted file mode 100644 index 499985b26..000000000 --- a/code/components/Kilograms.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; - -export const Kilograms = ({ kilo, setKilo }) => { - const handleKiloChange = (event) => { - setKilo(event.target.value); - }; - - return ( - - ); -}; \ No newline at end of file diff --git a/code/components/Level.js b/code/components/Level.js deleted file mode 100644 index 29adcab9e..000000000 --- a/code/components/Level.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from 'react' - -const levelSelect = ['YES', 'NO'] - -export const Level = ({ level, setLevel }) => { - const handleLevelSelect = (event) => { - setLevel(event.target.value); - } - return ( -
-

Bench Press

-

1 RM

-

We do the math – you lift!

-
- {levelSelect.map((yesorno) => ( - - ))} -
-
- ); -}; - -export default Level \ No newline at end of file diff --git a/code/components/Name.js b/code/components/Name.js deleted file mode 100644 index 3f027083a..000000000 --- a/code/components/Name.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types' - -export const Name = ({ name, setName }) => { - const handleNameChange = (event) => { - const limit = 10; - setName(event.target.value.slice(0, limit)); - }; - return ( -
-

Bench Press

-

1 RM

-

What is your name?

- -
- ); -} - -Name.propTypes = { - name: PropTypes.string.isRequired - -} - -export default Name diff --git a/code/components/OneRepMax.js b/code/components/OneRepMax.js deleted file mode 100644 index 73c20108a..000000000 --- a/code/components/OneRepMax.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; - -export const OneRepMax = ({ kilo, reps }) => { - const resultEpley = (kilo * (1 + reps / 30)); - const resultBrzycki = (kilo * (36 / (37 - reps))); - const resultBaechle = (kilo * (1 + 0.033 * reps)); - const result = (resultEpley + resultBrzycki + resultBaechle) / 3; - return Math.round(result); -}; - -export const Result = ({ name, kilo, reps }) => { - const oneRepMax = OneRepMax({ kilo, reps }); - return ( - <> -

OK, here we go {name}

-

You have already lifted {reps} with {kilo} in the benchpress.

-

As you consider yourself beginner, your 1 rep max is around {oneRepMax}

- - ); -}; \ No newline at end of file diff --git a/code/components/Reps.js b/code/components/Reps.js deleted file mode 100644 index 7b0ec3350..000000000 --- a/code/components/Reps.js +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react' - -export const Reps = ({ reps, setReps }) => { - return ( -
- -
- ); -}; - -export default Reps diff --git a/code/components/Result.js b/code/components/Result.js deleted file mode 100644 index c037ff7dc..000000000 --- a/code/components/Result.js +++ /dev/null @@ -1,50 +0,0 @@ -import React from 'react'; - -export const Result = ({ name, kilo, reps }) => { - const resultEpley = (kilo * (1 + reps / 30)); - const resultBrzycki = (kilo * (36 / (37 - reps))); - const resultBaechle = (kilo * (1 + 0.033 * reps)); - const oneRepMax = (resultEpley + resultBrzycki + resultBaechle) / 3; - console.log(oneRepMax); - return ( - <> -
-

{`${name}'s`}

-

Bench Press Max

-

{Math.round(oneRepMax)} kg

-
-
-
-

2 reps

-

3 reps

-

4 reps

-

5 reps

-

6 reps

-

7 reps

-

8 reps

-

9 reps

-

10 reps

-

11 reps

-

12 reps

-
-
-

{Math.round(oneRepMax * 0.97)} kg

-

{Math.round(oneRepMax * 0.94)} kg

-

{Math.round(oneRepMax * 0.91)} kg

-

{Math.round(oneRepMax * 0.88)} kg

-

{Math.round(oneRepMax * 0.86)} kg

-

{Math.round(oneRepMax * 0.83)} kg

-

{Math.round(oneRepMax * 0.81)} kg

-

{Math.round(oneRepMax * 0.79)} kg

-

{Math.round(oneRepMax * 0.77)} kg

-

{Math.round(oneRepMax * 0.75)} kg

-

{Math.round(oneRepMax * 0.73)} kg

- -
-
-
- -
- - ); -}; From 88d6ee59b50f27de8d09566215068ff7c859ca12 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:23:48 +0200 Subject: [PATCH 09/21] Add files via upload --- code/src/components/Kilograms.js | 11 +++++++ code/src/components/Level.js | 32 ++++++++++++++++++++ code/src/components/Name.js | 24 +++++++++++++++ code/src/components/OneRepMax.js | 20 +++++++++++++ code/src/components/Reps.js | 31 ++++++++++++++++++++ code/src/components/Result.js | 50 ++++++++++++++++++++++++++++++++ 6 files changed, 168 insertions(+) create mode 100644 code/src/components/Kilograms.js create mode 100644 code/src/components/Level.js create mode 100644 code/src/components/Name.js create mode 100644 code/src/components/OneRepMax.js create mode 100644 code/src/components/Reps.js create mode 100644 code/src/components/Result.js diff --git a/code/src/components/Kilograms.js b/code/src/components/Kilograms.js new file mode 100644 index 000000000..499985b26 --- /dev/null +++ b/code/src/components/Kilograms.js @@ -0,0 +1,11 @@ +import React from 'react'; + +export const Kilograms = ({ kilo, setKilo }) => { + const handleKiloChange = (event) => { + setKilo(event.target.value); + }; + + return ( + + ); +}; \ No newline at end of file diff --git a/code/src/components/Level.js b/code/src/components/Level.js new file mode 100644 index 000000000..29adcab9e --- /dev/null +++ b/code/src/components/Level.js @@ -0,0 +1,32 @@ +import React from 'react' + +const levelSelect = ['YES', 'NO'] + +export const Level = ({ level, setLevel }) => { + const handleLevelSelect = (event) => { + setLevel(event.target.value); + } + return ( +
+

Bench Press

+

1 RM

+

We do the math – you lift!

+
+ {levelSelect.map((yesorno) => ( + + ))} +
+
+ ); +}; + +export default Level \ No newline at end of file diff --git a/code/src/components/Name.js b/code/src/components/Name.js new file mode 100644 index 000000000..3f027083a --- /dev/null +++ b/code/src/components/Name.js @@ -0,0 +1,24 @@ +import React from 'react'; +import PropTypes from 'prop-types' + +export const Name = ({ name, setName }) => { + const handleNameChange = (event) => { + const limit = 10; + setName(event.target.value.slice(0, limit)); + }; + return ( +
+

Bench Press

+

1 RM

+

What is your name?

+ +
+ ); +} + +Name.propTypes = { + name: PropTypes.string.isRequired + +} + +export default Name diff --git a/code/src/components/OneRepMax.js b/code/src/components/OneRepMax.js new file mode 100644 index 000000000..73c20108a --- /dev/null +++ b/code/src/components/OneRepMax.js @@ -0,0 +1,20 @@ +import React from 'react'; + +export const OneRepMax = ({ kilo, reps }) => { + const resultEpley = (kilo * (1 + reps / 30)); + const resultBrzycki = (kilo * (36 / (37 - reps))); + const resultBaechle = (kilo * (1 + 0.033 * reps)); + const result = (resultEpley + resultBrzycki + resultBaechle) / 3; + return Math.round(result); +}; + +export const Result = ({ name, kilo, reps }) => { + const oneRepMax = OneRepMax({ kilo, reps }); + return ( + <> +

OK, here we go {name}

+

You have already lifted {reps} with {kilo} in the benchpress.

+

As you consider yourself beginner, your 1 rep max is around {oneRepMax}

+ + ); +}; \ No newline at end of file diff --git a/code/src/components/Reps.js b/code/src/components/Reps.js new file mode 100644 index 000000000..7b0ec3350 --- /dev/null +++ b/code/src/components/Reps.js @@ -0,0 +1,31 @@ +import React from 'react' + +export const Reps = ({ reps, setReps }) => { + return ( +
+ +
+ ); +}; + +export default Reps diff --git a/code/src/components/Result.js b/code/src/components/Result.js new file mode 100644 index 000000000..c037ff7dc --- /dev/null +++ b/code/src/components/Result.js @@ -0,0 +1,50 @@ +import React from 'react'; + +export const Result = ({ name, kilo, reps }) => { + const resultEpley = (kilo * (1 + reps / 30)); + const resultBrzycki = (kilo * (36 / (37 - reps))); + const resultBaechle = (kilo * (1 + 0.033 * reps)); + const oneRepMax = (resultEpley + resultBrzycki + resultBaechle) / 3; + console.log(oneRepMax); + return ( + <> +
+

{`${name}'s`}

+

Bench Press Max

+

{Math.round(oneRepMax)} kg

+
+
+
+

2 reps

+

3 reps

+

4 reps

+

5 reps

+

6 reps

+

7 reps

+

8 reps

+

9 reps

+

10 reps

+

11 reps

+

12 reps

+
+
+

{Math.round(oneRepMax * 0.97)} kg

+

{Math.round(oneRepMax * 0.94)} kg

+

{Math.round(oneRepMax * 0.91)} kg

+

{Math.round(oneRepMax * 0.88)} kg

+

{Math.round(oneRepMax * 0.86)} kg

+

{Math.round(oneRepMax * 0.83)} kg

+

{Math.round(oneRepMax * 0.81)} kg

+

{Math.round(oneRepMax * 0.79)} kg

+

{Math.round(oneRepMax * 0.77)} kg

+

{Math.round(oneRepMax * 0.75)} kg

+

{Math.round(oneRepMax * 0.73)} kg

+ +
+
+
+ +
+ + ); +}; From ed58d0b4b9312dd1d45e7e0c76284b7be9c65e2f Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:28:57 +0200 Subject: [PATCH 10/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2dc5a34f3..6d68bc9ac 100644 --- a/README.md +++ b/README.md @@ -22,4 +22,4 @@ Trying to learn React. Lot of new stuff... ## View it live -Every project should be deployed somewhere. Be sure to include the link to the deployed project so that the viewer can click around and see what it's all about. +https://benchpress1rm.netlify.app From 0fc6c3f3eade5d3908701d75d219e53d7ce87537 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:38:27 +0200 Subject: [PATCH 11/21] Update index.css fixing the button height --- code/src/index.css | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/code/src/index.css b/code/src/index.css index 876041954..24297ff11 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -434,7 +434,7 @@ width: 240px; .button_container{ position: absolute; - top: 650px; + top: 580px; left: calc(50% - 28px); } @@ -537,7 +537,7 @@ width: 240px; } - @media (min-width: 480px) { + @media (min-width: 520px) { .gym_app_container { display: flex; justify-content: center; @@ -572,3 +572,8 @@ width: 240px; + + + + + From 935042a969953f444ab7bb67dfaec717452d57c0 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:43:20 +0200 Subject: [PATCH 12/21] Update index.css --- code/src/index.css | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/code/src/index.css b/code/src/index.css index 24297ff11..176f2269f 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -40,6 +40,13 @@ p { } +.gym_app_container { + transform: scale(0.84); + display: flex; + justify-content: center; + align-items: center; +} + .page-one-container { display: flex; @@ -414,6 +421,14 @@ width: 240px; @media (min-width: 380px) { + .gym_app_container { + transform: scale(0.84); + display: flex; + justify-content: center; + align-items: center; + } + + .page-one-container { margin-top: 120px; } @@ -434,7 +449,7 @@ width: 240px; .button_container{ position: absolute; - top: 580px; + top: 560px; left: calc(50% - 28px); } From 6ba893f354e2fc1a596f58f0464263a5cf1f9908 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:47:38 +0200 Subject: [PATCH 13/21] Update index.css Page one container margin top 60 --> 40px --- code/src/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/src/index.css b/code/src/index.css index 176f2269f..76094e344 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -53,7 +53,7 @@ p { flex-direction: column; align-items: center; justify-content: center; - margin-top: 60px; + margin-top: 40px; } .page-one-title { From 811a1ba30eefc6f7244fab3cec0387612f2291cb Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:52:22 +0200 Subject: [PATCH 14/21] Update index.css --- code/src/index.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/src/index.css b/code/src/index.css index 76094e344..e171b143d 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -53,7 +53,7 @@ p { flex-direction: column; align-items: center; justify-content: center; - margin-top: 40px; + margin-top: 30px; } .page-one-title { @@ -340,7 +340,7 @@ input[type=number] { flex-direction: column; align-items: center; justify-content: center; - margin-top: 44px; + margin-top: 30px; } @@ -393,7 +393,7 @@ width: 240px; .close_button_container{ position: absolute; - top: 90%; + top: 364px; left: calc(50% - 10px); } @@ -528,7 +528,7 @@ width: 240px; .close_button_container{ position: absolute; - top: 760px; + top: 660px; left: calc(50% - 10px); max-height: 100px; } From 5b7fa0063a1b62bdc8829b22ae50de5e2269f0e5 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:58:06 +0200 Subject: [PATCH 15/21] Update index.css --- code/src/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/src/index.css b/code/src/index.css index e171b143d..01e2c7816 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -456,7 +456,7 @@ width: 240px; .page-two-question { - margin-top: 170px; + margin-top: 140px; } From 13d928d36082570a3ba8a12d9d9559ce455ab143 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 17:23:52 +0200 Subject: [PATCH 16/21] Update index.css --- code/src/index.css | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/code/src/index.css b/code/src/index.css index 01e2c7816..6528e80ee 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -39,9 +39,8 @@ p { margin: 30px, 0, 0, 30px; } - .gym_app_container { - transform: scale(0.84); + transform: scale(0.94); display: flex; justify-content: center; align-items: center; @@ -52,8 +51,7 @@ p { display: flex; flex-direction: column; align-items: center; - justify-content: center; - margin-top: 30px; + margin-top: 50px; } .page-one-title { @@ -70,7 +68,7 @@ p { .page-one-question { font-size: 18px; - margin-top: 100px; + margin-top: 90px; font-weight: 800; } @@ -393,7 +391,7 @@ width: 240px; .close_button_container{ position: absolute; - top: 364px; + top: 500px; left: calc(50% - 10px); } @@ -422,7 +420,7 @@ width: 240px; @media (min-width: 380px) { .gym_app_container { - transform: scale(0.84); + transform: scale(0.94); display: flex; justify-content: center; align-items: center; @@ -456,7 +454,7 @@ width: 240px; .page-two-question { - margin-top: 140px; + padding-top: 80px; } @@ -554,6 +552,7 @@ width: 240px; @media (min-width: 520px) { .gym_app_container { + transform: scale(0.94); display: flex; justify-content: center; align-items: center; @@ -565,9 +564,6 @@ width: 240px; height: 902px; border-radius: 10px; box-shadow: var(--dark-box-shadow); - - - transform: scale(0.84); align-self: center; display: flex; margin-left: auto; From f269fa4091e84a65e5f5f7c17ddbc608bdc44aa9 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 17:24:28 +0200 Subject: [PATCH 17/21] Update Name.js --- code/src/components/Name.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/src/components/Name.js b/code/src/components/Name.js index 3f027083a..5ede5a519 100644 --- a/code/src/components/Name.js +++ b/code/src/components/Name.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types' export const Name = ({ name, setName }) => { const handleNameChange = (event) => { @@ -15,10 +14,3 @@ export const Name = ({ name, setName }) => {
); } - -Name.propTypes = { - name: PropTypes.string.isRequired - -} - -export default Name From 57c7e7106086a0392eb856550bce889c90d1815d Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 17:47:49 +0200 Subject: [PATCH 18/21] Update index.css --- code/src/index.css | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/code/src/index.css b/code/src/index.css index 6528e80ee..2e2c97a26 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -40,7 +40,7 @@ p { } .gym_app_container { - transform: scale(0.94); + transform: scale(0.86); display: flex; justify-content: center; align-items: center; @@ -420,7 +420,7 @@ width: 240px; @media (min-width: 380px) { .gym_app_container { - transform: scale(0.94); + transform: scale(0.86); display: flex; justify-content: center; align-items: center; @@ -552,7 +552,7 @@ width: 240px; @media (min-width: 520px) { .gym_app_container { - transform: scale(0.94); + transform: scale(0.86); display: flex; justify-content: center; align-items: center; @@ -582,9 +582,4 @@ width: 240px; } - - - - - - + From cd52f16e95dcc25f6e82339c79d0c48a5198fb0d Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 17:59:01 +0200 Subject: [PATCH 19/21] Update index.css --- code/src/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/src/index.css b/code/src/index.css index 2e2c97a26..de4e89463 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -428,7 +428,7 @@ width: 240px; .page-one-container { - margin-top: 120px; + margin-top: 50px; } From c4306e50658b478ca2aa8b859550d2a427ee7c4b Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 18:03:49 +0200 Subject: [PATCH 20/21] Update index.css --- code/src/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/src/index.css b/code/src/index.css index de4e89463..1f151edcd 100644 --- a/code/src/index.css +++ b/code/src/index.css @@ -474,7 +474,7 @@ width: 240px; flex-direction: column; align-items: center; justify-content: center; - margin-top: 90px; + margin-top: 50px; } From 18da6c51336e49d372a40a23ed62877441e2e039 Mon Sep 17 00:00:00 2001 From: Peki <112956568+akipeki@users.noreply.github.com> Date: Mon, 20 Mar 2023 18:58:22 +0200 Subject: [PATCH 21/21] Update Reps.js --- code/src/components/Reps.js | 1 - 1 file changed, 1 deletion(-) diff --git a/code/src/components/Reps.js b/code/src/components/Reps.js index 7b0ec3350..8037391bb 100644 --- a/code/src/components/Reps.js +++ b/code/src/components/Reps.js @@ -8,7 +8,6 @@ export const Reps = ({ reps, setReps }) => { onChange={(event) => setReps(event.target.value)} value={reps}> -