View this post on Hive: Adding contextual menus to Steem Keychain
If, by now, you don't know about Steem Keychain then you need to wake up 😅. Steem Keychain (Keychain for short) is the Metamask for STEEM, its a browser extension that allows you to manage your private keys and sign transactions without passing your keys to the dApps. Steemit.com has integrated Keychain to allow you to login and use its feature without entering your password or private keys.
I have previously contributed to the Keychain code and added a feature called Keychainify which allows overtaking a SteemConnect URL and trigger Keychain.
I've now added a new feature for displaying context menus to a page.
Transfer to user menus
When right-clicking on a link that sends you to a Steem user profile, you will see a "Steem Keychain" context menu allowing you to:
- Transfer STEEM/SBD to the user
- Send a MEMO message to the user (0.001 STEEM transfer)
- Tip a user (1 STEEM transfer)
Transfer to author menus
These context menus are the same as for the above but they are showing for a page as opposed to for links. So if you are on a page related to a Steem author (a blog post for example), then the menu will show up and will allow you to do the same thing as above
I have developed several Chrome extensions with context menu before so it was easy, the challenge comes from understanding how Steem Keychain works and how to trigger a popup view. Thank you @stoodkev for being available and giving me some clues on where to look at.
I ended up having to refactor part of the navigation logic and move things around to make the popup screen show up and display the transfer view without temporarily showing the main view first and causing some flickering.
The feature is not yet available, a PR has been submitted:
Vote for my witness
On Steem, Witnesses are playing the important role of providing a performant and safe network for all of us. You have the power to choose 30 trusty witnesses to package transactions and sign the blocks that will go in the Steem blockchain. Vote for me via SteemConnect to help me do more useful projects for the communities.