fix (desktop): preset fix an add two defaults#312
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughThe pull request adds preset template functionality to the settings view, introduces two predefined templates (Codex Danger and Claude Danger), and applies minor CSS layout fixes to ensure input fields shrink properly within flex containers. Placeholder text descriptions are updated for clarity. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes
Poem
Pre-merge checks and finishing touches❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🧹 Preview Cleanup CompleteThe following preview resources have been cleaned up:
Thank you for your contribution! 🎉 |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsx (1)
45-53: Improved handling of long preset valuesAdding
min-w-0andtruncateon the input complements the flex container and prevents long names/paths from breaking the row layout, while preserving readability. The small redundancy with the parent’smin-w-0is acceptable.apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsx (1)
13-44: Template + quick‑add flow is solid; consider a small robustness guardThe new
PresetTemplate/PRESET_TEMPLATESsetup and quick‑add UI integrate cleanly with the existing presets logic: template payloads match whatcreatePreset.mutateexpects,existingPresetNames/isTemplateAddedgive a clear “Already added” state, and the explanatory copy around presets/quick‑add reads well.One edge case to consider: very fast repeated clicks on a template button could slip in multiple
createPreset.mutatecalls beforecreatePreset.isPendingorserverPresetsupdate, potentially creating duplicates if the backend doesn’t enforce uniqueness onname. If you care about that case, you could add an internal guard:-const handleAddTemplate = (template: PresetTemplate) => { - if (isTemplateAdded(template)) return; - createPreset.mutate(template.preset); -}; +const handleAddTemplate = (template: PresetTemplate) => { + if (createPreset.isPending || isTemplateAdded(template)) return; + createPreset.mutate(template.preset); +};Not critical, but it makes the duplicate‑prevention behavior more robust without changing the UX.
Also applies to: 61-68, 120-123, 158-189
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsx(1 hunks)apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsx(1 hunks)apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsx(5 hunks)apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/types.ts(1 hunks)
🧰 Additional context used
📓 Path-based instructions (5)
apps/desktop/**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (apps/desktop/AGENTS.md)
For Electron interprocess communication, ALWAYS use tRPC as defined in
src/lib/trpc
Files:
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/types.ts
apps/desktop/**/*.{ts,tsx}
📄 CodeRabbit inference engine (apps/desktop/AGENTS.md)
apps/desktop/**/*.{ts,tsx}: Please use alias as defined intsconfig.jsonwhen possible
Prefer zustand for state management if it makes sense. Do not use effect unless absolutely necessary
Files:
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/types.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
Maintain type safety and avoid using
anyunless absolutely necessary in TypeScript code
Files:
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/types.ts
**/components/**/[A-Z]*.tsx
📄 CodeRabbit inference engine (AGENTS.md)
Use one folder per component with structure ComponentName/ComponentName.tsx + index.ts barrel export
Files:
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsx
apps/desktop/src/renderer/**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
Never import Node.js modules in renderer process or shared code - only in src/main/
Files:
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/types.ts
🧠 Learnings (2)
📚 Learning: 2025-12-08T23:32:32.232Z
Learnt from: CR
Repo: superset-sh/superset PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-08T23:32:32.232Z
Learning: Applies to src/components/{ui,ai-elements,react-flow}/**/*.tsx : Use kebab-case single files for shadcn/ui components in src/components/ui/, src/components/ai-elements, and src/components/react-flow/
Applied to files:
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsxapps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetRow/PresetRow.tsx
📚 Learning: 2025-12-08T23:32:32.232Z
Learnt from: CR
Repo: superset-sh/superset PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-08T23:32:32.232Z
Learning: Use React + TailwindCSS v4 + shadcn/ui for UI components
Applied to files:
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/PresetsSettings.tsx
🔇 Additional comments (2)
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/types.ts (1)
15-27: Placeholder copy changes look goodThe shorter “e.g.” placeholders are clear and better aligned with the new quick‑add UX, with no impact on types or behavior.
apps/desktop/src/renderer/screens/main/components/SettingsView/PresetsSettings/CommandsEditor/CommandsEditor.tsx (1)
71-85: Flex layout tweak is appropriateAdding
min-w-0to the flexed input ensures it can shrink without overflowing alongside the delete button; the rest of the behavior is unchanged and looks correct.
Description
Related Issues
Type of Change
Testing
Screenshots (if applicable)
Additional Notes
Summary by CodeRabbit
New Features
Bug Fixes
Style
✏️ Tip: You can customize this high-level summary in your review settings.