Joystream / joystream

Joystream Monorepo
http://www.joystream.org
GNU General Public License v3.0
1.42k stars 115 forks source link

Update Atlas & Pioneer designs to support WalletConnect #5039

Closed kdembler closed 6 months ago

kdembler commented 8 months ago

Part of #5010

WalletConnect is a protocol allowing securely connecting wallets to applications via a relay with no "physical" connection between the wallet and the browser. We want to support it in both of our applications - Atlas and Pioneer.

Here you can see how that flow works with Uniswap which is Ethereum based service. The user flow would be the same in our case.

https://github.com/Joystream/joystream/assets/12646744/ddd20ffa-49f5-4976-ab75-44c0d7f1b29a

When the QR code appears, I scan it with a wallet app on my mobile phone and approve and then the connection is done. Here's a still of the WalletConnect modal. You can see that in the upper-right corner it also has a button that allows you to copy a code so you don't have to use a camera and instead just paste into your wallet.

CleanShot 2024-01-12 at 14 49 16@2x

This is how wallet connection modal currently looks in Pioneer: CleanShot 2024-01-12 at 14 33 23@2x

And in Atlas: CleanShot 2024-01-12 at 14 34 34@2x

And their relevant Figma designs:

This will also be a good time to adjust Pioneer designs for connecting and creating memberships on mobile. Currently we only allow that on desktop.

So the specific goals for this tasks are:

  1. Add WalletConnect option to both apps wallet selection
  2. Design WalletConnect QR modal for both apps. It needs to have: 2.1. QR code for scanning with your camera 2.2. Button for copying a connection code instead of using the camera
  3. Add mobile version of Pioneer wallet selection modal
  4. Add mobile version of Pioneer onboarding modal and creating membership modal - https://www.figma.com/file/GlgN8uBRtvtMJtiOsdtDF7/Pioneer-design?type=design&node-id=8631-262482&mode=design&t=2uksmBzIHyEPDQjb-4 Please check the current production version first because there may be small difference from the design