Conversation
|
Congratulations on your new Raycast extension! 🚀 We're currently experiencing a high volume of incoming requests. As a result, 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. |
- update title to proper case - Fix TypeScript cache type error - removed obsolete asset file
Greptile SummaryThis PR adds a new Duden extension that lets users search German words on Duden.de directly from Raycast. The extension scrapes Duden.de using Cheerio, applies in-memory caching (30-minute TTL), and displays rich word details (pronunciation, meaning, synonyms, etymology, etc.) in a Detail view. Key issues found:
Confidence Score: 2/5
Important Files Changed
Prompt To Fix All With AIThis is a comment left during a code review.
Path: extensions/duden/src/search-duden-de.tsx
Line: 74-76
Comment:
**No back navigation from word details**
When `selectedWord` is set, the command returns `<WordDetails>` as the root component. Because this is a conditional render rather than a navigation push, pressing Escape will exit the extension entirely instead of returning to the search results. Users have no way to go back to the list and look up another word in the same session.
The idiomatic fix is to use `useNavigation().push()` to push the detail view onto the navigation stack:
```typescript
import { useNavigation } from "@raycast/api";
const { push } = useNavigation();
const handleWordSelection = async (result: SearchResult) => {
setIsLoading(true);
try {
const word = await getWordDetails(result.urlname);
push(<WordDetails word={word} />);
} catch (error) {
// ...
} finally {
setIsLoading(false);
}
};
```
This gives Raycast proper navigation context so Escape pops back to the list. The same change applies to the auto-navigation for a single result (`singleWord`) on lines 33–34.
How can I resolve this? If you propose a fix, please make it concise.
---
This is a comment left during a code review.
Path: extensions/duden/CHANGELOG.md
Line: 8
Comment:
**Changelog date should use `{PR_MERGE_DATE}` placeholder**
The changelog entry uses a hardcoded date instead of the required `{PR_MERGE_DATE}` placeholder. The merge date is populated automatically when the PR is merged.
```suggestion
## [Initial Version] - {PR_MERGE_DATE}
```
**Rule Used:** What: Changelog entries must use `{PR_MERGE_DATE}`... ([source](https://app.greptile.com/review/custom-context?memory=c2214c11-df56-490a-b1c0-09a385df481a))
How can I resolve this? If you propose a fix, please make it concise.
---
This is a comment left during a code review.
Path: extensions/duden/src/search-duden-de.tsx
Line: 84
Comment:
**Double debouncing: `throttle` + manual `setTimeout`**
The `throttle` prop on `<List>` already defers `onSearchTextChange` by ~300 ms. Combined with the manual `setTimeout(…, 300)` in the `useEffect`, the effective delay before a network request is roughly 600 ms (or more). Remove either the `throttle` prop or the manual debounce to avoid double-throttling.
```suggestion
searchBarPlaceholder="Search German words on Duden.de (minimum 3 characters)..."
```
How can I resolve this? If you propose a fix, please make it concise.
---
This is a comment left during a code review.
Path: extensions/duden/package.json
Line: 12-15
Comment:
**Category `Productivity` is not the best fit**
`Productivity` is meant for task management and personal productivity tools (e.g., Todoist). A dictionary/reference lookup extension fits `Documentation` (documentation search and reference tools) more precisely. `Web` is appropriate as a secondary category since the extension searches a website.
```suggestion
"categories": [
"Documentation",
"Web"
],
```
**Rule Used:** What: Assign at least one predefined category to e... ([source](https://app.greptile.com/review/custom-context?memory=f49debbf-b6f6-4c0d-9b35-e1927815992b))
How can I resolve this? If you propose a fix, please make it concise.Reviews (1): Last reviewed commit: "Update duden extension" | Re-trigger Greptile |
- Remove unused DudenWord import
- Fix double debouncing: Remove manual setTimeout, keep throttle prop
- Fix navigation: Use Raycast navigation stack instead of conditional rendering
- use \'Documentation\' as primary category
- use {PR_MERGE_DATE} placeholder in changelog
|
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 😊 |
|
👋 this is not stale - just waiting for review |
Description
Lookup lemma from the online DUDEN (German language dictionary)
Screencast
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder