-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PE-5967: wallet connection profile menu AR connect #5
PE-5967: wallet connection profile menu AR connect #5
Conversation
kunstmusik
commented
Apr 26, 2024
- Implements wallet connection with ArConnect
…routing-breadcrumbs' into PE-5967-wallet-connection-profile-menu-ar-connect
…nection-profile-menu-ar-connect
Visit the preview URL for this PR (updated for commit 4b451d0): https://ar-io-network-portal-a40ee--pr5-pe-5967-wallet-conne-w870a2dz.web.app (expires Mon, 13 May 2024 20:56:36 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 7abfae09c4446982a71cbb94b0cbf4688377a111 |
useEffectOnce(() => { | ||
const update = async () => { | ||
const currentEpoch = await arioReadSDK.getCurrentEpoch(); | ||
setCurrentEpoch(currentEpoch); | ||
}; | ||
|
||
update(); | ||
}); | ||
|
||
useEffect(() => { | ||
const updateBlockHeight = async () => { | ||
const blockHeight = await (await arweave.blocks.getCurrent()).height; | ||
setBlockHeight(blockHeight); | ||
}; | ||
updateBlockHeight(); | ||
const interval = setInterval(updateBlockHeight, twoMinutes); | ||
|
||
return () => { | ||
clearInterval(interval); | ||
}; | ||
}); | ||
|
||
return <>{children}</>; | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we could use a simple and small promise cache for these API calls and avoid the setInterval - https://github.com/ardriveapp/promise-cache
e.g. the hook would be responsible for calling the cache for the height - and with a TTL of two minutes it'll refresh when it needs to based on what's being renedered
you could have a separate cache for the epoch information
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think promise-cache might not be the right tool here. We want to trigger a re-render of the app when data changes, which occurs when the polling result comes back and we send an update to the global data store. If promise-cache was added, we would have to poll against the read-through-cache's status to identify when to update the global data store to trigger the re-render.
Also for context, this class isn't a hook, it's more of a global wrapper to the app to have a place for code that can interconnect global data fetching together with our global data store and have it all interact well with react's events and lifecycle.
I think for now it'd be best to keep moving forward and I'll keep promise-cache on my mind to see if it's a good fit for the uses cases coming up.