From f1daf0905dbe6dea0227cd731c771ab9130a134d Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 21 Mar 2020 22:04:13 -0700 Subject: [PATCH 1/2] Factor out useDynamicFlow hook --- client/ionic/src/hooks/useDynamicFlow.ts | 17 +++++++++++++++++ client/ionic/src/pages/About.tsx | 19 +------------------ client/ionic/src/pages/ProtectYourself.tsx | 19 +------------------ 3 files changed, 19 insertions(+), 36 deletions(-) create mode 100644 client/ionic/src/hooks/useDynamicFlow.ts diff --git a/client/ionic/src/hooks/useDynamicFlow.ts b/client/ionic/src/hooks/useDynamicFlow.ts new file mode 100644 index 0000000000..413e3f7379 --- /dev/null +++ b/client/ionic/src/hooks/useDynamicFlow.ts @@ -0,0 +1,17 @@ +import { useEffect, useState } from 'react'; +import { FlowLoader, LoadedFlow } from '../content/flow'; +import { getUserContext } from '../content/userContext'; + +export default function useDynamicFlow(id: string) { + const [flow, setFlow] = useState({} as LoadedFlow); + + useEffect(() => { + async function fetchFlow() { + const f = await FlowLoader.loadFlow(id, getUserContext()); + setFlow(f); + } + fetchFlow(); + }, [id]); + + return flow; +} diff --git a/client/ionic/src/pages/About.tsx b/client/ionic/src/pages/About.tsx index a0b1bfa5f7..cbec62e88d 100644 --- a/client/ionic/src/pages/About.tsx +++ b/client/ionic/src/pages/About.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { FlowLoader, Flow, LoadedFlow } from '../content/flow'; import { IonContent, IonPage, @@ -14,23 +13,7 @@ import { IonImg, } from '@ionic/react'; import 'tachyons'; -import { getUserContext } from '../content/userContext'; - -// TODO: Abstract this, DRY. - -function useDynamicFlow(id: string) { - const [flow, setFlow] = React.useState({} as LoadedFlow); - - React.useEffect(() => { - async function fetchFlow() { - const f = await FlowLoader.loadFlow(id, getUserContext()); - setFlow(f); - } - fetchFlow(); - }, [id]); - - return flow; -} +import useDynamicFlow from '../hooks/useDynamicFlow'; // TODO: Rename to Splash, after other PRs to avoid conflicts. const About: React.FC = () => { diff --git a/client/ionic/src/pages/ProtectYourself.tsx b/client/ionic/src/pages/ProtectYourself.tsx index 21684dbd93..a3b92e1621 100644 --- a/client/ionic/src/pages/ProtectYourself.tsx +++ b/client/ionic/src/pages/ProtectYourself.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { FlowLoader, Flow, LoadedFlow } from '../content/flow'; import { IonContent, IonPage, @@ -11,23 +10,7 @@ import { } from '@ionic/react'; import TopNav from '../components/TopNav'; import 'tachyons'; -import { getUserContext } from '../content/userContext'; - -// TODO: Abstract this, DRY. - -function useDynamicFlow(id: string) { - const [flow, setFlow] = React.useState({} as LoadedFlow); - - React.useEffect(() => { - async function fetchFlow() { - const f = await FlowLoader.loadFlow(id, getUserContext()); - setFlow(f); - } - fetchFlow(); - }, [id]); - - return flow; -} +import useDynamicFlow from '../hooks/useDynamicFlow'; const ProtectYourself: React.FC = () => { // TODO: Refactor this out to separate Flow components. Use a dictionary From e63012dcdfb38c495339d9d708ca7b8c78173392 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 21 Mar 2020 22:29:32 -0700 Subject: [PATCH 2/2] Update credits.yaml --- content/credits.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/content/credits.yaml b/content/credits.yaml index 00de943249..f61264d32e 100644 --- a/content/credits.yaml +++ b/content/credits.yaml @@ -19,6 +19,7 @@ team: - Mark Graves, Jr - Hunter Spinks - Bob Lee + - Simon Sturmer # Add yourself here when you first submit a contribution.