From 1f680e2032b0c8668a718ea4c404e8cdb0b8c94c Mon Sep 17 00:00:00 2001 From: Marco van Dijk Date: Fri, 4 Mar 2022 01:12:12 +0100 Subject: [PATCH] added filters --- src/eventButton.js | 47 +++++++++++++++++++++++++++++++++ src/eventViewer.js | 66 ++++++++++++++++++++++++++++++++++++++++++---- src/livepeer.js | 2 +- src/style.css | 23 +++++++++++++--- 4 files changed, 129 insertions(+), 9 deletions(-) diff --git a/src/eventButton.js b/src/eventButton.js index 5e4857c..39b41cd 100644 --- a/src/eventButton.js +++ b/src/eventButton.js @@ -80,6 +80,53 @@ const EventButton = (obj) => { thisColour = stakeColour; } + // Check name filter on transactionCaller, transactionFrom, transactionTo + if (obj.searchTerm){ + if (obj.searchTerm !== ""){ + let isFiltered = true; + if (transactionCaller.toLowerCase().includes(obj.searchTerm.toLowerCase())) isFiltered = false; + if (transactionFrom.toLowerCase().includes(obj.searchTerm.toLowerCase())) isFiltered = false; + if (transactionTo.toLowerCase().includes(obj.searchTerm.toLowerCase())) isFiltered = false; + if (isFiltered) return null; + } + } + let isFiltered = true; + // Check boolean filters on transactionName + let count = 0; + if(obj.filterActivated){ + if (transactionName === "Activated"){ + isFiltered = false; + } + count++; + } + if(obj.rewardActivated){ + if (transactionName === "Reward"){ + isFiltered = false; + } + count++; + } + if(obj.updateActivated){ + if (transactionName === "Update"){ + isFiltered = false; + } + count++; + } + if(obj.withdrawActivated){ + if (transactionName === "Withdraw"){ + isFiltered = false; + } + count++; + } + if(obj.stakeActivated){ + if (transactionName === "Stake"){ + isFiltered = false; + } + count++; + } + if (isFiltered && count){ + return null; + } + let eventSpecificInfo; if (transactionName === "Reward") { if (transactionAmount - 69 < 1 && transactionAmount - 69 > 0) { diff --git a/src/eventViewer.js b/src/eventViewer.js index 9d2bf9f..1c32d8c 100644 --- a/src/eventViewer.js +++ b/src/eventViewer.js @@ -1,8 +1,21 @@ -import React from "react"; +import React, { useEffect, useState } from "react"; import EventButton from "./eventButton"; import ScrollContainer from 'react-indiana-drag-scroll'; +const activationColour = "rgba(23, 60, 122, 0.3)"; +const rewardColour = "rgba(20, 99, 29, 0.3)"; +const updateColour = "rgba(122, 63, 23, 0.3)"; +const withdrawStakeColour = "rgba(102, 3, 10, 0.3)"; +const stakeColour = "rgba(71, 23, 122, 0.3)"; + const EventViewer = (obj) => { + const [searchTerm, setSearchTerm] = useState(""); + const [filterActivated, setFilterActivated] = useState(false); + const [rewardActivated, setRewardActivated] = useState(false); + const [updateActivated, setUpdateActivated] = useState(false); + const [withdrawActivated, setWithdrawActivated] = useState(false); + const [stakeActivated, setStakeActivated] = useState(false); + let txCounter = 0; let currentTx = ""; let currentUrl = ""; @@ -15,13 +28,23 @@ const EventViewer = (obj) => { let finalIdx = 0; return (
-
+
+
+ setSearchTerm(evt.target.value)} + placeholder='Filter by Orchestrator address' + type="text" + /> +
+
+
{obj.events.slice(0).reverse().map((eventObj, idx) => { // Filter if (eventObj.name === "WithdrawFees" || eventObj.name === "TransferBond" - || eventObj.name === "Rebond" || eventObj.name === "Unbond" || eventObj.name === "EarningsClaimed"){ + || eventObj.name === "Rebond" || eventObj.name === "Unbond" || eventObj.name === "EarningsClaimed") { return; } // New transaction found @@ -43,19 +66,52 @@ const EventViewer = (obj) => { return; } // Push if not completely filtered out - if (eventBundle.length){ + if (eventBundle.length) { return } })}
+
+ + + + + +
) diff --git a/src/livepeer.js b/src/livepeer.js index 65b7445..6fd3389 100644 --- a/src/livepeer.js +++ b/src/livepeer.js @@ -135,7 +135,7 @@ class Livepeer extends React.Component { }}> -
+
diff --git a/src/style.css b/src/style.css index 17ee309..7809b2d 100644 --- a/src/style.css +++ b/src/style.css @@ -324,7 +324,6 @@ svg { } .homeButton { - min-width: 200px; cursor: pointer; padding: 8px; border: 0; @@ -345,7 +344,25 @@ svg { cursor: default; opacity: 0.7; } - +.nonHomeButton{ + cursor: pointer; + padding: 8px; + border: 0; + border-radius: 20px; + background-color: transparent; + text-align: center; + justify-content: center; + align-items: center; + display: flex; + justify-content: space-evenly; + z-index: 10; +} +.nonHomeButton:hover { + backdrop-filter: blur(6px); +} +.active { + box-shadow: 4px 5px 3px 2px rgba(8, 7, 56, 0.692); +} .searchField { margin: auto; display: flex; @@ -393,7 +410,7 @@ svg { } .overflow-content { color: black; - padding: 20px; + padding: 1em; }