Conversation
|
Thank you for your contribution! 🎉 🔔 @1weiho you might want to have a look. You can use this guide to learn how to check out the Pull Request locally in order to test it. You can expect an initial review within five business days. |
There was a problem hiding this comment.
PR Summary
This PR adds AI capabilities to the svgl extension, introducing tools for generating SVG logos and framework-specific components through natural language commands.
- The
get-svg-component.tsandget-svg-logo.tstools should wraplaunchCommandin try-catch blocks for better error handling - The
showToasterror handling in both tools could be simplified usingshowFailureToastfrom@raycast/utils - The
metadatafolder with screenshots should be added since there areviewcommands inpackage.json- see https://developers.raycast.com/basics/prepare-an-extension-for-store#how-to-use-it - Consider adding
subtitleto commands to indicate they are "Svgl" related since there are multiple commands - Lists and grids should use
isLoadingto avoid empty state flicker per https://developers.raycast.com/basics/prepare-an-extension-for-store#empty-states
4 file(s) reviewed, 9 comment(s)
Edit PR Review Bot Settings | Greptile
| "name": "get-svg-logo", | ||
| "title": "Get SVG Logo", | ||
| "description": "Get SVG logo" |
There was a problem hiding this comment.
style: Tool description is redundant with title. Consider adding more specific description about what the tool does
| "title": "Get SVG Component", | ||
| "description": "Get SVG component" | ||
| } |
There was a problem hiding this comment.
style: Tool description is redundant with title. Consider adding more specific description about what the tool does
|
|
||
| const svgContent = await fetchSvg(svgUrl); | ||
| await Clipboard.copy(svgContent); | ||
| return `✅ ${name} SVG ${framework} component copied to clipboard!`; |
There was a problem hiding this comment.
logic: framework variable is used in success message but could be undefined here since this is outside the framework conditional block
| return `✅ ${name} SVG ${framework} component copied to clipboard!`; | |
| return `✅ ${name} SVG copied to clipboard!`; |
|
|
||
| case "vue": | ||
| case "svelte": | ||
| framework = framework.toLowerCase().charAt(0).toUpperCase() + framework.slice(1); |
There was a problem hiding this comment.
style: reassigning framework parameter could cause issues - better to use a new variable for the capitalized version
| return await getSvg(filteredSvgs[0]); | ||
| } | ||
|
|
||
| const results = await Promise.all(filteredSvgs.map(getSvg)); |
There was a problem hiding this comment.
style: Promise.all will fail completely if any single promise rejects - consider using Promise.allSettled instead
|
This pull request has been automatically marked as stale because it did not have any recent activity. It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊 |
|
Remove the stalled label |
thomaspaulmann
left a comment
There was a problem hiding this comment.
This is very cool! Love to search for SVGs with natural language 🙌
|
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
✨ AI Enhancements add AI Tools to:
Screencast
CleanShot.2025-03-04.at.10.03.18.mp4
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare located outside the metadata folder if they were not generated with our metadata tool