diff --git a/src/assets/images/prysm.svg b/src/assets/images/prysm.svg
new file mode 100644
index 0000000..d4df7b9
--- /dev/null
+++ b/src/assets/images/prysm.svg
@@ -0,0 +1,326 @@
+
+
+
diff --git a/src/pages/event.js b/src/pages/event.js
index d111759..4450d5d 100644
--- a/src/pages/event.js
+++ b/src/pages/event.js
@@ -18,7 +18,7 @@ import { EventCard } from '../components/eventCard';
import { Foliage } from '../components/foliage';
import {dateCell, shrinkAddress, utcDateFormatted, utcDateFull} from '../utilities/utilities';
import { useWindowWidth } from '@react-hook/window-size/throttled';
-import OpenLink from '../assets/images/openLink.svg'
+import Prysm from '../assets/images/prysm.svg';
import {POAP_APP_URL, PRYSM_APP_URL} from "../store/api";
import {Spinner} from "../components/spinner";
@@ -249,6 +249,51 @@ export function Event() {
)
}
+function ExternalIconCell({url, tooltipText = null, content}) {
+ const [isHovering, setIsHovering] = useState(false)
+ const [isHoveringLink, setIsHoveringLink] = useState(false)
+
+ let hoverDeactivateTimeout = null;
+ let hoverLinkDeactivateTimeout = null;
+ useEffect(()=>{
+ return () => {
+ // Clear timeouts on unmount
+ clearTimeout(hoverDeactivateTimeout)
+ clearTimeout(hoverLinkDeactivateTimeout)
+ }
+ })
+ return (
+ {setIsHovering(true)}}
+ onMouseLeave={() => {hoverDeactivateTimeout = setTimeout(() => {
+ if (!isHoveringLink) setIsHovering(false)
+ }, 500)}}
+ style={{position: 'relative', width: 27}}
+ >
+
+
+
+
+ {
+ isHovering &&
+ <> {clearTimeout(hoverDeactivateTimeout); clearTimeout(hoverLinkDeactivateTimeout); setIsHoveringLink(true)}}
+ onMouseLeave={() => {hoverLinkDeactivateTimeout = setTimeout(() => {
+ setIsHoveringLink(false)
+ setIsHovering(false)
+ }, 500)}}
+ >
+
> }
+
+ );
+}
+
function ExternalLinkCell({url, tooltipText = null, content}) {
const [isHovering, setIsHovering] = useState(false)
const [isHoveringLink, setIsHoveringLink] = useState(false)
@@ -284,7 +329,6 @@ function ExternalLinkCell({url, tooltipText = null, content}) {
setIsHovering(false)
}, 500)}}
>
-
> }
);
@@ -294,15 +338,19 @@ function TableContainer({tokens, ensNames, pageCount: pc, loading}) {
const [data, setData] = useState([]);
const [mobileData, setMobileData] = useState([]);
- const ScanLink = (token) => {
+ const PrysmScanLink = (token) => {
return (`${PRYSM_APP_URL}/profile/${token.owner.id}/achievements`);
};
+ const PoapScanLink = (token) => {
+ return (`${POAP_APP_URL}/scan/${token.owner.id}`);
+ };
+
const MobileRow = ({token, address}) => (
POAP ID#{token.id}
Address
- {shrinkAddress(address, 15)}
+
{shrinkAddress(address, 15)}
Claim Date{utcDateFormatted(token.created * 1000)}
Transaction Count{token.transferCount}
Power{token.owner.tokensOwned}
@@ -350,7 +398,7 @@ function TableContainer({tokens, ensNames, pageCount: pc, loading}) {
for (let i = 0; i < tokens.length; i++) {
_data.push({
col1: (
) ,
- col2: (),
+ col2: (
),
col3: tokens[i].created * 1000,
col4: tokens[i].transferCount,
col5: tokens[i].owner.tokensOwned,
@@ -373,7 +421,7 @@ function TableContainer({tokens, ensNames, pageCount: pc, loading}) {
let validName = ensNames[i]
if (validName) {
if (data[i]) {
- _data[i].col2 = ( {validName})
+ _data[i].col2 = ()
_mobileData[i].col1 =
}
}