diff --git a/packages/react-scripts/template/src/components/example/ArtifactsViewer.js b/packages/react-scripts/template/src/components/example/ArtifactsViewer.js index 7b45c94e11e..e7ec9f43663 100644 --- a/packages/react-scripts/template/src/components/example/ArtifactsViewer.js +++ b/packages/react-scripts/template/src/components/example/ArtifactsViewer.js @@ -1,13 +1,14 @@ import React from 'react' -import { HeaderBlock, colors } from '@fs/zion-ui' +import { colors } from '@fs/zion-ui' import { css } from '@emotion/core' import axios from '@fs/zion-axios' -import RequireSignedInUser from './RequireSignedInUser' import LazyImage from './LazyImage' +import Banner from './Banner' const artifactsCss = css` margin: 0 -24px; ` + const ArtifactsViewer = ({ user: { cisId } }) => { // Use our custom hook const [{ loading, artifacts, photos, error }] = useArtifacts(cisId) @@ -83,27 +84,7 @@ const PhotoViewer = ({ photos, height = 250 }) => { ) } -const bannerCss = css` - padding: 25px; - text-align: center; - color: ${colors.text.primary}; -` -const Banner = ({ message, color }) => ( -
- -
-) - -const NotSignedInComponent = () => ( - -) - -export default (props) => ( - -) +export default React.memo(ArtifactsViewer) // Custom hook for fetching artifacts from the the memory service function useArtifacts(cisId) { diff --git a/packages/react-scripts/template/src/components/example/Banner.js b/packages/react-scripts/template/src/components/example/Banner.js index b61d561a4a8..a5306dc6d6e 100644 --- a/packages/react-scripts/template/src/components/example/Banner.js +++ b/packages/react-scripts/template/src/components/example/Banner.js @@ -13,4 +13,4 @@ const Banner = ({ message, color }) => ( ) -export default Banner +export default React.memo(Banner) diff --git a/packages/react-scripts/template/src/components/example/PurposeStatementGenerator.js b/packages/react-scripts/template/src/components/example/PurposeStatementGenerator.js index f18b5ceca74..fb3b344ffa7 100644 --- a/packages/react-scripts/template/src/components/example/PurposeStatementGenerator.js +++ b/packages/react-scripts/template/src/components/example/PurposeStatementGenerator.js @@ -1,5 +1,6 @@ import React from 'react' import { css } from '@emotion/core' +import * as Yup from 'yup' import { Button, TextField, @@ -14,30 +15,53 @@ import { Separator, useAtSize, } from '@fs/zion-ui' -import * as Yup from 'yup' -const PurposeStatementGenerator = () => { - // Create a list of options for the autosuggest form element - const emotions = ['joy', 'surprise', 'glee', 'astonishment', 'thirst', 'excitement'] - const emotionOptions = emotions.map((emotion, idx) => ({ - id: idx, - key: idx, - primaryText: emotion, - })) +// Create a list of options for the autosuggest form element +const emotions = ['joy', 'surprise', 'glee', 'astonishment', 'thirst', 'excitement'] - const defaultValues = { - adjective1: 'inspiring', - pluralNoun1: 'experiences', - emotion1: emotionOptions[0], - pluralNoun2: 'people', - pluralNoun3: 'families', - verb1: 'discover', - verb2: 'gather', - verb3: 'connect', - timePeriod1: 'future', - debug: false, - } +const emotionOptions = emotions.map((emotion, idx) => ({ + id: idx, + key: idx, + primaryText: emotion, +})) + +const defaultValues = { + adjective1: 'inspiring', + pluralNoun1: 'experiences', + emotion1: emotionOptions[0], + pluralNoun2: 'people', + pluralNoun3: 'families', + verb1: 'discover', + verb2: 'gather', + verb3: 'connect', + timePeriod1: 'future', + debug: false, +} +// Yup is a 3rd party library for validating +// objects. It has a similar api to prop-types. +// Docs here: https://www.npmjs.com/package/yup +const validationSchema = Yup.object().shape({ + adjective1: Yup.string() + .matches(/ing$/, 'Must end with "ing"') + .required('Required'), + pluralNoun3: Yup.string() + .min(3) + .max(10) + .required('Required'), + + pluralNoun1: Yup.string().required('Required'), + emotion1: Yup.string() + .required('Required') + .nullable(), + pluralNoun2: Yup.string().required('Required'), + verb1: Yup.string().required('Required'), + verb2: Yup.string().required('Required'), + verb3: Yup.string().required('Required'), + timePeriod1: Yup.string().required('Required'), +}) + +const PurposeStatementGenerator = () => { const [data, setData] = React.useState(defaultValues) const atSize = useAtSize() @@ -47,29 +71,6 @@ const PurposeStatementGenerator = () => { const handleStartOver = () => setData(defaultValues) - // Yup is a 3rd party library for validating - // objects. It has a similar api to prop-types. - // Docs here: https://www.npmjs.com/package/yup - const validationSchema = Yup.object().shape({ - adjective1: Yup.string() - .matches(/ing$/, 'Must end with "ing"') - .required('Required'), - pluralNoun3: Yup.string() - .min(3) - .max(10) - .required('Required'), - - pluralNoun1: Yup.string().required('Required'), - emotion1: Yup.string() - .required('Required') - .nullable(), - pluralNoun2: Yup.string().required('Required'), - verb1: Yup.string().required('Required'), - verb2: Yup.string().required('Required'), - verb3: Yup.string().required('Required'), - timePeriod1: Yup.string().required('Required'), - }) - return (