Skip to content
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

Merged
merged 15 commits into from
Apr 30, 2024

Conversation

kunstmusik
Copy link
Collaborator

  • Implements wallet connection with ArConnect

@kunstmusik kunstmusik requested a review from a team as a code owner April 26, 2024 21:27
Copy link

github-actions bot commented Apr 26, 2024

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

Comment on lines +17 to +40
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}</>;
};
Copy link
Collaborator

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

Copy link
Collaborator Author

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.

package.json Outdated Show resolved Hide resolved
src/components/GlobalDataProvider.tsx Show resolved Hide resolved
src/components/Header.tsx Outdated Show resolved Hide resolved
@kunstmusik kunstmusik merged commit 0c7ada3 into develop Apr 30, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants