-
Notifications
You must be signed in to change notification settings - Fork 32
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
Detect and communicate "offline/connecting to swarm" state #60
Comments
Does the added files become available after connecting to the bootstrap nodes? There's a real danger of the user leaving the page if the first step of using the app is waiting a long time before interacting with something. If the answer to my previous question is "Yes", we can do it the other way around: let the user add instantly whatever he wants, and then use a nice animation showing the files propagating or the connection to other peers (even if it's not totally accurate with what is happening). Ideally the animation should be compelling and somehow explain some of the process. We could come up with some animated SVG for example, that would be pretty cool. |
Yes, afaik you should be able to add a file to local js-ipfs repository in "offline mode" (when no connection is yet established) and when connected provide it to others (preload notes).
Sounds good! We could introduce additional trick to make upload screen feel less "busy":
|
That could work.. I'm not completely sold to that solution because I don't love the fact that we're adding an additional step to get the share link. Moreover, we should always provide the share link even if there are no peers connected because the user may want to share the link and then leave the app to do the work, instead of having to wait to connect to peers and only then share the link. |
The "Get share link" button solves UX problem in scenario where user adds a file, copies share link for that directory, then adds more files and gets surprised the copied link does not contain all the files (or does not notice it and recipient does not get all the intended files). I agree we could make it possible to copy link when there is no peers, makes sense, but in that case there should be some addition visual indication "connecting to IPFS swarm is in progress". |
@juliaxbow. Low priority but could use a mock if you get free-time |
I think I partially addressed this in #46 but I'd recommend withholding the link until the the files are available. However, in reading this thread it sounds like there is a compelling reason we'd want to make the link available prior. Can anyone elaborate why the following is necessary? My understanding is that even if the user leaves the app they still need to keep it running.
Including screenshots of what I suggested below as it is different from the "get share link" button proposal. |
Problem
My point was not everyone has fast internet and sometimes it can take up to 10s of seconds before embedded js-ipfs connects to bootstrap/preload nodes.
UI looks "ready" immediately, so user adds files to local node (which is still "offline"), copies URL, shares it and.. nothing happens.
Solution?
I think we are missing proper UX around communicating what is happening to the user.
This could be a good opportunity to explain that IPFS does not use a centralized service which is fragile and can be easily blocked, but a robust, decentralized network of peers.
There are multiple ways of handling this, below is just an example:
ipfs.swarm.peers
ipfs.swarm.peers
< 1 indicate "offline mode" / "connecting to swarm, please wait"Does it sound like a good approach? Would love to hear some thoughts on this.
The text was updated successfully, but these errors were encountered: