Conversation
Group一覧の検索がorg_enのみだったのをorg, org_en, IDで検索できるように修正。 MailSendDialogsで空文字メールアドレスへの送信を防止するガードを追加。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… multiple pages for consistency and improved readability. Updated imports for ReactMarkdown to use the correct path.
There was a problem hiding this comment.
Pull request overview
This PR fixes the Group list search filter (which was limited to English names only) to also support Japanese names and IDs, and adds an empty-string guard in MailSendDialogs to prevent invalid mail API calls. Additionally, it includes a major dependency upgrade (MUI v5→v7, react-router-dom v6→v7, react-markdown v8→v10, date-fns v2→v4, vite v4→v7, and many more), migrates all MUI Grid components from the legacy Grid item xs= API to the new Grid size= API, updates react-markdown import paths, and adds a workbox file-size cache limit.
Changes:
- Expanded Group search filter to match on
org(Japanese name),org_en(English name), andIDfields - Added
if (mail !== '')guard inMailSendDialogs.request()to prevent sending to empty email addresses when splitting comma-separated mail strings - Major dependency version upgrades and corresponding API migrations (MUI Grid v2, react-markdown default imports, workbox config)
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
package.json |
Major dependency version upgrades across the board |
vite.config.ts |
Added workbox maximumFileSizeToCacheInBytes config (3 MiB) |
src/pages/Group/Group.tsx |
Extended search filter to include org, org_en, and ID |
src/pages/Group/Mail.tsx |
Added empty-string guard in MailSendDialogs, migrated Grid API |
src/pages/Group/GroupDetail/GroupDetail.tsx |
Migrated Grid item → size API |
src/pages/Group/GroupDetail/Group.tsx |
Migrated Grid item → size API |
src/pages/Group/GroupDetail/Memo.tsx |
Migrated Grid item → size API |
src/pages/Dashboard/Dashboard.tsx |
Migrated Grid item → size API |
src/pages/User/UserDetail/UserDetail.tsx |
Migrated Grid item → size API |
src/pages/Service/ServiceDetail/ServiceDetail.tsx |
Migrated Grid item → size API |
src/pages/Service/ServiceDetail/IP/IP.tsx |
Migrated Grid item → size API |
src/pages/Service/ServiceDetail/IP/IPAdd.tsx |
Migrated Grid item → size API |
src/pages/Connection/ConnectionDetail/ConnectionDetail.tsx |
Migrated Grid item → size API |
src/pages/Notice/NoticeDetail.tsx |
Migrated Grid item → size API, react-markdown import |
src/pages/Notice/NoticeAdd.tsx |
Migrated Grid item → size API, react-markdown import |
src/pages/Notice/Notice.tsx |
react-markdown import path update |
src/pages/Support/SupportAdd.tsx |
Migrated Grid item → size API |
src/pages/Support/SupportDetail/TextInput.tsx |
react-markdown import path update |
src/pages/Add/ServiceAdd.tsx |
Migrated Grid item → size API |
src/pages/Add/ConnectionAdd.tsx |
Migrated Grid item → size API |
src/components/Dashboard/JPNIC/JPNIC.tsx |
Migrated Grid item → size API |
| "@emotion/react": "^11.14.0", | ||
| "@emotion/styled": "^11.14.1", | ||
| "@hookform/resolvers": "^5.2.2", | ||
| "@mui/icons-material": "^7.3.9", | ||
| "@mui/material": "^7.3.9", | ||
| "@mui/x-date-pickers": "^8.27.2", | ||
| "@testing-library/jest-dom": "^6.9.1", | ||
| "@testing-library/react": "^15.0.0", | ||
| "@types/node": "^25.3.5", | ||
| "@types/react": "^18.2.6", | ||
| "@types/react-dom": "^18.2.4", | ||
| "@types/react-select": "^5.0.1", | ||
| "axios": "^1.4.0", | ||
| "date-fns": "^2.30.0", | ||
| "husky": "^8.0.3", | ||
| "moment": "^2.29.4", | ||
| "notistack": "^3.0.1", | ||
| "axios": "^1.13.6", | ||
| "date-fns": "^4.1.0", | ||
| "husky": "^9.1.7", | ||
| "notistack": "^3.0.2", | ||
| "react": "^18.2.0", | ||
| "react-dom": "^18.2.0", | ||
| "react-hook-form": "^7.43.9", | ||
| "react-markdown": "^8.0.7", | ||
| "react-router-dom": "^6.11.2", | ||
| "react-select": "^5.7.3", | ||
| "react-use-websocket": "^4.3.1", | ||
| "react-hook-form": "^7.71.2", | ||
| "react-markdown": "^10.1.0", | ||
| "react-router-dom": "^7.13.1", | ||
| "react-select": "^5.10.2", | ||
| "react-use-websocket": "^4.13.0", | ||
| "recoil": "^0.7.7", | ||
| "remark-gfm": "^3.0.1", | ||
| "typescript": "~5.0.4", | ||
| "web-vitals": "^3.3.1", | ||
| "yup": "^1.1.1" | ||
| "remark-gfm": "^4.0.1", | ||
| "typescript": "~5.9.3", | ||
| "web-vitals": "^5.1.0", | ||
| "yup": "^1.7.1" |
There was a problem hiding this comment.
The PR description only mentions two changes (Group search filter fix and MailSendDialogs empty-mail guard), but the actual changes are significantly broader: a major dependency upgrade (MUI v5→v7, react-router-dom v6→v7, react-markdown v8→v10, date-fns v2→v4, vite v4→v7, TypeScript 5.0→5.9, etc.), MUI Grid API migration (Grid item → Grid size), react-markdown import path migration, and a new workbox cache-size config. These additional changes should be documented in the PR description so reviewers are aware of the scope and potential risk.
| "axios": "^1.13.6", | ||
| "date-fns": "^4.1.0", | ||
| "husky": "^9.1.7", | ||
| "notistack": "^3.0.2", |
There was a problem hiding this comment.
There are two lines with broken indentation. Line 22 ("notistack") and line 67 ("@typescript-eslint/eslint-plugin") are missing leading whitespace, breaking the consistent 4-space indentation used throughout the rest of the file. Each entry in dependencies and devDependencies should be indented with 4 spaces.
| "eslint-plugin-react": "^7.32.2", | ||
| "lint-staged": "^13.2.2", | ||
| "prettier": "^2.8.8", | ||
| "@typescript-eslint/eslint-plugin": "^8.56.1", |
There was a problem hiding this comment.
This line is missing the 4-space indentation that all other entries in devDependencies use. It should be indented to match the surrounding entries.
Summary
org_en(英語名) のみだったフィルタを、org(日本語名)・IDでも検索できるように修正MailSendDialogsでmails.split(',')の結果に空文字が含まれた場合に無効なメール送信が発生するバグを修正(他のダイアログと同様にif (mail !== '')ガードを追加)Test plan
🤖 Generated with Claude Code