From 59d1ced79be8d25812a630b6b2f93e6c3f10b233 Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Sat, 28 Dec 2024 22:30:28 +0100 Subject: [PATCH] ui fix --- src/lib/components/ShareHolders.svelte | 18 ++- src/routes/hedge-funds/+page.svelte | 2 +- src/routes/politicians/+page.svelte | 10 +- .../insider/congress-trading/+page.svelte | 109 ++++++++++++++---- 4 files changed, 104 insertions(+), 35 deletions(-) diff --git a/src/lib/components/ShareHolders.svelte b/src/lib/components/ShareHolders.svelte index faadee49..21688a55 100644 --- a/src/lib/components/ShareHolders.svelte +++ b/src/lib/components/ShareHolders.svelte @@ -331,7 +331,9 @@ class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 border border-gray-600 bg-primary rounded-md h-20" >
- Put/Call + Put/Call @@ -387,7 +389,9 @@ class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 border border-gray-600 bg-primary rounded-md h-20" >
- Call Flow + Call Flow @@ -445,7 +449,9 @@ class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 border border-gray-600 bg-primary rounded-md h-20" >
- Put Flow + Put Flow @@ -526,7 +532,9 @@
- +
@@ -534,7 +542,7 @@ {#each displayList as item, index} {#if item?.investorName?.length > 0}
-
+
diff --git a/src/routes/politicians/+page.svelte b/src/routes/politicians/+page.svelte index 8e75076e..84026b63 100644 --- a/src/routes/politicians/+page.svelte +++ b/src/routes/politicians/+page.svelte @@ -192,9 +192,7 @@ {#if isLoaded}
-
+
@@ -264,12 +262,12 @@ {#each displayList as item}
{ + // Reset all other keys to 'none' except the current key + for (const k in sortOrders) { + if (k !== key) { + sortOrders[k].order = "none"; + } + } + + // Cycle through 'none', 'asc', 'desc' for the clicked key + const orderCycle = ["none", "asc", "desc"]; + + let originalData = rawData; + const currentOrderIndex = orderCycle.indexOf(sortOrders[key].order); + sortOrders[key].order = + orderCycle[(currentOrderIndex + 1) % orderCycle.length]; + const sortOrder = sortOrders[key].order; + + // Reset to original data when 'none' and stop further sorting + if (sortOrder === "none") { + senateTradingList = [...originalData]?.slice(0, 50); // Reset to original data (spread to avoid mutation) + return; + } + + // Define a generic comparison function + const compareValues = (a, b) => { + const { type } = sortOrders[key]; + let valueA, valueB; + + switch (type) { + case "date": + valueA = new Date(a[key]); + valueB = new Date(b[key]); + break; + case "string": + valueA = a[key].toUpperCase(); + valueB = b[key].toUpperCase(); + return sortOrder === "asc" + ? valueA.localeCompare(valueB) + : valueB.localeCompare(valueA); + case "number": + default: + valueA = parseFloat(a[key]); + valueB = parseFloat(b[key]); + break; + } + + if (sortOrder === "asc") { + return valueA < valueB ? -1 : valueA > valueB ? 1 : 0; + } else { + return valueA > valueB ? -1 : valueA < valueB ? 1 : 0; + } + }; + + // Sort using the generic comparison function + senateTradingList = [...originalData].sort(compareValues)?.slice(0, 50); + }; @@ -296,32 +374,12 @@ class="table table-sm sm:table-md table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto" >
- - - - - - + {#each senateTradingList as item} + +
- Person - - Transaction Date - - Amount - Type
- {item?.party} + {item?.party} +