diff --git a/src/eventViewer.js b/src/eventViewer.js index 06719e8..c6b24c6 100644 --- a/src/eventViewer.js +++ b/src/eventViewer.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState, useRef } from "react"; import EventButton from "./eventButton"; import ScrollContainer from 'react-indiana-drag-scroll'; import ReactPaginate from 'react-paginate'; @@ -18,6 +18,7 @@ const defaultMaxShown = 100; const defaultIncrementMaxShown = 100; const EventViewer = (obj) => { + const listInnerRef = useRef(); const [filterActivated, setFilterActivated] = useState(true); const [rewardActivated, setRewardActivated] = useState(true); const [updateActivated, setUpdateActivated] = useState(true); @@ -28,6 +29,7 @@ const EventViewer = (obj) => { const [unbondActivated, setUnbondActivated] = useState(true); console.log("Rendering EventViewer"); let unfiltered = 0; + let prevBlock = 0; let limitShown = obj.events.length; let filterActivatedColour; @@ -47,24 +49,13 @@ const EventViewer = (obj) => { let unbondActivatedColour; unbondActivatedColour = unbondActivated ? unbondColour : greyColour; - let prevBlock = 0; - let showMoreBlock; - if (obj.maxAmount < limitShown) { - showMoreBlock = - } - let showLessBlock; - if (defaultMaxShown < obj.maxAmount) { - showLessBlock = - } else { - showLessBlock =
+ const updateOnScroll = () => { + if (listInnerRef.current) { + const { scrollTop, scrollHeight, clientHeight } = listInnerRef.current.container.current; + if (scrollTop + clientHeight === scrollHeight) { + obj.setMaxAmount(obj.maxAmount + defaultIncrementMaxShown); + } + } } let searchTermText; @@ -85,21 +76,21 @@ const EventViewer = (obj) => { while (eventIdx >= 0 || ticketIdx >= 0) { const latestEvent = obj.events[eventIdx]; let latestEventTime = 0; - if (eventIdx >= 0){ + if (eventIdx >= 0) { latestEventTime = latestEvent.transactionTime; } const latestTicket = obj.tickets[ticketIdx]; let latestTicketTime = 0; - if (ticketIdx >= 0){ + if (ticketIdx >= 0) { latestTicketTime = latestTicket.transactionTime; } - if (latestEventTime > latestTicketTime){ + if (latestEventTime > latestTicketTime) { thisEvent = latestEvent; eventIdx -= 1; - }else if (latestTicketTime){ + } else if (latestTicketTime) { thisEvent = latestTicket; ticketIdx -= 1; - }else{ + } else { console.log("error, breaky breaky"); break; } @@ -206,39 +197,24 @@ const EventViewer = (obj) => { let filterBit; if (obj.showFilter) { filterBit =+ 🔄 Scroll to bottom for more +
+