From 04a70a41f24ca8ed9b8f769e73d035e9bd4e2017 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 10:28:14 -0700 Subject: [PATCH 01/32] Remove gradient gif loading bar --- components/Map/index.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/components/Map/index.js b/components/Map/index.js index a8305e8f4..de3d8ac14 100644 --- a/components/Map/index.js +++ b/components/Map/index.js @@ -395,17 +395,7 @@ class MapContainer extends React.Component { /> {(isDbLoading || isMapLoading) && ( - <> - - )} ); From a8d65bc93e88eca9a38cff3dbd69d4533fe07a84 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 10:51:24 -0700 Subject: [PATCH 02/32] Create Loading folder to contain FactModal and newly created LoadingModal --- components/{ => Loading}/FactModal/index.jsx | 0 components/Loading/LoadingModal/index.jsx | 49 ++++++++++++++++++++ components/Map/index.js | 5 +- 3 files changed, 53 insertions(+), 1 deletion(-) rename components/{ => Loading}/FactModal/index.jsx (100%) create mode 100644 components/Loading/LoadingModal/index.jsx diff --git a/components/FactModal/index.jsx b/components/Loading/FactModal/index.jsx similarity index 100% rename from components/FactModal/index.jsx rename to components/Loading/FactModal/index.jsx diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal/index.jsx new file mode 100644 index 000000000..e5da8656d --- /dev/null +++ b/components/Loading/LoadingModal/index.jsx @@ -0,0 +1,49 @@ +import React, { useState, useEffect } from 'react'; +import makeStyles from '@mui/styles/makeStyles'; +import { Modal, Typography } from '@mui/material'; +import { seconds } from '@utils'; +import facts from '@data/facts'; + +const useStyles = makeStyles(theme => ({ + modal: { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + }, + paper: { + backgroundColor: theme.palette.background.paper, + boxShadow: theme.shadows[5], + padding: theme.spacing(2, 4, 3), + textAlign: 'center', + }, +})); + +export default function FactModal() { + const classes = useStyles(); + const [open, setOpen] = useState(true); + const [currentFactIndex, setCurrentFactIndex] = useState(0); + const factsLength = facts.length; + + useEffect(() => { + let intervalId = null; + intervalId = setInterval(() => { + setCurrentFactIndex((currentFactIndex + 1) % factsLength); + }, seconds(5)); + return () => clearInterval(intervalId); + }, [currentFactIndex, factsLength]); + + const handleClose = () => { + setOpen(false); + }; + + return ( + +
+ + Did you know? + + {facts[currentFactIndex]} +
+
+ ); +} diff --git a/components/Map/index.js b/components/Map/index.js index de3d8ac14..671848b14 100644 --- a/components/Map/index.js +++ b/components/Map/index.js @@ -20,7 +20,7 @@ import { updateMapPosition } from '@reducers/ui'; import { trackMapExport } from '@reducers/analytics'; import { INTERNAL_DATE_SPEC } from '../common/CONSTANTS'; import { getTypeIdFromTypeName } from '@utils'; -import FactModal from '@components/FactModal'; +import FactModal from '@components/Loading/FactModal'; import CookieNotice from '../main/CookieNotice'; import Map from './Map'; import moment from 'moment'; @@ -395,7 +395,10 @@ class MapContainer extends React.Component { /> {(isDbLoading || isMapLoading) && ( + <> + + )} ); From dfe14512ac1ee42b695d958b5954019b45d72315 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 10:51:54 -0700 Subject: [PATCH 03/32] Remove gif import --- components/Map/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/components/Map/index.js b/components/Map/index.js index 671848b14..ed02ff8d0 100644 --- a/components/Map/index.js +++ b/components/Map/index.js @@ -24,7 +24,6 @@ import FactModal from '@components/Loading/FactModal'; import CookieNotice from '../main/CookieNotice'; import Map from './Map'; import moment from 'moment'; -import gif from '@assets/loading.gif'; import ddbh from '@utils/duckDbHelpers.js'; import DbContext from '@db/DbContext'; From e85bd97de33ccbc68a826cdc9a8eaadfff22b16e Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 12:09:28 -0700 Subject: [PATCH 04/32] Update LoadingModal name --- components/Loading/LoadingModal/index.jsx | 2 +- components/Map/index.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal/index.jsx index e5da8656d..3900b5191 100644 --- a/components/Loading/LoadingModal/index.jsx +++ b/components/Loading/LoadingModal/index.jsx @@ -18,7 +18,7 @@ const useStyles = makeStyles(theme => ({ }, })); -export default function FactModal() { +export default function LoadingModal() { const classes = useStyles(); const [open, setOpen] = useState(true); const [currentFactIndex, setCurrentFactIndex] = useState(0); diff --git a/components/Map/index.js b/components/Map/index.js index ed02ff8d0..b0cf92cb4 100644 --- a/components/Map/index.js +++ b/components/Map/index.js @@ -20,6 +20,7 @@ import { updateMapPosition } from '@reducers/ui'; import { trackMapExport } from '@reducers/analytics'; import { INTERNAL_DATE_SPEC } from '../common/CONSTANTS'; import { getTypeIdFromTypeName } from '@utils'; +import LoadingModal from '../Loading/LoadingModal'; import FactModal from '@components/Loading/FactModal'; import CookieNotice from '../main/CookieNotice'; import Map from './Map'; @@ -395,7 +396,7 @@ class MapContainer extends React.Component { {(isDbLoading || isMapLoading) && ( <> - + )} From 126a7b092f5ff5fa97e2a3fad5bcb270c859de72 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 12:10:19 -0700 Subject: [PATCH 05/32] Style FactModal to below --- components/Loading/FactModal/index.jsx | 52 +++++++++++++------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index e5da8656d..0a8239c62 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -1,49 +1,51 @@ import React, { useState, useEffect } from 'react'; -import makeStyles from '@mui/styles/makeStyles'; -import { Modal, Typography } from '@mui/material'; +import { styled } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Modal from '@mui/material/Modal'; +import Typography from '@mui/material/Typography'; import { seconds } from '@utils'; import facts from '@data/facts'; -const useStyles = makeStyles(theme => ({ - modal: { - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - }, - paper: { - backgroundColor: theme.palette.background.paper, - boxShadow: theme.shadows[5], - padding: theme.spacing(2, 4, 3), - textAlign: 'center', - }, +const StyledModal = styled(Modal)({ + display: 'flex', + alignItems: 'flex-end', + justifyContent: 'center', +}); + +const StyledBox = styled(Box)(({ theme }) => ({ + position: 'absolute', + bottom: '25vh', + backgroundColor: '#424242', + padding: theme.spacing(2, 4, 3), + textAlign: 'center', })); export default function FactModal() { - const classes = useStyles(); const [open, setOpen] = useState(true); const [currentFactIndex, setCurrentFactIndex] = useState(0); const factsLength = facts.length; useEffect(() => { - let intervalId = null; - intervalId = setInterval(() => { - setCurrentFactIndex((currentFactIndex + 1) % factsLength); + const intervalId = setInterval(() => { + setCurrentFactIndex(prevIndex => (prevIndex + 1) % factsLength); }, seconds(5)); return () => clearInterval(intervalId); - }, [currentFactIndex, factsLength]); + }, [factsLength]); const handleClose = () => { setOpen(false); }; return ( - -
+ + - Did you know? + Did you know Fact? + + + {facts[currentFactIndex]} - {facts[currentFactIndex]} -
-
+ + ); } From a633bfa3aab10d92cc2ca39958bb6d09910898b0 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 12:11:30 -0700 Subject: [PATCH 06/32] Update bg color --- components/Loading/FactModal/index.jsx | 51 +++++++++++++------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index 0a8239c62..265f636be 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -1,51 +1,50 @@ import React, { useState, useEffect } from 'react'; -import { styled } from '@mui/material/styles'; -import Box from '@mui/material/Box'; -import Modal from '@mui/material/Modal'; -import Typography from '@mui/material/Typography'; +import makeStyles from '@mui/styles/makeStyles'; +import { Modal, Typography } from '@mui/material'; import { seconds } from '@utils'; import facts from '@data/facts'; -const StyledModal = styled(Modal)({ - display: 'flex', - alignItems: 'flex-end', - justifyContent: 'center', -}); - -const StyledBox = styled(Box)(({ theme }) => ({ - position: 'absolute', - bottom: '25vh', - backgroundColor: '#424242', - padding: theme.spacing(2, 4, 3), - textAlign: 'center', +const useStyles = makeStyles(theme => ({ + modal: { + display: 'flex', + alignItems: 'flex-end', + justifyContent: 'center', + }, + paper: { + position: 'absolute', + bottom: '25vh', + backgroundColor: '#424242', + padding: theme.spacing(2, 4, 3), + textAlign: 'center', + }, })); export default function FactModal() { + const classes = useStyles(); const [open, setOpen] = useState(true); const [currentFactIndex, setCurrentFactIndex] = useState(0); const factsLength = facts.length; useEffect(() => { - const intervalId = setInterval(() => { - setCurrentFactIndex(prevIndex => (prevIndex + 1) % factsLength); + let intervalId = null; + intervalId = setInterval(() => { + setCurrentFactIndex((currentFactIndex + 1) % factsLength); }, seconds(5)); return () => clearInterval(intervalId); - }, [factsLength]); + }, [currentFactIndex, factsLength]); const handleClose = () => { setOpen(false); }; return ( - - + +
Did you know Fact? - - {facts[currentFactIndex]} - - - + {facts[currentFactIndex]} +
+
); } From 43c30e9c6933d532cbe8f173445b6a93c445887c Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 12:12:21 -0700 Subject: [PATCH 07/32] Disable click out logic --- components/Loading/FactModal/index.jsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index 265f636be..e24382d56 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -33,12 +33,8 @@ export default function FactModal() { return () => clearInterval(intervalId); }, [currentFactIndex, factsLength]); - const handleClose = () => { - setOpen(false); - }; - return ( - +
Did you know Fact? From 1c5b2e4cc0c5bda7cf6f4176d76b378a55ca8011 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 12:22:05 -0700 Subject: [PATCH 08/32] Update fun fact title from h5 to body1 --- components/Loading/FactModal/index.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index e24382d56..b94fede1a 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -36,10 +36,11 @@ export default function FactModal() { return (
- - Did you know Fact? + + Did you know? + {' '} + {facts[currentFactIndex]} - {facts[currentFactIndex]}
); From e090e52a71770f5d33b0f357d820afead2288cb7 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 12:28:53 -0700 Subject: [PATCH 09/32] Replace MUIv4 makeStyle with MUIv5 styled --- components/Loading/FactModal/index.jsx | 47 +++++++++++++------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index b94fede1a..ebe6b17c6 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -1,47 +1,46 @@ import React, { useState, useEffect } from 'react'; -import makeStyles from '@mui/styles/makeStyles'; -import { Modal, Typography } from '@mui/material'; +import { styled } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Modal from '@mui/material/Modal'; +import Typography from '@mui/material/Typography'; import { seconds } from '@utils'; import facts from '@data/facts'; -const useStyles = makeStyles(theme => ({ - modal: { - display: 'flex', - alignItems: 'flex-end', - justifyContent: 'center', - }, - paper: { - position: 'absolute', - bottom: '25vh', - backgroundColor: '#424242', - padding: theme.spacing(2, 4, 3), - textAlign: 'center', - }, +const StyledModal = styled(Modal)({ + display: 'flex', + alignItems: 'flex-end', + justifyContent: 'center', +}); + +const StyledBox = styled(Box)(({ theme }) => ({ + position: 'absolute', + bottom: '25vh', + backgroundColor: '#424242', + padding: theme.spacing(2, 4, 3), + textAlign: 'center', })); export default function FactModal() { - const classes = useStyles(); const [open, setOpen] = useState(true); const [currentFactIndex, setCurrentFactIndex] = useState(0); const factsLength = facts.length; useEffect(() => { - let intervalId = null; - intervalId = setInterval(() => { - setCurrentFactIndex((currentFactIndex + 1) % factsLength); + const intervalId = setInterval(() => { + setCurrentFactIndex(prevIndex => (prevIndex + 1) % factsLength); }, seconds(5)); return () => clearInterval(intervalId); - }, [currentFactIndex, factsLength]); + }, [factsLength]); return ( - -
+ + Did you know? {' '} {facts[currentFactIndex]} -
-
+ + ); } From c1332b69c7bab2b1fdc08d4c70f1162dfa742ba5 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 13:07:27 -0700 Subject: [PATCH 10/32] Style font size family and style maxWidth for text wrap --- components/Loading/FactModal/index.jsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index ebe6b17c6..dec8ac3f0 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -8,7 +8,7 @@ import facts from '@data/facts'; const StyledModal = styled(Modal)({ display: 'flex', - alignItems: 'flex-end', + alignItems: 'flex', justifyContent: 'center', }); @@ -18,6 +18,13 @@ const StyledBox = styled(Box)(({ theme }) => ({ backgroundColor: '#424242', padding: theme.spacing(2, 4, 3), textAlign: 'center', + maxWidth: '533px', + borderRadius: '10px', +})); + +const StyledTypography = styled(Typography)(({ theme }) => ({ + fontSize: '16px', + fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', })); export default function FactModal() { @@ -35,11 +42,11 @@ export default function FactModal() { return ( - + Did you know? {' '} {facts[currentFactIndex]} - + ); From 87f4bfe273ca6994b432040b372811b0a838e9c8 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 14:33:09 -0700 Subject: [PATCH 11/32] Fix overlapping backdrop, update padding & font styling --- components/Loading/FactModal/index.jsx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index dec8ac3f0..52918a6b5 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -5,6 +5,7 @@ import Modal from '@mui/material/Modal'; import Typography from '@mui/material/Typography'; import { seconds } from '@utils'; import facts from '@data/facts'; +import fonts from '@theme/fonts'; const StyledModal = styled(Modal)({ display: 'flex', @@ -14,18 +15,20 @@ const StyledModal = styled(Modal)({ const StyledBox = styled(Box)(({ theme }) => ({ position: 'absolute', - bottom: '25vh', + bottom: '20vh', backgroundColor: '#424242', - padding: theme.spacing(2, 4, 3), + padding: theme.spacing(4, 4, 4), textAlign: 'center', maxWidth: '533px', + width: 'auto', borderRadius: '10px', })); -const StyledTypography = styled(Typography)(({ theme }) => ({ +const StyledTypography = styled(Typography)({ fontSize: '16px', - fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', -})); + fontFamily: fonts.family.roboto, + fontWeight: fonts.weight.regular, +}); export default function FactModal() { const [open, setOpen] = useState(true); @@ -40,7 +43,7 @@ export default function FactModal() { }, [factsLength]); return ( - + Did you know? From 526bd612fb443f28523d88ee7f41b2ca597c6fe0 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 14:43:04 -0700 Subject: [PATCH 12/32] Remove unused state --- components/Loading/FactModal/index.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index 52918a6b5..0b3b83f45 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -18,6 +18,7 @@ const StyledBox = styled(Box)(({ theme }) => ({ bottom: '20vh', backgroundColor: '#424242', padding: theme.spacing(4, 4, 4), + boxShadow: theme.shadows[5], textAlign: 'center', maxWidth: '533px', width: 'auto', @@ -31,7 +32,6 @@ const StyledTypography = styled(Typography)({ }); export default function FactModal() { - const [open, setOpen] = useState(true); const [currentFactIndex, setCurrentFactIndex] = useState(0); const factsLength = facts.length; @@ -43,7 +43,7 @@ export default function FactModal() { }, [factsLength]); return ( - + Did you know? From 4bf5efedecfb6cf9ed2291a48ce9e4d1762df50c Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 14:58:35 -0700 Subject: [PATCH 13/32] Remove redundant styling --- components/Loading/FactModal/index.jsx | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index 0b3b83f45..068a8862c 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -5,7 +5,6 @@ import Modal from '@mui/material/Modal'; import Typography from '@mui/material/Typography'; import { seconds } from '@utils'; import facts from '@data/facts'; -import fonts from '@theme/fonts'; const StyledModal = styled(Modal)({ display: 'flex', @@ -25,12 +24,6 @@ const StyledBox = styled(Box)(({ theme }) => ({ borderRadius: '10px', })); -const StyledTypography = styled(Typography)({ - fontSize: '16px', - fontFamily: fonts.family.roboto, - fontWeight: fonts.weight.regular, -}); - export default function FactModal() { const [currentFactIndex, setCurrentFactIndex] = useState(0); const factsLength = facts.length; @@ -45,11 +38,11 @@ export default function FactModal() { return ( - + Did you know? {' '} {facts[currentFactIndex]} - +
); From b23a48c3425432db4a37d546f0a81a70eb4e3238 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 15:48:50 -0700 Subject: [PATCH 14/32] Adjust vh position from bottom --- components/Loading/FactModal/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index 068a8862c..f774c1afb 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -14,7 +14,7 @@ const StyledModal = styled(Modal)({ const StyledBox = styled(Box)(({ theme }) => ({ position: 'absolute', - bottom: '20vh', + bottom: '15vh', backgroundColor: '#424242', padding: theme.spacing(4, 4, 4), boxShadow: theme.shadows[5], From 0fbf312b37c072771d010aeb5ccb402798776b69 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 15:49:25 -0700 Subject: [PATCH 15/32] Add 311 logo png --- assets/311Logo.png | Bin 0 -> 16624 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/311Logo.png diff --git a/assets/311Logo.png b/assets/311Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5009bf2ee59079c9bd2a6a15facc3f291f8940c8 GIT binary patch literal 16624 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 KiPQ)g1pFT;&ovzY literal 0 HcmV?d00001 From f8c7660ba21baaa2fe7fe10dd83d40a782df2119 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 15:54:18 -0700 Subject: [PATCH 16/32] Build LoadingModal: Convert to MUI v5 'styled' from MUI v4 'makeStyle'; Remove click out logic; Update text typography and styling; Import 311 logo --- components/Loading/LoadingModal/index.jsx | 86 ++++++++++++----------- 1 file changed, 44 insertions(+), 42 deletions(-) diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal/index.jsx index 3900b5191..930c55456 100644 --- a/components/Loading/LoadingModal/index.jsx +++ b/components/Loading/LoadingModal/index.jsx @@ -1,49 +1,51 @@ -import React, { useState, useEffect } from 'react'; -import makeStyles from '@mui/styles/makeStyles'; -import { Modal, Typography } from '@mui/material'; -import { seconds } from '@utils'; -import facts from '@data/facts'; +import React from 'react'; +import { styled } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Modal from '@mui/material/Modal'; +import Typography from '@mui/material/Typography'; +import fonts from '@theme/fonts'; +import LoadingModal311Logo from '@assets/311Logo.png'; -const useStyles = makeStyles(theme => ({ - modal: { - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - }, - paper: { - backgroundColor: theme.palette.background.paper, - boxShadow: theme.shadows[5], - padding: theme.spacing(2, 4, 3), - textAlign: 'center', - }, -})); - -export default function LoadingModal() { - const classes = useStyles(); - const [open, setOpen] = useState(true); - const [currentFactIndex, setCurrentFactIndex] = useState(0); - const factsLength = facts.length; +const StyledModal = styled(Modal)({ + display: 'flex', + alignItems: 'flex', + justifyContent: 'center', +}); - useEffect(() => { - let intervalId = null; - intervalId = setInterval(() => { - setCurrentFactIndex((currentFactIndex + 1) % factsLength); - }, seconds(5)); - return () => clearInterval(intervalId); - }, [currentFactIndex, factsLength]); +const StyledBox = styled(Box)(({ theme }) => ({ + position: 'absolute', + bottom: '35vh', + backgroundColor: '#29404F', + padding: theme.spacing(4, 4, 4), + boxShadow: theme.shadows[5], + textAlign: 'center', + maxWidth: '533px', + maxHeight: '469px', + borderRadius: '20px', +})); - const handleClose = () => { - setOpen(false); - }; +const StyledTypography = styled(Typography)({ + fontSize: '18px', + fontFamily: fonts.family.roboto, + fontWeight: fonts.weight.medium, +}); +export default function LoadingModal() { return ( - -
- - Did you know? - - {facts[currentFactIndex]} -
-
+ + + 311 data logo + + Loading data points and map. Please give us a moment. + For official information about 311 services in Los Angeles, + please visit MyLA311. + + + Loading data points and map. Please give us a moment. + For official information about 311 services in Los Angeles, + please visit MyLA311. + + + ); } From 720e52b5cc3a554edd192ac756f167c9730029c8 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 16:06:12 -0700 Subject: [PATCH 17/32] Refactor: aggregate MUI imports --- components/Loading/FactModal/index.jsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index f774c1afb..b8d8ffda3 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -1,8 +1,6 @@ import React, { useState, useEffect } from 'react'; import { styled } from '@mui/material/styles'; -import Box from '@mui/material/Box'; -import Modal from '@mui/material/Modal'; -import Typography from '@mui/material/Typography'; +import { Box, Modal, Typography } from '@mui/material'; import { seconds } from '@utils'; import facts from '@data/facts'; From 1b6bc443aa8eae41e771a3a04b800103be2a3ea3 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 18:42:36 -0700 Subject: [PATCH 18/32] Fix dual modal click trap issue: Two MUI Modal components prevents link on LoadingModal to be clickable. Switch FactModal to Card component and resolved --- components/Loading/FactModal/index.jsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index b8d8ffda3..fc42cbbbc 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -1,10 +1,10 @@ import React, { useState, useEffect } from 'react'; import { styled } from '@mui/material/styles'; -import { Box, Modal, Typography } from '@mui/material'; +import { Card, Box, Typography } from '@mui/material'; import { seconds } from '@utils'; import facts from '@data/facts'; -const StyledModal = styled(Modal)({ +const StyledCard = styled(Card)({ display: 'flex', alignItems: 'flex', justifyContent: 'center', @@ -20,6 +20,7 @@ const StyledBox = styled(Box)(({ theme }) => ({ maxWidth: '533px', width: 'auto', borderRadius: '10px', + zIndex: 50000, // This prevents from being overlay by LoadingModal's backdrop })); export default function FactModal() { @@ -34,7 +35,7 @@ export default function FactModal() { }, [factsLength]); return ( - + Did you know? @@ -42,6 +43,6 @@ export default function FactModal() { {facts[currentFactIndex]} - + ); } From b05ff1e814207844bcb99da79d0a0724bfaf27d7 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 18:43:23 -0700 Subject: [PATCH 19/32] Add official 311 gov link --- components/Loading/LoadingModal/index.jsx | 30 ++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal/index.jsx index 930c55456..5998fc21d 100644 --- a/components/Loading/LoadingModal/index.jsx +++ b/components/Loading/LoadingModal/index.jsx @@ -1,10 +1,9 @@ import React from 'react'; import { styled } from '@mui/material/styles'; -import Box from '@mui/material/Box'; -import Modal from '@mui/material/Modal'; -import Typography from '@mui/material/Typography'; +import { Box, Modal, Typography, Link } from '@mui/material'; import fonts from '@theme/fonts'; import LoadingModal311Logo from '@assets/311Logo.png'; +import colors from '@theme/colors'; const StyledModal = styled(Modal)({ display: 'flex', @@ -14,7 +13,7 @@ const StyledModal = styled(Modal)({ const StyledBox = styled(Box)(({ theme }) => ({ position: 'absolute', - bottom: '35vh', + bottom: '40vh', backgroundColor: '#29404F', padding: theme.spacing(4, 4, 4), boxShadow: theme.shadows[5], @@ -30,21 +29,30 @@ const StyledTypography = styled(Typography)({ fontWeight: fonts.weight.medium, }); +const ExternalLink = styled(Link)({ + color: colors.primaryFocus, + textDecoration: 'none', + '&:hover': { + textDecoration: 'none', + }, +}); + export default function LoadingModal() { return ( - + 311 data logo Loading data points and map. Please give us a moment. For official information about 311 services in Los Angeles, - please visit MyLA311. - - - Loading data points and map. Please give us a moment. - For official information about 311 services in Los Angeles, - please visit MyLA311. + please visit + {' '} + + MyLA311 + + . + ); From 4aa1998c555e27b9b7e31a4c6da556824620210d Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 20:26:13 -0700 Subject: [PATCH 20/32] Add loading footer --- components/Loading/LoadingModal/index.jsx | 30 +++++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal/index.jsx index 5998fc21d..da76a9adb 100644 --- a/components/Loading/LoadingModal/index.jsx +++ b/components/Loading/LoadingModal/index.jsx @@ -1,8 +1,11 @@ import React from 'react'; import { styled } from '@mui/material/styles'; -import { Box, Modal, Typography, Link } from '@mui/material'; +import { + Box, Modal, Typography, Link, +} from '@mui/material'; import fonts from '@theme/fonts'; import LoadingModal311Logo from '@assets/311Logo.png'; +import HFLALogo from '@assets/hack_for_la_logo.png'; import colors from '@theme/colors'; const StyledModal = styled(Modal)({ @@ -13,18 +16,17 @@ const StyledModal = styled(Modal)({ const StyledBox = styled(Box)(({ theme }) => ({ position: 'absolute', - bottom: '40vh', + bottom: '35vh', backgroundColor: '#29404F', padding: theme.spacing(4, 4, 4), boxShadow: theme.shadows[5], textAlign: 'center', maxWidth: '533px', - maxHeight: '469px', borderRadius: '20px', })); const StyledTypography = styled(Typography)({ - fontSize: '18px', + fontSize: '16px', fontFamily: fonts.family.roboto, fontWeight: fonts.weight.medium, }); @@ -37,6 +39,19 @@ const ExternalLink = styled(Link)({ }, }); +const styledFooter = { + justifyContent: 'center', + display: 'flex', + alignItems: 'center', + marginTop: '15px', +}; + +const styledFooterText = { + fontSize: '14px', + fontFamily: fonts.family.roboto, + fontWeight: fonts.weight.medium, +}; + export default function LoadingModal() { return ( @@ -52,7 +67,12 @@ export default function LoadingModal() { . - + + + Powered by Volunteers at Hack for LA + + Hack For LA logo + ); From d68fd77394f08e113990295f8363602d5ac04ad0 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 20:26:46 -0700 Subject: [PATCH 21/32] Adjust vh position --- components/Loading/FactModal/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FactModal/index.jsx index fc42cbbbc..d863cd92b 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FactModal/index.jsx @@ -12,7 +12,7 @@ const StyledCard = styled(Card)({ const StyledBox = styled(Box)(({ theme }) => ({ position: 'absolute', - bottom: '15vh', + bottom: '10vh', backgroundColor: '#424242', padding: theme.spacing(4, 4, 4), boxShadow: theme.shadows[5], From eebe2dc1765e88120229b8cb504d9cc5c6eb54b6 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 21:30:39 -0700 Subject: [PATCH 22/32] Install dependency mui system --- package-lock.json | 91 ++++++++++++++++++++++++----------------------- package.json | 1 + 2 files changed, 47 insertions(+), 45 deletions(-) diff --git a/package-lock.json b/package-lock.json index a3c1acd95..7d31b0b8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@mui/lab": "^5.0.0-alpha.150", "@mui/material": "^5.14.15", "@mui/styles": "^5.14.15", + "@mui/system": "^5.15.14", "@redux-devtools/extension": "^3.2.5", "@turf/turf": "^6.5.0", "apache-arrow": "^13.0.0", @@ -1843,9 +1844,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2676,12 +2677,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.14.15", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.15.tgz", - "integrity": "sha512-V2Xh+Tu6A07NoSpup0P9m29GwvNMYl5DegsGWqlOTJyAV7cuuVjmVPqxgvL8xBng4R85xqIQJRMjtYYktoPNuQ==", + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", + "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/utils": "^5.14.15", + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.14", "prop-types": "^15.8.1" }, "engines": { @@ -2689,7 +2690,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -2702,13 +2703,13 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.14.15", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.15.tgz", - "integrity": "sha512-mbOjRf867BysNpexe5Z/P8s3bWzDPNowmKhi7gtNDP/LPEeqAfiDSuC4WPTXmtvse1dCl30Nl755OLUYuoi7Mw==", + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", "dependencies": { - "@babel/runtime": "^7.23.2", + "@babel/runtime": "^7.23.9", "@emotion/cache": "^11.11.0", - "csstype": "^3.1.2", + "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { @@ -2716,7 +2717,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.4.1", @@ -2778,17 +2779,17 @@ "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" }, "node_modules/@mui/system": { - "version": "5.14.15", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.15.tgz", - "integrity": "sha512-zr0Gdk1RgKiEk+tCMB900LaOpEC8NaGvxtkmMdL/CXgkqQZSVZOt2PQsxJWaw7kE4YVkIe4VukFVc43qcq9u3w==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/private-theming": "^5.14.15", - "@mui/styled-engine": "^5.14.15", - "@mui/types": "^7.2.7", - "@mui/utils": "^5.14.15", - "clsx": "^2.0.0", - "csstype": "^3.1.2", + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.14.tgz", + "integrity": "sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { @@ -2796,7 +2797,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -2817,9 +2818,9 @@ } }, "node_modules/@mui/types": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.7.tgz", - "integrity": "sha512-sofpWmcBqOlTzRbr1cLQuUDKaUYVZTw8ENQrtL39TECRNENEzwgnNPh6WMfqMZlMvf1Aj9DLg74XPjnLr0izUQ==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0" }, @@ -2830,12 +2831,12 @@ } }, "node_modules/@mui/utils": { - "version": "5.14.15", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.15.tgz", - "integrity": "sha512-QBfHovAvTa0J1jXuYDaXGk+Yyp7+Fm8GSqx6nK2JbezGqzCFfirNdop/+bL9Flh/OQ/64PeXcW4HGDdOge+n3A==", + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", + "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", "dependencies": { - "@babel/runtime": "^7.23.2", - "@types/prop-types": "^15.7.8", + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", "prop-types": "^15.8.1", "react-is": "^18.2.0" }, @@ -2844,7 +2845,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -4891,9 +4892,9 @@ "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==" }, "node_modules/@types/prop-types": { - "version": "15.7.9", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", - "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/qs": { "version": "6.9.9", @@ -6493,9 +6494,9 @@ } }, "node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } @@ -6991,9 +6992,9 @@ } }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/d3-array": { "version": "1.2.4", diff --git a/package.json b/package.json index 03453f4be..7c93f725b 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@mui/lab": "^5.0.0-alpha.150", "@mui/material": "^5.14.15", "@mui/styles": "^5.14.15", + "@mui/system": "^5.15.14", "@redux-devtools/extension": "^3.2.5", "@turf/turf": "^6.5.0", "apache-arrow": "^13.0.0", From 98c2763157dacd631c9e80420ec202fc16992d6a Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 21:31:20 -0700 Subject: [PATCH 23/32] Add loading spinner and animation --- assets/loading.gif | Bin 143912 -> 0 bytes assets/spinner.png | Bin 0 -> 2276 bytes components/Loading/FactModal/index.jsx | 4 +- components/Loading/LoadingModal/index.jsx | 48 +++++++++++++--------- 4 files changed, 31 insertions(+), 21 deletions(-) delete mode 100644 assets/loading.gif create mode 100644 assets/spinner.png diff --git a/assets/loading.gif b/assets/loading.gif deleted file mode 100644 index ce5d8e21e7bb0bafe5c7a8bc8b4634fc8b9ad5c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143912 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 ({ position: 'absolute', bottom: '10vh', backgroundColor: '#424242', - padding: theme.spacing(4, 4, 4), + padding: theme.spacing(3, 3, 3), boxShadow: theme.shadows[5], textAlign: 'center', maxWidth: '533px', @@ -37,7 +37,7 @@ export default function FactModal() { return ( - + Did you know? {' '} {facts[currentFactIndex]} diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal/index.jsx index da76a9adb..740a2d89a 100644 --- a/components/Loading/LoadingModal/index.jsx +++ b/components/Loading/LoadingModal/index.jsx @@ -1,4 +1,5 @@ import React from 'react'; +import { keyframes } from '@mui/system'; import { styled } from '@mui/material/styles'; import { Box, Modal, Typography, Link, @@ -6,11 +7,17 @@ import { import fonts from '@theme/fonts'; import LoadingModal311Logo from '@assets/311Logo.png'; import HFLALogo from '@assets/hack_for_la_logo.png'; +import spinner from '@assets/spinner.png'; import colors from '@theme/colors'; +const spin = keyframes` + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +`; + const StyledModal = styled(Modal)({ display: 'flex', - alignItems: 'flex', + alignItems: 'center', justifyContent: 'center', }); @@ -18,10 +25,11 @@ const StyledBox = styled(Box)(({ theme }) => ({ position: 'absolute', bottom: '35vh', backgroundColor: '#29404F', - padding: theme.spacing(4, 4, 4), + padding: theme.spacing(4), boxShadow: theme.shadows[5], textAlign: 'center', maxWidth: '533px', + maxHeight: '469px', borderRadius: '20px', })); @@ -35,31 +43,30 @@ const ExternalLink = styled(Link)({ color: colors.primaryFocus, textDecoration: 'none', '&:hover': { - textDecoration: 'none', + textDecoration: 'underline', }, }); -const styledFooter = { - justifyContent: 'center', - display: 'flex', - alignItems: 'center', - marginTop: '15px', -}; - -const styledFooterText = { - fontSize: '14px', - fontFamily: fonts.family.roboto, - fontWeight: fonts.weight.medium, -}; +const StyledSpinner = styled('img')({ + animation: `${spin} 2s linear infinite`, + width: '36px', + display: 'block', + margin: '10px auto', +}); export default function LoadingModal() { return ( - 311 data logo + + 311 data logo + + Loading data points and map. Please give us a moment. +
For official information about 311 services in Los Angeles, +
please visit {' '} @@ -67,11 +74,14 @@ export default function LoadingModal() { .
- - + + Powered by Volunteers at Hack for LA - Hack For LA logo + Hack For LA logo
From bab2cd9bbdff449c2874554700d4a2dc2472d77e Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Wed, 27 Mar 2024 23:18:07 -0700 Subject: [PATCH 24/32] Update FactModal name to FunFactCard --- components/Loading/{FactModal => FunFactCard}/index.jsx | 4 ++-- components/Map/index.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename components/Loading/{FactModal => FunFactCard}/index.jsx (95%) diff --git a/components/Loading/FactModal/index.jsx b/components/Loading/FunFactCard/index.jsx similarity index 95% rename from components/Loading/FactModal/index.jsx rename to components/Loading/FunFactCard/index.jsx index c412c9584..007a90584 100644 --- a/components/Loading/FactModal/index.jsx +++ b/components/Loading/FunFactCard/index.jsx @@ -12,7 +12,7 @@ const StyledCard = styled(Card)({ const StyledBox = styled(Box)(({ theme }) => ({ position: 'absolute', - bottom: '10vh', + bottom: '12vh', backgroundColor: '#424242', padding: theme.spacing(3, 3, 3), boxShadow: theme.shadows[5], @@ -23,7 +23,7 @@ const StyledBox = styled(Box)(({ theme }) => ({ zIndex: 50000, // This prevents from being overlay by LoadingModal's backdrop })); -export default function FactModal() { +export default function FunFactCard() { const [currentFactIndex, setCurrentFactIndex] = useState(0); const factsLength = facts.length; diff --git a/components/Map/index.js b/components/Map/index.js index b0cf92cb4..a7905f95a 100644 --- a/components/Map/index.js +++ b/components/Map/index.js @@ -21,7 +21,7 @@ import { trackMapExport } from '@reducers/analytics'; import { INTERNAL_DATE_SPEC } from '../common/CONSTANTS'; import { getTypeIdFromTypeName } from '@utils'; import LoadingModal from '../Loading/LoadingModal'; -import FactModal from '@components/Loading/FactModal'; +import FunFactCard from '@components/Loading/FunFactCard'; import CookieNotice from '../main/CookieNotice'; import Map from './Map'; import moment from 'moment'; @@ -397,7 +397,7 @@ class MapContainer extends React.Component { {(isDbLoading || isMapLoading) && ( <> - + )}
From 596e68d5dd1ebe137d45d7f8972cf7d5425e6d07 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 10:24:18 -0700 Subject: [PATCH 25/32] Add comment spinner section --- components/Loading/LoadingModal/index.jsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal/index.jsx index 740a2d89a..3eecfb597 100644 --- a/components/Loading/LoadingModal/index.jsx +++ b/components/Loading/LoadingModal/index.jsx @@ -10,11 +10,6 @@ import HFLALogo from '@assets/hack_for_la_logo.png'; import spinner from '@assets/spinner.png'; import colors from '@theme/colors'; -const spin = keyframes` - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -`; - const StyledModal = styled(Modal)({ display: 'flex', alignItems: 'center', @@ -47,6 +42,12 @@ const ExternalLink = styled(Link)({ }, }); +// Loading png spinner animation +const spin = keyframes` + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +`; + const StyledSpinner = styled('img')({ animation: `${spin} 2s linear infinite`, width: '36px', From 1c59399a644bf236fdbad3b9256dae9cc963f47b Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 10:33:50 -0700 Subject: [PATCH 26/32] Clean up file structure --- components/Loading/{FunFactCard/index.jsx => FunFactCard.jsx} | 0 components/Loading/{LoadingModal/index.jsx => LoadingModal.jsx} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename components/Loading/{FunFactCard/index.jsx => FunFactCard.jsx} (100%) rename components/Loading/{LoadingModal/index.jsx => LoadingModal.jsx} (100%) diff --git a/components/Loading/FunFactCard/index.jsx b/components/Loading/FunFactCard.jsx similarity index 100% rename from components/Loading/FunFactCard/index.jsx rename to components/Loading/FunFactCard.jsx diff --git a/components/Loading/LoadingModal/index.jsx b/components/Loading/LoadingModal.jsx similarity index 100% rename from components/Loading/LoadingModal/index.jsx rename to components/Loading/LoadingModal.jsx From 438ca062b77facb02f3c8972024b1804c13631ef Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 10:43:32 -0700 Subject: [PATCH 27/32] Add conditional render AcknowledgeModal when loading done --- components/Loading/AcknowledgeModal.jsx | 9 +++++++++ components/Map/index.js | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 components/Loading/AcknowledgeModal.jsx diff --git a/components/Loading/AcknowledgeModal.jsx b/components/Loading/AcknowledgeModal.jsx new file mode 100644 index 000000000..d0372d7c9 --- /dev/null +++ b/components/Loading/AcknowledgeModal.jsx @@ -0,0 +1,9 @@ +import React from 'react'; + +function AcknowledgeModal() { + return ( +
AcknowledgeModal
+ ); +} + +export default AcknowledgeModal; diff --git a/components/Map/index.js b/components/Map/index.js index a7905f95a..27ed61b12 100644 --- a/components/Map/index.js +++ b/components/Map/index.js @@ -27,6 +27,7 @@ import Map from './Map'; import moment from 'moment'; import ddbh from '@utils/duckDbHelpers.js'; import DbContext from '@db/DbContext'; +import AcknowledgeModal from '../Loading/AcknowledgeModal'; // We make API requests on a per-day basis. On average, there are about 4k // requests per day, so 10k is a large safety margin. @@ -394,11 +395,13 @@ class MapContainer extends React.Component { initialState={this.initialState} /> - {(isDbLoading || isMapLoading) && ( + {(isDbLoading || isMapLoading) ? ( <> + ) : ( + )} ); From 928225871c0fa65f92c0486d1d8072cf903aa9b8 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 11:15:06 -0700 Subject: [PATCH 28/32] Build AcknowledgeModal init --- components/Loading/AcknowledgeModal.jsx | 50 ++++++++++++++++++++++++- components/Map/index.js | 2 +- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/components/Loading/AcknowledgeModal.jsx b/components/Loading/AcknowledgeModal.jsx index d0372d7c9..05434258f 100644 --- a/components/Loading/AcknowledgeModal.jsx +++ b/components/Loading/AcknowledgeModal.jsx @@ -1,8 +1,56 @@ import React from 'react'; +import { + styled, Box, Modal, Typography, Link, +} from '@mui/material'; +import colors from '@theme/colors'; + +const StyledModal = styled(Modal)({ + display: 'flex', + alignItems: 'center', + justifyContent: 'center', +}); + +const StyledBox = styled(Box)(({ theme }) => ({ + position: 'absolute', + backgroundColor: '#29404F', + padding: theme.spacing(4), + boxShadow: theme.shadows[5], + textAlign: 'center', + maxWidth: '464px', + borderRadius: '10px', +})); + +const ExternalLink = styled(Link)({ + color: colors.primaryFocus, + textDecoration: 'none', + '&:hover': { + textDecoration: 'underline', + }, +}); function AcknowledgeModal() { return ( -
AcknowledgeModal
+ + + + Welcome to 311Data + + + 311-data.org is 100% powered by volunteers from Hack +
+ for LA and is not affiliated with the city of Los Angeles. +
+ For official information about 311 services in Los +
+ Angeles, please visit + {' '} + + MyLA311 + + . +
+
+
); } diff --git a/components/Map/index.js b/components/Map/index.js index 27ed61b12..9126014f0 100644 --- a/components/Map/index.js +++ b/components/Map/index.js @@ -401,7 +401,7 @@ class MapContainer extends React.Component { ) : ( - + )} ); From f8eb54099f586ba1b430830ed7293b9511a21b84 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 12:05:28 -0700 Subject: [PATCH 29/32] Add button and styling --- components/Loading/AcknowledgeModal.jsx | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/components/Loading/AcknowledgeModal.jsx b/components/Loading/AcknowledgeModal.jsx index 05434258f..e2cc7fc50 100644 --- a/components/Loading/AcknowledgeModal.jsx +++ b/components/Loading/AcknowledgeModal.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { - styled, Box, Modal, Typography, Link, + styled, Box, Modal, Typography, Link, Button, } from '@mui/material'; import colors from '@theme/colors'; @@ -28,14 +28,28 @@ const ExternalLink = styled(Link)({ }, }); +const buttonStyle = { + width: '104px', + height: '29px', + borderRadius: '5px', + backgroundColor: '#ECECEC', + border: '1px solid #ECECEC', + '&:hover': { + backgroundColor: '#DADADA', + borderColor: '#DADADA', + }, + color: '#29404F', + fontWeight: '500', +}; + function AcknowledgeModal() { return ( - + Welcome to 311Data - + 311-data.org is 100% powered by volunteers from Hack
for LA and is not affiliated with the city of Los Angeles. @@ -49,6 +63,9 @@ function AcknowledgeModal() { .
+ + +
); From 177ced8951a2f354905955e43a5715c93c4c01d4 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 12:16:42 -0700 Subject: [PATCH 30/32] Add logic to handle close on button click while maintaining click-trap requirement by not using onClose prop for Modal componenet --- components/Loading/AcknowledgeModal.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/components/Loading/AcknowledgeModal.jsx b/components/Loading/AcknowledgeModal.jsx index e2cc7fc50..415a9a1eb 100644 --- a/components/Loading/AcknowledgeModal.jsx +++ b/components/Loading/AcknowledgeModal.jsx @@ -43,8 +43,12 @@ const buttonStyle = { }; function AcknowledgeModal() { + const [open, setOpen] = React.useState(true); + const handleClose = () => { + setOpen(false); + }; return ( - + Welcome to 311Data @@ -64,7 +68,7 @@ function AcknowledgeModal() { . - + From 3464a7b2ed7a92403093fae71d98dd68a7ef6029 Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 12:17:33 -0700 Subject: [PATCH 31/32] Remove border when auto focus --- components/Loading/AcknowledgeModal.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/components/Loading/AcknowledgeModal.jsx b/components/Loading/AcknowledgeModal.jsx index 415a9a1eb..385cf251b 100644 --- a/components/Loading/AcknowledgeModal.jsx +++ b/components/Loading/AcknowledgeModal.jsx @@ -18,6 +18,7 @@ const StyledBox = styled(Box)(({ theme }) => ({ textAlign: 'center', maxWidth: '464px', borderRadius: '10px', + outline: 'none', })); const ExternalLink = styled(Link)({ From fa695d3e36c0bbbf3e179713632bc27d8162427e Mon Sep 17 00:00:00 2001 From: Johnny Wu Date: Fri, 29 Mar 2024 13:58:38 -0700 Subject: [PATCH 32/32] Remove outline border from auto focus --- components/Loading/LoadingModal.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/Loading/LoadingModal.jsx b/components/Loading/LoadingModal.jsx index 3eecfb597..a51fe5cfc 100644 --- a/components/Loading/LoadingModal.jsx +++ b/components/Loading/LoadingModal.jsx @@ -26,6 +26,7 @@ const StyledBox = styled(Box)(({ theme }) => ({ maxWidth: '533px', maxHeight: '469px', borderRadius: '20px', + outline: 'none', })); const StyledTypography = styled(Typography)({ @@ -57,7 +58,7 @@ const StyledSpinner = styled('img')({ export default function LoadingModal() { return ( - + 311 data logo