From a9240ba34231473929f0860a22cbcf2bbdc81463 Mon Sep 17 00:00:00 2001 From: SuelyBarreto Date: Mon, 20 Apr 2020 20:40:48 -0700 Subject: [PATCH 1/8] Wave 1 started --- src/components/Game.js | 17 +++- src/components/PlayerSubmissionForm.js | 113 ++++++++++++++++++++++++- 2 files changed, 125 insertions(+), 5 deletions(-) diff --git a/src/components/Game.js b/src/components/Game.js index ad27105b..7dd9a0db 100644 --- a/src/components/Game.js +++ b/src/components/Game.js @@ -5,6 +5,11 @@ import FinalPoem from './FinalPoem'; import RecentSubmission from './RecentSubmission'; const Game = () => { + + const [player, setPlayer] = useState(1); + const [isFinal, setIsFinal] = useState(false); + const [poem, setPoem] = useState([]); + const exampleFormat = FIELDS.map((field) => { if (field.key) { return field.placeholder; @@ -13,6 +18,16 @@ const Game = () => { } }).join(" "); + const onFormSubmit = (line) => { + console.log(`Form submitted`, line, poem, player) + const updatedPoem = Array.from(poem); + updatedPoem.push(line); + setPoem(updatedPoem); + setPlayer(player + 1); + console.log(`Form submitted`, line, poem, player) + } + + return (

Game

@@ -27,7 +42,7 @@ const Game = () => { - + diff --git a/src/components/PlayerSubmissionForm.js b/src/components/PlayerSubmissionForm.js index ba19e6ef..80f33ae4 100644 --- a/src/components/PlayerSubmissionForm.js +++ b/src/components/PlayerSubmissionForm.js @@ -1,22 +1,127 @@ import React, { useState } from 'react'; import './PlayerSubmissionForm.css'; -const PlayerSubmissionForm = () => { +const PlayerSubmissionForm = (props) => { + + const emptyForm = { + adj1: '', + noun1: '', + adv: '', + verb: '', + adj2: '', + noun2: '', + }; + + const [formFields, setFormFields] = useState(emptyForm); + + const onAdj1Change = (event) => { + console.log(`Adj1 Field updated ${ event.target.value }`); + setFormFields({ + ...formFields, + adj1: event.target.value, + }); + }; + const onNoun1Change = (event) => { + console.log(`Noun1 Field updated ${ event.target.value }`); + setFormFields({ + ...formFields, + noun1: event.target.value, + }); + }; + const onAdvChange = (event) => { + console.log(`Adv Field updated ${ event.target.value }`); + setFormFields({ + ...formFields, + adv: event.target.value, + }); + }; + const onVerbChange = (event) => { + console.log(`Verb Field updated ${ event.target.value }`); + setFormFields({ + ...formFields, + verb: event.target.value, + }); + }; + const onAdj2Change = (event) => { + console.log(`Adj2 Field updated ${ event.target.value }`); + setFormFields({ + ...formFields, + adj2: event.target.value, + }); + }; + const onNoun2Change = (event) => { + console.log(`Noun2 Field updated ${ event.target.value }`); + setFormFields({ + ...formFields, + noun2: event.target.value, + }); + }; + + const onSubmit = (event) => { + event.preventDefault(); + console.log(`Form submitted`); + props.onFormSubmit(formFields); + setFormFields(emptyForm); + } + return (
-

Player Submission Form for Player #{ }

+

Player Submission Form for Player #{props.player}

-
+
{ // Put your form inputs here... We've put in one below as an example } +

The   + +   + +   + +   + +   the   + +   +

+ {/* The adjective noun adverb verb the adjective noun. */}
From 8b942ae11bf21da9689be22b5e4322759210b6ac Mon Sep 17 00:00:00 2001 From: SuelyBarreto Date: Mon, 20 Apr 2020 21:00:44 -0700 Subject: [PATCH 2/8] Wave 1 finished --- src/components/Game.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/Game.js b/src/components/Game.js index 7dd9a0db..3e1fb334 100644 --- a/src/components/Game.js +++ b/src/components/Game.js @@ -18,13 +18,17 @@ const Game = () => { } }).join(" "); - const onFormSubmit = (line) => { - console.log(`Form submitted`, line, poem, player) + const formToLine = (form) => { + return (`The ${form.adj1} ${form.noun1} ${form.adv} ${form.verb} the ${form.adj2} ${form.noun2}`); + } + + const onFormSubmit = (formFields) => { + console.log(`Form submitted`, formFields, poem, player) const updatedPoem = Array.from(poem); - updatedPoem.push(line); + updatedPoem.push(formToLine(formFields)); setPoem(updatedPoem); setPlayer(player + 1); - console.log(`Form submitted`, line, poem, player) + console.log(`Form submitted`, formFields, poem, player) } @@ -33,7 +37,7 @@ const Game = () => {

Game

Each player should take turns filling out and submitting the form below. Each turn should be done individually and in secret! Take inspiration from the revealed recent submission. When all players are finished, click the final button on the bottom to reveal the entire poem.

- +

{poem.length>0 ? poem[0]:`empty...` }

Please follow the following format for your poetry submission:

From c3bd10c4d94ba3c6e95310a9eb7601a9fc5a295d Mon Sep 17 00:00:00 2001 From: SuelyBarreto Date: Mon, 20 Apr 2020 21:12:23 -0700 Subject: [PATCH 3/8] formToPoem --- src/components/Game.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/components/Game.js b/src/components/Game.js index 3e1fb334..b2584cfd 100644 --- a/src/components/Game.js +++ b/src/components/Game.js @@ -18,17 +18,16 @@ const Game = () => { } }).join(" "); - const formToLine = (form) => { + const formToPoem = (form) => { return (`The ${form.adj1} ${form.noun1} ${form.adv} ${form.verb} the ${form.adj2} ${form.noun2}`); } const onFormSubmit = (formFields) => { console.log(`Form submitted`, formFields, poem, player) const updatedPoem = Array.from(poem); - updatedPoem.push(formToLine(formFields)); + updatedPoem.push(formToPoem(formFields)); setPoem(updatedPoem); setPlayer(player + 1); - console.log(`Form submitted`, formFields, poem, player) } @@ -37,7 +36,7 @@ const Game = () => {

Game

Each player should take turns filling out and submitting the form below. Each turn should be done individually and in secret! Take inspiration from the revealed recent submission. When all players are finished, click the final button on the bottom to reveal the entire poem.

-

{poem.length>0 ? poem[0]:`empty...` }

+

Debugging... {poem.length>0 ? poem[0]:`empty...` }

Please follow the following format for your poetry submission:

@@ -46,7 +45,7 @@ const Game = () => { - + From f75a84c3a06d4cf92e8cc9f80a0049cc5938ccfe Mon Sep 17 00:00:00 2001 From: SuelyBarreto Date: Tue, 21 Apr 2020 08:53:08 -0700 Subject: [PATCH 4/8] Added comments --- src/App.js | 3 +-- src/components/Game.js | 25 ++++++++++++++---- src/components/PlayerSubmissionForm.js | 35 +++++++++++++++++--------- 3 files changed, 44 insertions(+), 19 deletions(-) diff --git a/src/App.js b/src/App.js index 8f64627a..9a29838f 100644 --- a/src/App.js +++ b/src/App.js @@ -16,5 +16,4 @@ const App = () => { ); } - -export default App; +export default App; \ No newline at end of file diff --git a/src/components/Game.js b/src/components/Game.js index b2584cfd..bc845854 100644 --- a/src/components/Game.js +++ b/src/components/Game.js @@ -6,6 +6,7 @@ import RecentSubmission from './RecentSubmission'; const Game = () => { + // created the hooks for player and poem const [player, setPlayer] = useState(1); const [isFinal, setIsFinal] = useState(false); const [poem, setPoem] = useState([]); @@ -18,10 +19,21 @@ const Game = () => { } }).join(" "); + // created formToPoem to transform an array of fields into a poem const formToPoem = (form) => { - return (`The ${form.adj1} ${form.noun1} ${form.adv} ${form.verb} the ${form.adj2} ${form.noun2}`); + return ( + `The + ${form.adj1} + ${form.noun1} + ${form.adv} + ${form.verb} + the + ${form.adj2} + ${form.noun2}` + ); } + // created onFormSubmit callback function to formSubmit const onFormSubmit = (formFields) => { console.log(`Form submitted`, formFields, poem, player) const updatedPoem = Array.from(poem); @@ -30,7 +42,6 @@ const Game = () => { setPlayer(player + 1); } - return (

Game

@@ -45,14 +56,18 @@ const Game = () => { - + {/* pass parameters to PlayerSubmissionForm component*/} +
); -} +} const FIELDS = [ "The", @@ -84,4 +99,4 @@ const FIELDS = [ ".", ]; -export default Game; +export default Game; \ No newline at end of file diff --git a/src/components/PlayerSubmissionForm.js b/src/components/PlayerSubmissionForm.js index 80f33ae4..5ff337d3 100644 --- a/src/components/PlayerSubmissionForm.js +++ b/src/components/PlayerSubmissionForm.js @@ -3,6 +3,7 @@ import './PlayerSubmissionForm.css'; const PlayerSubmissionForm = (props) => { + // created an emptyForm constant const emptyForm = { adj1: '', noun1: '', @@ -12,8 +13,11 @@ const PlayerSubmissionForm = (props) => { noun2: '', }; + // created the hook for formFields const [formFields, setFormFields] = useState(emptyForm); + // created onChange events for each + // field event.target.value calling event const onAdj1Change = (event) => { console.log(`Adj1 Field updated ${ event.target.value }`); setFormFields({ @@ -21,6 +25,7 @@ const PlayerSubmissionForm = (props) => { adj1: event.target.value, }); }; + const onNoun1Change = (event) => { console.log(`Noun1 Field updated ${ event.target.value }`); setFormFields({ @@ -28,6 +33,7 @@ const PlayerSubmissionForm = (props) => { noun1: event.target.value, }); }; + const onAdvChange = (event) => { console.log(`Adv Field updated ${ event.target.value }`); setFormFields({ @@ -35,6 +41,7 @@ const PlayerSubmissionForm = (props) => { adv: event.target.value, }); }; + const onVerbChange = (event) => { console.log(`Verb Field updated ${ event.target.value }`); setFormFields({ @@ -42,6 +49,7 @@ const PlayerSubmissionForm = (props) => { verb: event.target.value, }); }; + const onAdj2Change = (event) => { console.log(`Adj2 Field updated ${ event.target.value }`); setFormFields({ @@ -49,6 +57,7 @@ const PlayerSubmissionForm = (props) => { adj2: event.target.value, }); }; + const onNoun2Change = (event) => { console.log(`Noun2 Field updated ${ event.target.value }`); setFormFields({ @@ -57,6 +66,7 @@ const PlayerSubmissionForm = (props) => { }); }; + // created onSubmit event for the form when user clicks submit const onSubmit = (event) => { event.preventDefault(); console.log(`Form submitted`); @@ -66,17 +76,11 @@ const PlayerSubmissionForm = (props) => { return (
-

Player Submission Form for Player #{props.player}

- - +

Player Submission Form for Player # {props.player}

+ + {/* hard coded text input with events */}
- - { - // Put your form inputs here... We've put in one below as an example - }

The   { placeholder="adjective" type="text" />   + { placeholder="noun" type="text" />   + { placeholder="adverb" type="text" />   + -   the   +   + + the   + { placeholder="adjective" type="text" />   + {

+
); } - -export default PlayerSubmissionForm; +export default PlayerSubmissionForm; \ No newline at end of file From 9c093109507bfe4fd1d9b6b87af405f466380c71 Mon Sep 17 00:00:00 2001 From: SuelyBarreto Date: Tue, 21 Apr 2020 19:08:08 -0700 Subject: [PATCH 5/8] Wave 2 completed --- src/components/FinalPoem.js | 13 ++++++++++++- src/components/Game.js | 2 +- src/components/PlayerSubmissionForm.js | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/FinalPoem.js b/src/components/FinalPoem.js index d516184e..2c0d331f 100644 --- a/src/components/FinalPoem.js +++ b/src/components/FinalPoem.js @@ -1,13 +1,24 @@ import React from 'react'; import './FinalPoem.css'; +import { render } from '@testing-library/react'; const FinalPoem = (props) => { + const recitePoem = (poem) => { + const renderedPoem = []; + poem.forEach((line, index) => { + renderedPoem.push( +

{line}

+ ) + }); + return renderedPoem; + } + return (

Final Poem

- +
{recitePoem(props.poem)}
diff --git a/src/components/Game.js b/src/components/Game.js index bc845854..b11fc15a 100644 --- a/src/components/Game.js +++ b/src/components/Game.js @@ -62,7 +62,7 @@ const Game = () => { isFinal={isFinal} onFormSubmit={onFormSubmit} /> - +
); diff --git a/src/components/PlayerSubmissionForm.js b/src/components/PlayerSubmissionForm.js index 5ff337d3..612973e9 100644 --- a/src/components/PlayerSubmissionForm.js +++ b/src/components/PlayerSubmissionForm.js @@ -69,7 +69,7 @@ const PlayerSubmissionForm = (props) => { // created onSubmit event for the form when user clicks submit const onSubmit = (event) => { event.preventDefault(); - console.log(`Form submitted`); + console.log(`Form submitted`, formFields); props.onFormSubmit(formFields); setFormFields(emptyForm); } From f4c98ad33101af793d90b1d5d0c8fc9cbf43e227 Mon Sep 17 00:00:00 2001 From: SuelyBarreto Date: Tue, 21 Apr 2020 19:55:05 -0700 Subject: [PATCH 6/8] Wave 3 basic functionality --- src/components/FinalPoem.js | 35 ++++-- src/components/Game.js | 16 ++- src/components/PlayerSubmissionForm.js | 146 +++++++++++++------------ src/components/RecentSubmission.js | 24 ++-- 4 files changed, 132 insertions(+), 89 deletions(-) diff --git a/src/components/FinalPoem.js b/src/components/FinalPoem.js index 2c0d331f..3fe86440 100644 --- a/src/components/FinalPoem.js +++ b/src/components/FinalPoem.js @@ -14,18 +14,31 @@ const FinalPoem = (props) => { return renderedPoem; } - return ( -
-
-

Final Poem

-
{recitePoem(props.poem)}
-
+ if (props.isFinal){ -
- + return ( +
+
+

Final Poem

+
{recitePoem(props.poem)}
+
-
- ); + ); + + } else { + + return ( +
+
+ +
+
+ ); + } } -export default FinalPoem; +export default FinalPoem; \ No newline at end of file diff --git a/src/components/Game.js b/src/components/Game.js index b11fc15a..faea215b 100644 --- a/src/components/Game.js +++ b/src/components/Game.js @@ -42,19 +42,25 @@ const Game = () => { setPlayer(player + 1); } + const onFinalClick = () => { + setIsFinal(true); + } + return ( +

Game

Each player should take turns filling out and submitting the form below. Each turn should be done individually and in secret! Take inspiration from the revealed recent submission. When all players are finished, click the final button on the bottom to reveal the entire poem.

-

Debugging... {poem.length>0 ? poem[0]:`empty...` }

Please follow the following format for your poetry submission:

{ exampleFormat }

- + {/* pass parameters to PlayerSubmissionForm component*/} { isFinal={isFinal} onFormSubmit={onFormSubmit} /> - +
+ ); } diff --git a/src/components/PlayerSubmissionForm.js b/src/components/PlayerSubmissionForm.js index 612973e9..3fc14163 100644 --- a/src/components/PlayerSubmissionForm.js +++ b/src/components/PlayerSubmissionForm.js @@ -74,74 +74,84 @@ const PlayerSubmissionForm = (props) => { setFormFields(emptyForm); } - return ( -
-

Player Submission Form for Player # {props.player}

-
- - {/* hard coded text input with events */} -
-

The   - -   - - -   - - -   - - -   - - the   - - -   - - -

- - {/* The adjective noun adverb verb the adjective noun. */} -
- -
- -
- -
-
- ); + if (props.isFinal){ + + return ( +
+
+ ) + + } else { + + return ( +
+

Player Submission Form for Player # {props.player}

+
+ + {/* hard coded text input with events */} +
+

The   + +   + + +   + + +   + + +   + + the   + + +   + + +

+ + {/* The adjective noun adverb verb the adjective noun. */} +
+ +
+ +
+ +
+
+ ); + } } export default PlayerSubmissionForm; \ No newline at end of file diff --git a/src/components/RecentSubmission.js b/src/components/RecentSubmission.js index 663da34b..c353d80e 100644 --- a/src/components/RecentSubmission.js +++ b/src/components/RecentSubmission.js @@ -2,12 +2,22 @@ import React from 'react'; import './RecentSubmission.css'; const RecentSubmission = (props) => { - return ( -
-

The Most Recent Submission

-

{ }

-
- ); + + if (!props.isFinal && props.poem.length > 0){ + + return ( +
+

The Most Recent Submission

+

{ props.poem[props.poem.length - 1] }

+
+ ); + } else { + return ( +
+
+ ) + } + } -export default RecentSubmission; +export default RecentSubmission; \ No newline at end of file From 522105327f2f4c1f94699e582391b411f406f29d Mon Sep 17 00:00:00 2001 From: SuelyBarreto Date: Tue, 21 Apr 2020 20:15:33 -0700 Subject: [PATCH 7/8] Wave 3 finished --- src/components/FinalPoem.css | 1 - src/components/PlayerSubmissionForm.js | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/components/FinalPoem.css b/src/components/FinalPoem.css index 67dda943..a56f4e22 100644 --- a/src/components/FinalPoem.css +++ b/src/components/FinalPoem.css @@ -5,7 +5,6 @@ .FinalPoem__reveal-btn { flex: 0.8; - padding: 1rem; border: 2px black solid; box-shadow: 5px 10px black; diff --git a/src/components/PlayerSubmissionForm.js b/src/components/PlayerSubmissionForm.js index 3fc14163..d36deb28 100644 --- a/src/components/PlayerSubmissionForm.js +++ b/src/components/PlayerSubmissionForm.js @@ -66,6 +66,16 @@ const PlayerSubmissionForm = (props) => { }); }; + const inputClass = (input) => { + + if (input === ""){ + return "PlayerSubmissionFormt__input--invalid"; + } else { + return "PlayerSubmissionFormt__input--valid"; + } + + } + // created onSubmit event for the form when user clicks submit const onSubmit = (event) => { event.preventDefault(); @@ -75,7 +85,7 @@ const PlayerSubmissionForm = (props) => { } if (props.isFinal){ - + return (
@@ -93,6 +103,7 @@ const PlayerSubmissionForm = (props) => {

The   { { { { { Date: Wed, 22 Apr 2020 20:43:03 -0700 Subject: [PATCH 8/8] Added PropTypes and refactor formToPoem onChange event handler --- src/components/FinalPoem.js | 15 +++--- src/components/Game.js | 26 +++------ src/components/PlayerSubmissionForm.js | 74 ++++++-------------------- src/components/RecentSubmission.js | 6 +++ 4 files changed, 39 insertions(+), 82 deletions(-) diff --git a/src/components/FinalPoem.js b/src/components/FinalPoem.js index 3fe86440..6bf0c7b2 100644 --- a/src/components/FinalPoem.js +++ b/src/components/FinalPoem.js @@ -1,17 +1,14 @@ import React from 'react'; import './FinalPoem.css'; +import PropTypes from 'prop-types'; import { render } from '@testing-library/react'; const FinalPoem = (props) => { const recitePoem = (poem) => { - const renderedPoem = []; - poem.forEach((line, index) => { - renderedPoem.push( -

{line}

- ) + return poem.map((line, index) => { + return

{line}

}); - return renderedPoem; } if (props.isFinal){ @@ -41,4 +38,10 @@ const FinalPoem = (props) => { } } +FinalPoem.propTypes = { + poem: PropTypes.array.isRequired, + isFinal: PropTypes.bool.isRequired, + onFinalClick: PropTypes.func.isRequired, +}; + export default FinalPoem; \ No newline at end of file diff --git a/src/components/Game.js b/src/components/Game.js index faea215b..c374dd05 100644 --- a/src/components/Game.js +++ b/src/components/Game.js @@ -6,7 +6,6 @@ import RecentSubmission from './RecentSubmission'; const Game = () => { - // created the hooks for player and poem const [player, setPlayer] = useState(1); const [isFinal, setIsFinal] = useState(false); const [poem, setPoem] = useState([]); @@ -19,26 +18,18 @@ const Game = () => { } }).join(" "); - // created formToPoem to transform an array of fields into a poem const formToPoem = (form) => { - return ( - `The - ${form.adj1} - ${form.noun1} - ${form.adv} - ${form.verb} - the - ${form.adj2} - ${form.noun2}` - ); + return FIELDS.map((field) => { + if (field.key) { + return form[field.key]; + } else { + return field; + } + }).join(" "); } - // created onFormSubmit callback function to formSubmit const onFormSubmit = (formFields) => { - console.log(`Form submitted`, formFields, poem, player) - const updatedPoem = Array.from(poem); - updatedPoem.push(formToPoem(formFields)); - setPoem(updatedPoem); + setPoem([...poem, formToPoem(formFields)]); setPlayer(player + 1); } @@ -62,7 +53,6 @@ const Game = () => { poem={poem} isFinal={isFinal}/> - {/* pass parameters to PlayerSubmissionForm component*/} { - // created an emptyForm constant const emptyForm = { adj1: '', noun1: '', @@ -13,70 +13,24 @@ const PlayerSubmissionForm = (props) => { noun2: '', }; - // created the hook for formFields const [formFields, setFormFields] = useState(emptyForm); - // created onChange events for each - // field event.target.value calling event - const onAdj1Change = (event) => { - console.log(`Adj1 Field updated ${ event.target.value }`); + const onFieldChange = (event) => { + console.log(`${event.target.name} Field updated ${ event.target.value }`); setFormFields({ ...formFields, - adj1: event.target.value, - }); - }; - - const onNoun1Change = (event) => { - console.log(`Noun1 Field updated ${ event.target.value }`); - setFormFields({ - ...formFields, - noun1: event.target.value, - }); - }; - - const onAdvChange = (event) => { - console.log(`Adv Field updated ${ event.target.value }`); - setFormFields({ - ...formFields, - adv: event.target.value, - }); - }; - - const onVerbChange = (event) => { - console.log(`Verb Field updated ${ event.target.value }`); - setFormFields({ - ...formFields, - verb: event.target.value, - }); - }; - - const onAdj2Change = (event) => { - console.log(`Adj2 Field updated ${ event.target.value }`); - setFormFields({ - ...formFields, - adj2: event.target.value, - }); - }; - - const onNoun2Change = (event) => { - console.log(`Noun2 Field updated ${ event.target.value }`); - setFormFields({ - ...formFields, - noun2: event.target.value, + [event.target.name]: event.target.value, }); }; const inputClass = (input) => { - if (input === ""){ return "PlayerSubmissionFormt__input--invalid"; } else { return "PlayerSubmissionFormt__input--valid"; } - } - // created onSubmit event for the form when user clicks submit const onSubmit = (event) => { event.preventDefault(); console.log(`Form submitted`, formFields); @@ -98,13 +52,12 @@ const PlayerSubmissionForm = (props) => {

Player Submission Form for Player # {props.player}

- {/* hard coded text input with events */}

The   @@ -113,7 +66,7 @@ const PlayerSubmissionForm = (props) => { @@ -122,7 +75,7 @@ const PlayerSubmissionForm = (props) => { @@ -131,7 +84,7 @@ const PlayerSubmissionForm = (props) => { @@ -142,7 +95,7 @@ const PlayerSubmissionForm = (props) => { @@ -151,13 +104,12 @@ const PlayerSubmissionForm = (props) => {

- {/* The adjective noun adverb verb the adjective noun. */}
@@ -170,4 +122,10 @@ const PlayerSubmissionForm = (props) => { } } +PlayerSubmissionForm.propTypes = { + player: PropTypes.number.isRequired, + isFinal: PropTypes.bool.isRequired, + onFormSubmit: PropTypes.func.isRequired, +}; + export default PlayerSubmissionForm; \ No newline at end of file diff --git a/src/components/RecentSubmission.js b/src/components/RecentSubmission.js index c353d80e..00632000 100644 --- a/src/components/RecentSubmission.js +++ b/src/components/RecentSubmission.js @@ -1,4 +1,5 @@ import React from 'react'; +import PropTypes from 'prop-types'; import './RecentSubmission.css'; const RecentSubmission = (props) => { @@ -20,4 +21,9 @@ const RecentSubmission = (props) => { } +RecentSubmission.propTypes = { + poem: PropTypes.array.isRequired, + isFinal: PropTypes.bool.isRequired, +}; + export default RecentSubmission; \ No newline at end of file