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 (
|