* feat(ui): add drag-and-drop sorting for provider list Implement drag-and-drop functionality to allow users to reorder providers with custom sort indices. Features: - Install @dnd-kit libraries for drag-and-drop support - Add sortIndex field to Provider type (frontend & backend) - Implement SortableProviderItem component with drag handle - Add update_providers_sort_order Tauri command - Sync tray menu order with provider list sorting - Add i18n support for drag-related UI text Technical details: - Use @dnd-kit/core and @dnd-kit/sortable for smooth drag interactions - Disable animations for immediate response after drop - Update tray menu immediately after reordering - Sort priority: sortIndex → createdAt → name 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(ui): remove unused transition variable in ProviderList Remove unused 'transition' destructured variable from useSortable hook to fix TypeScript error TS6133. The transition property is hardcoded as 'none' in the style object to prevent conflicts with drag operations. --------- Co-authored-by: Claude <noreply@anthropic.com>
55 lines
1.6 KiB
JSON
55 lines
1.6 KiB
JSON
{
|
|
"name": "cc-switch",
|
|
"version": "3.5.1",
|
|
"description": "Claude Code & Codex 供应商切换工具",
|
|
"scripts": {
|
|
"dev": "pnpm tauri dev",
|
|
"build": "pnpm tauri build",
|
|
"tauri": "tauri",
|
|
"dev:renderer": "vite",
|
|
"build:renderer": "vite build",
|
|
"typecheck": "tsc --noEmit",
|
|
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,json}\"",
|
|
"format:check": "prettier --check \"src/**/*.{js,jsx,ts,tsx,css,json}\""
|
|
},
|
|
"keywords": [],
|
|
"author": "Jason Young",
|
|
"license": "MIT",
|
|
"devDependencies": {
|
|
"@tauri-apps/cli": "^2.8.0",
|
|
"@types/node": "^20.0.0",
|
|
"@types/react": "^18.2.0",
|
|
"@types/react-dom": "^18.2.0",
|
|
"@vitejs/plugin-react": "^4.2.0",
|
|
"prettier": "^3.6.2",
|
|
"typescript": "^5.3.0",
|
|
"vite": "^5.0.0"
|
|
},
|
|
"dependencies": {
|
|
"@codemirror/lang-javascript": "^6.2.4",
|
|
"@codemirror/lang-json": "^6.0.2",
|
|
"@codemirror/lint": "^6.8.5",
|
|
"@codemirror/state": "^6.5.2",
|
|
"@codemirror/theme-one-dark": "^6.1.3",
|
|
"@codemirror/view": "^6.38.2",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@tailwindcss/vite": "^4.1.13",
|
|
"@tauri-apps/api": "^2.8.0",
|
|
"@tauri-apps/plugin-dialog": "^2.4.0",
|
|
"@tauri-apps/plugin-process": "^2.0.0",
|
|
"@tauri-apps/plugin-store": "^2.0.0",
|
|
"@tauri-apps/plugin-updater": "^2.0.0",
|
|
"codemirror": "^6.0.2",
|
|
"i18next": "^25.5.2",
|
|
"jsonc-parser": "^3.2.1",
|
|
"lucide-react": "^0.542.0",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-i18next": "^16.0.0",
|
|
"smol-toml": "^1.4.2",
|
|
"tailwindcss": "^4.1.13"
|
|
}
|
|
}
|