-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Add gmail-accounts extension #17575
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
Add gmail-accounts extension #17575
Conversation
|
Congratulations on your new Raycast extension! 🚀 Due to our current reduced availability, the initial review may take up to 10-15 business days Once the PR is approved and merged, the extension will be available on our Store. |
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.
PR Summary
This PR adds a new Gmail Accounts extension that enables quick access to Chrome-based Gmail accounts with features for listing, pinning, and organizing multiple accounts.
- Missing
metadatafolder with screenshots for the view command as required for store submission - see https://developers.raycast.com/basics/prepare-an-extension-for-store#how-to-use-it getAccounts()insrc/gmail.tsshould handle errors gracefully using try/catch andshowFailureToastfrom@raycast/utilsexecSynccalls inlist-accounts.tsxshould be wrapped in try/catch blocks to handle potential failures gracefully- List component should use
isLoadingprop to avoid empty state flicker while accounts are being fetched
💡 (2/5) Greptile learns from your feedback when you react with 👍/👎!
10 file(s) reviewed, 13 comment(s)
Edit PR Review Bot Settings | Greptile
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
@greptileai check again |
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.
PR Summary
(updates since last review)
This PR continues to evolve the Gmail Accounts extension with improved error handling and user experience considerations.
openInChromefunction insrc/list-accounts.tsxshould escape the URL parameter to prevent command injection vulnerabilities- Consider using
showFailureToastinstead ofshowToastfor pin/unpin error handling inListItemcomponent - The
chrome-cookie-decryptpackage (v0.0.5) seems experimental for handling sensitive data - consider adding security warnings or finding a more established alternative - The
getAllowedMovementsfunction could be simplified by using array index checks instead of building a movements array
The implementation for handling Chrome's absence using List.EmptyView is actually a good approach as it provides a clear user experience with actionable feedback.
10 file(s) reviewed, 4 comment(s)
Edit PR Review Bot Settings | Greptile
pernielsentikaer
left a comment
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.
Hi 👋
Looks good to me, approved 🔥
|
Published to the Raycast Store: |
|
🎉 🎉 🎉 We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag. |
Description
This was a fun proof-of-concept project aimed at enhancing productivity by allowing users to open specific Gmail accounts directly from Raycast. It improves productivity by eliminating the need to manually switch accounts after opening the Gmail interface.
Why This Extension
I love the Gmail inbox interface, but I hate that I have to open the interface and only after that switch to the desired account. This extension solves this problem by letting users directly open specific Gmail accounts from Raycast.
The reason I didn't just add this functionality to the current Gmail Raycast extension is because they work completely differently - the existing Gmail extension requires you to add a token, while this extension doesn't require any setup beyond having Chrome installed.
Features
Security Note
This extension accesses Chrome cookies to retrieve your Google account information. It:
The extension needs these permissions to show you which accounts you're logged into. If you have security concerns, you can review the source code to see exactly how your data is handled.
How It Works
The extension reads your Chrome cookies to identify Google accounts you're logged into, then displays them in a convenient list within Raycast. You can then quickly access your Gmail inbox for any account with a single click.
Question About Implementation
I have one concern that I'm not sure if I implemented correctly:
If Chrome isn't installed on the system, I show a
ListwithList.EmptyViewto inform the user. This seems a bit off, but I couldn't find a dedicated error view. Is there a better way to handle this, or is my implementation correct? Simply throwing an error doesn't look nice and gives less control over actions.Screencast
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder