From fcb9abed4e69c59b5b571929cdbdf18ecda1b0d4 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sun, 2 Mar 2025 23:31:08 -0500 Subject: [PATCH 1/5] refresh redirect fixed --- src/components/dashboard/AddProvider.tsx | 34 +++++++++++------------- src/components/dashboard/RowForm.tsx | 2 +- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/components/dashboard/AddProvider.tsx b/src/components/dashboard/AddProvider.tsx index 95b2e01..9e20d59 100644 --- a/src/components/dashboard/AddProvider.tsx +++ b/src/components/dashboard/AddProvider.tsx @@ -58,16 +58,16 @@ function AddProvider(props) { }; useEffect(() => { - console.log((sessionStorage.getItem("item"))) - if (firstLoad === false) { + if (props.selected !== null) { sessionStorage.setItem('item', JSON.stringify(item)) - } else { - if(JSON.parse(sessionStorage.getItem("item")) !== null) { - setItem(JSON.parse(sessionStorage.getItem("item"))) - } - setFirstLoad(false) } - }, [item]) + }, [props]); + + useEffect(() => { + if(JSON.parse(sessionStorage.getItem("item")) !== null) { + setItem(JSON.parse(sessionStorage.getItem("item"))) + } + }, []); useEffect(() => { async function fetchData() { @@ -392,14 +392,14 @@ function AddProvider(props) { block disabled={!completed} onClick={ - props.selected && - props.selected.facilityName + item && + item.facilityName ? updateFirestore : addFirestore } > - {props.selected && - props.selected.facilityName + {item && + item.facilityName ? "Edit" : "Add"}{" "} Provider @@ -445,9 +445,8 @@ function AddProvider(props) { onClick={ step === steps.length - 1 - ? props.selected && - props.selected - .facilityName + ? item && + item.facilityName ? updateFirestore : addFirestore : next @@ -461,9 +460,8 @@ function AddProvider(props) { > {step === steps.length - 1 - ? props.selected && - props.selected - .facilityName + ? item && + item.facilityName ? "Edit Provider" : "Add Provider" : "Next"} diff --git a/src/components/dashboard/RowForm.tsx b/src/components/dashboard/RowForm.tsx index 25ef949..ec9f856 100644 --- a/src/components/dashboard/RowForm.tsx +++ b/src/components/dashboard/RowForm.tsx @@ -52,7 +52,7 @@ const RowForm = (props) => { }; const [item, setItem] = useState( - props.item.facilityName ? props.item : JSON.parse(sessionStorage.getItem("item")) || defaultItem + props.item.facilityName ? props.item : defaultItem ); const [showModal, setShowModal] = useState(false); From 7848bcb770dad1917c1aa79216fbaca1eeff09ab Mon Sep 17 00:00:00 2001 From: Nathan Date: Sun, 2 Mar 2025 23:34:50 -0500 Subject: [PATCH 2/5] selected provider persists on refresh when attempting to edit --- src/components/dashboard/AddProvider.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/dashboard/AddProvider.tsx b/src/components/dashboard/AddProvider.tsx index 9e20d59..fc965af 100644 --- a/src/components/dashboard/AddProvider.tsx +++ b/src/components/dashboard/AddProvider.tsx @@ -57,6 +57,7 @@ function AddProvider(props) { setContent(updatedContent); }; + // selected provider persists on refresh when attempting to edit useEffect(() => { if (props.selected !== null) { sessionStorage.setItem('item', JSON.stringify(item)) From 9ed8d4896b966a5b235dc054eca30b3a58677e1d Mon Sep 17 00:00:00 2001 From: Nathan Date: Tue, 4 Mar 2025 17:54:09 -0500 Subject: [PATCH 3/5] resizing window clears edited data fixed --- src/components/dashboard/AddProvider.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/dashboard/AddProvider.tsx b/src/components/dashboard/AddProvider.tsx index fc965af..0a5de7f 100644 --- a/src/components/dashboard/AddProvider.tsx +++ b/src/components/dashboard/AddProvider.tsx @@ -59,10 +59,10 @@ function AddProvider(props) { // selected provider persists on refresh when attempting to edit useEffect(() => { - if (props.selected !== null) { + if ((item !== null) && (Object.keys(item).length > 0)) { sessionStorage.setItem('item', JSON.stringify(item)) } - }, [props]); + }, [item]); useEffect(() => { if(JSON.parse(sessionStorage.getItem("item")) !== null) { From 2423644101d18f35eb96d2f348ab5ea85456f107 Mon Sep 17 00:00:00 2001 From: Nathan Date: Tue, 4 Mar 2025 18:28:39 -0500 Subject: [PATCH 4/5] fixed first edit render not working --- src/components/dashboard/AddProvider.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/dashboard/AddProvider.tsx b/src/components/dashboard/AddProvider.tsx index 0a5de7f..a7a933b 100644 --- a/src/components/dashboard/AddProvider.tsx +++ b/src/components/dashboard/AddProvider.tsx @@ -43,7 +43,8 @@ function AddProvider(props) { const [step, setStep] = useState(0); const [completed, setCompleted] = useState(false); const [animate, setAnimate] = useState(true); - const [item, setItem] = useState(props.selected || {}); + const [item, setItem] = useState((JSON.parse(sessionStorage.getItem("item")) !== null + ? JSON.parse(sessionStorage.getItem("item")) : props.selected) || {}); const [isLoading, setIsLoading] = useState(true); const [filters, setFilters] = useState(null); const [descriptions, setDescriptions] = useState(null); @@ -59,8 +60,11 @@ function AddProvider(props) { // selected provider persists on refresh when attempting to edit useEffect(() => { - if ((item !== null) && (Object.keys(item).length > 0)) { + console.log(props) + if (JSON.parse(sessionStorage.getItem("item")) == null || Object.keys(item).length > 0) { sessionStorage.setItem('item', JSON.stringify(item)) + console.log("set sessionStorage: ") + console.log(JSON.parse(sessionStorage.getItem("item"))) } }, [item]); From a0dd10d280cb9d24078bc38a1857dfcb0c6211a9 Mon Sep 17 00:00:00 2001 From: Nathan Date: Wed, 5 Mar 2025 01:15:52 -0500 Subject: [PATCH 5/5] edits don't depend on facilityNames now, but rather item.id, fixed add and edit clearing fields on refresh or resize --- src/components/dashboard/AddProvider.tsx | 38 ++++++++++++++++++------ src/components/dashboard/RowForm.tsx | 21 ++----------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/components/dashboard/AddProvider.tsx b/src/components/dashboard/AddProvider.tsx index a7a933b..66d816e 100644 --- a/src/components/dashboard/AddProvider.tsx +++ b/src/components/dashboard/AddProvider.tsx @@ -39,18 +39,37 @@ let steps = [ ]; function AddProvider(props) { + const defaultItem = { + facilityName: "", + address: [], + description: "", + buildingNum: [], + stationNum: "", + childcare: [false], + epic: [false], + hours: {}, + links: {}, + notes: [], + phoneNum: [], + website: [], + image: "modalimage.png", + imageURL: null, + content: {}, + filters: {}, + }; const { width } = useWindowSize(); const [step, setStep] = useState(0); const [completed, setCompleted] = useState(false); const [animate, setAnimate] = useState(true); const [item, setItem] = useState((JSON.parse(sessionStorage.getItem("item")) !== null - ? JSON.parse(sessionStorage.getItem("item")) : props.selected) || {}); + ? JSON.parse(sessionStorage.getItem("item")) : + (props.selected !== null && Object.keys(props.selected).length > 0 + ? props.selected : defaultItem))) const [isLoading, setIsLoading] = useState(true); const [filters, setFilters] = useState(null); const [descriptions, setDescriptions] = useState(null); const [single, setSingle] = useState(null); const [error, setError] = useState(""); - const [firstLoad, setFirstLoad] = useState(true); const [content, setContent] = useState( 'ex. "Changing lives one bit at a time..."' ); @@ -60,12 +79,11 @@ function AddProvider(props) { // selected provider persists on refresh when attempting to edit useEffect(() => { - console.log(props) if (JSON.parse(sessionStorage.getItem("item")) == null || Object.keys(item).length > 0) { sessionStorage.setItem('item', JSON.stringify(item)) - console.log("set sessionStorage: ") - console.log(JSON.parse(sessionStorage.getItem("item"))) + console.log("stored") } + console.log("item:", item) }, [item]); useEffect(() => { @@ -398,13 +416,13 @@ function AddProvider(props) { disabled={!completed} onClick={ item && - item.facilityName + item.id ? updateFirestore : addFirestore } > {item && - item.facilityName + item.id ? "Edit" : "Add"}{" "} Provider @@ -451,7 +469,7 @@ function AddProvider(props) { step === steps.length - 1 ? item && - item.facilityName + item.id ? updateFirestore : addFirestore : next @@ -466,7 +484,7 @@ function AddProvider(props) { {step === steps.length - 1 ? item && - item.facilityName + item.id ? "Edit Provider" : "Add Provider" : "Next"} @@ -500,6 +518,8 @@ function AddProvider(props) { i ); setItem(i); + console.log(item) + console.log("item set", i) setCompleted(c); }} filters={filters} diff --git a/src/components/dashboard/RowForm.tsx b/src/components/dashboard/RowForm.tsx index ec9f856..6f192d2 100644 --- a/src/components/dashboard/RowForm.tsx +++ b/src/components/dashboard/RowForm.tsx @@ -32,27 +32,10 @@ function validURL(str) { } const RowForm = (props) => { - const defaultItem = { - facilityName: "", - address: [], - description: "", - buildingNum: [], - stationNum: "", - childcare: [false], - epic: [false], - hours: {}, - links: {}, - notes: [], - phoneNum: [], - website: [], - image: "modalimage.png", - imageURL: null, - content: {}, - filters: {}, - }; + const [item, setItem] = useState( - props.item.facilityName ? props.item : defaultItem + props.item.id ? props.item : JSON.parse(sessionStorage.getItem("item")) ); const [showModal, setShowModal] = useState(false);