From 8b9dc37b9427d97cc99e92eb09235baba30b6320 Mon Sep 17 00:00:00 2001 From: Harish Vishwakarma Date: Mon, 21 Oct 2024 22:35:13 +0530 Subject: [PATCH] code cleanup --- src/pages/compoundbay/CompoundBay.tsx | 25 ---- src/pages/compoundbay/FilterSidebar.tsx | 102 ++++++++--------- src/pages/compoundbay/ResultsSidebar.tsx | 140 +++++++++-------------- 3 files changed, 98 insertions(+), 169 deletions(-) diff --git a/src/pages/compoundbay/CompoundBay.tsx b/src/pages/compoundbay/CompoundBay.tsx index 8917dfb4..06f5a7b5 100644 --- a/src/pages/compoundbay/CompoundBay.tsx +++ b/src/pages/compoundbay/CompoundBay.tsx @@ -19,7 +19,6 @@ const CompoundBay = observer(() => { >([]); const [searchTerm, setSearchTerm] = useState(""); const [loadCount, setLoadCount] = useState(10); - //const [expandedSales, setExpandedSales] = useState>(new Set()); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); @@ -28,12 +27,6 @@ const CompoundBay = observer(() => { const [vendor, setVendor] = useState(""); const [shipsFromCountry, setShipsFromCountry] = useState(""); const [compound, setCompound] = useState(""); - - // Add new state for dropdown options - const [vendorOptions, setVendorOptions] = useState([]); - const [countryOptions, setCountryOptions] = useState([]); - const [compoundOptions, setCompoundOptions] = useState([]); - const [isMobileFilterVisible, setIsMobileFilterVisible] = useState(false); const fetchGroupBuySales = async () => { @@ -48,23 +41,6 @@ const CompoundBay = observer(() => { const sales = results.data as GroupBuySale[]; setGroupBuySales(sales); setVisibleGroupBuySales(sales.slice(0, loadCount)); - - // Extract unique options for dropdowns - const vendors = [ - ...new Set(sales.map((sale) => sale.Vendor)), - ]; - const countries = [ - ...new Set( - sales.map((sale) => sale["Ships from Country"]), - ), - ]; - const compounds = [ - ...new Set(sales.map((sale) => sale.Compound)), - ]; - - setVendorOptions(vendors); - setCountryOptions(countries); - setCompoundOptions(compounds); }, error: (error) => { console.error("Error parsing CSV:", error); @@ -82,7 +58,6 @@ const CompoundBay = observer(() => { useEffect(() => { fetchGroupBuySales(); const intervalId = setInterval(fetchGroupBuySales, 15 * 60 * 1000); // Refresh every 15 minutes - return () => clearInterval(intervalId); }, []); diff --git a/src/pages/compoundbay/FilterSidebar.tsx b/src/pages/compoundbay/FilterSidebar.tsx index c9026191..4e7dfa69 100644 --- a/src/pages/compoundbay/FilterSidebar.tsx +++ b/src/pages/compoundbay/FilterSidebar.tsx @@ -37,6 +37,27 @@ const FilterSidebar: React.FC = ({ isMobileFilterVisible, toggleMobileFilter, }) => { + const renderFilterSection = ( + title: string, + value: string, + options: string[], + handleChange: (value: string) => void, + ) => ( +
+

{title}

+ +
+ ); + return (
= ({

Filters

-
-

Vendor Rating

- -
- -
-

Vendor

- -
- -
-

Ships from Country

- -
- -
-

Compound

- -
+ {renderFilterSection( + "Vendor Rating", + vendorRating, + vendorRatingOptions, + handleVendorRatingChange, + )} + {renderFilterSection( + "Vendor", + vendor, + vendorOptions, + handleVendorChange, + )} + {renderFilterSection( + "Ships from Country", + shipsFromCountry, + countryOptions, + handleShipsFromCountryChange, + )} + {renderFilterSection( + "Compound", + compound, + compoundOptions, + handleCompoundChange, + )}
); + const renderSaleItem = (sale: GroupBuySale, index: number) => ( +
+

+ {sale.Vendor} - {sale.Compound} +

+

Price: {sale.Price}

+
+
+ {renderDetailItem("Type", sale.Type)} + {renderDetailItem("Dose", `${sale.Dose} ${sale.Unit}`)} + {renderDetailItem("Format", sale.Format)} + {renderDetailItem("Quantity", sale.Quantity)} + {renderDetailItem("Ships from", sale["Ships from Country"])} + {renderDetailItem("Shipping Cost", sale["Shipping $"])} + {renderDetailItem("MOQ", sale.MOQ)} + {renderDetailItem("Vendor Rating", sale["Vendor rating"])} + {renderDetailItem("Analysis", sale.Analysis)} + {renderDetailItem( + "Purity Guarantee", + sale["Purity guarantee"], + )} + {renderDetailItem("Mass Guarantee", sale["Mass guarantee"])} + {renderDetailItem( + "Reship Guarantee", + sale["Re-ship guarantee"], + )} + {renderDetailItem("Start", sale.Start)} + {renderDetailItem("Close", sale.Close)} +
+
+ Notes:{" "} + {sale.Notes} +
+
+ {renderDetailItem( + "PepChat", + renderLink(sale["PepChat Link"], "PepChat"), + )} + {renderDetailItem( + "Discord", + renderLink(sale["Discord Link"], "Discord"), + )} + {renderDetailItem( + "Telegram", + renderLink(sale["Telegram Link"], "Telegram"), + )} +
+
+
+ ); + return (
{visibleGroupBuySales.length > 0 ? ( - visibleGroupBuySales.map((sale, index) => ( -
-

- {sale.Vendor} - {sale.Compound} -

-

Price: {sale.Price}

-
-
- {renderDetailItem("Type", sale.Type)} - {renderDetailItem( - "Dose", - `${sale.Dose} ${sale.Unit}`, - )} - {renderDetailItem("Format", sale.Format)} - {renderDetailItem("Quantity", sale.Quantity)} - {renderDetailItem( - "Ships from", - sale["Ships from Country"], - )} - {renderDetailItem( - "Shipping Cost", - sale["Shipping $"], - )} - {renderDetailItem("MOQ", sale.MOQ)} - {renderDetailItem( - "Vendor Rating", - sale["Vendor rating"], - )} - {renderDetailItem("Analysis", sale.Analysis)} - {renderDetailItem( - "Purity Guarantee", - sale["Purity guarantee"], - )} - {renderDetailItem( - "Mass Guarantee", - sale["Mass guarantee"], - )} - {renderDetailItem( - "Reship Guarantee", - sale["Re-ship guarantee"], - )} - {renderDetailItem("Start", sale.Start)} - {renderDetailItem("Close", sale.Close)} -
-
- - Notes: - {" "} - {sale.Notes} -
-
-
- - PepChat: - {" "} - {renderLink( - sale["PepChat Link"], - "PepChat", - )} -
-
- - Discord: - {" "} - {renderLink( - sale["Discord Link"], - "Discord", - )} -
-
- - Telegram: - {" "} - {renderLink( - sale["Telegram Link"], - "Telegram", - )} -
-
-
-
- )) + visibleGroupBuySales.map(renderSaleItem) ) : (

No group buy sales available.