Skip to content
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 grab-a-cursor extension #16009

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

tudelatu
Copy link

@tudelatu tudelatu commented Dec 23, 2024

Description

Browse, search, and copy SVG cursors directly from Raycast. Perfect for designers, developers, and content creators who need quick access to cursor assets.

  • 🔍 Search: Find cursors by name
  • ⭐️ Favorites: Favorite your most-used cursors for instant access
  • 📊 Usage Tracking: Automatically tracks and surfaces your frequently used cursors
  • 🎯 Quick Copy: Copy SVG cursors to clipboard

Screencast

grab-a-cursor

Checklist

- fix: correct title case in package.json
- fix: remove unused imports and fix ESLint issues
- screenshot + readme edits
- jest testing + better error handling
- documentation
- past to the app + change extension icon + fixes
- reset frequently used actions accessible all the time
- filtering
- favorites + icons changes
- fix section sorting logic + new icons
- new icon + cursor management + update display preferences
- Add \'Most Frequently Added\' section + organize sections + polish icons
- fixed colours and svgs
- v1
- Initial commit
@raycastbot raycastbot added the new extension Label for PRs with new extensions label Dec 23, 2024
@raycastbot
Copy link
Collaborator

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.

@raycastbot
Copy link
Collaborator

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 😊

@raycastbot raycastbot added the status: stalled Stalled due inactivity label Jan 6, 2025
Copy link
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi 👋

Thanks for your contribution 💪

I have now tested your extension, and I have some feedback ready for you:

  • Could you add at least one screenshot of the extension

I'm looking forward to testing this extension again 🔥

Request a new review when you are ready. Feel free to contact me here or at Slack if you have any questions.

icon={Icon.HeartDisabled}
title="Remove from Favorites"
onAction={() => onRemoveFavorite(cursor)}
shortcut={{ modifiers: ["cmd"], key: "u" }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
shortcut={{ modifiers: ["cmd"], key: "u" }}
shortcut={Keyboard.Shortcut.Common.Pin}

Can we use the default Raycast one?

icon={Icon.Heart}
title="Add to Favorites"
onAction={() => onFavorite(cursor)}
shortcut={{ modifiers: ["cmd"], key: "f" }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
shortcut={{ modifiers: ["cmd"], key: "f" }}
shortcut={Keyboard.Shortcut.Common.Pin}

Can we use the default Raycast one?

@@ -0,0 +1,108 @@
import { ActionPanel, Action, Grid, Icon } from "@raycast/api";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { ActionPanel, Action, Grid, Icon } from "@raycast/api";
import { ActionPanel, Action, Grid, Icon, Keyboard } from "@raycast/api";


return (
<Action.Paste
title={`Paste in ${activeApp?.name || "Active App"}`}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention SVG

<ActionPanel.Section>
<Action.CopyToClipboard
content={cursor.content}
title={`Copy ${cursor.name}`}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention SVG

Comment on lines +59 to +93
<ActionPanel.Section title="Display Size">
{currentDisplaySize !== "small" && (
<Action
icon={Icon.AppWindowGrid3x3}
title="Small"
shortcut={{ modifiers: ["cmd", "shift"], key: "1" }}
onAction={() => onDisplaySizeChange("small")}
/>
)}
{currentDisplaySize !== "medium" && (
<Action
icon={
currentDisplaySize === "small"
? Icon.AppWindowGrid3x3
: Icon.AppWindowGrid2x2
}
title="Medium"
shortcut={{ modifiers: ["cmd", "shift"], key: "2" }}
onAction={() => onDisplaySizeChange("medium")}
/>
)}
{currentDisplaySize !== "large" && (
<Action
icon={
currentDisplaySize === "small" ||
currentDisplaySize === "medium"
? Icon.AppWindowGrid2x2
: Icon.AppWindowGrid3x3
}
title="Large"
shortcut={{ modifiers: ["cmd", "shift"], key: "3" }}
onAction={() => onDisplaySizeChange("large")}
/>
)}
</ActionPanel.Section>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be confusing, I'd rather just have it in preferences - would that be okay?

We can always add an action to make it faster to change

 <Action
              onAction={() => openExtensionPreferences()}
              title="Open Extension Preferences"
              icon={Icon.Gear}
              shortcut={{ modifiers: ["cmd", "shift"], key: "," }}
            />

@pernielsentikaer pernielsentikaer self-assigned this Jan 7, 2025
@raycastbot raycastbot removed the status: stalled Stalled due inactivity label Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new extension Label for PRs with new extensions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants