Closed ogu-kazemiya closed 3 weeks ago
Here are some key observations to aid the review process:
**🎫 Ticket compliance analysis 🔶** **[301](https://github.com/traPtitech/traPortfolio-Dashboard/issues/301) - Partially compliant** Fully compliant requirements: - プロジェクトの削除ボタンを実装した Not compliant requirements: - サーバーの対応状況についての確認が不明 |
⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪ |
🧪 No relevant tests |
🔒 No security concerns identified |
⚡ Recommended focus areas for review Error Handling プロジェクト削除の失敗時のエラーハンドリングが不十分かもしれません。例外処理の詳細な検討が必要です。 Modal Management モーダルの状態管理が直接的で、より抽象化されたアプローチが可能かもしれません。 |
Explore these optional code suggestions:
Category | Suggestion | Score |
Best practice |
___
**`deleteProject`関数の完了後に`isDeleting`の値を更新するために、`finally`ブロックを使用してください。**
[src/pages/Project.vue [115-126]](https://github.com/traPtitech/traPortfolio-Dashboard/pull/391/files#diff-4e8aa41e439d638b3e4fb2ed6b5fc5fd543a6e78b8e5431f82746141b203122aR115-R126)
```diff
isDeleting.value = true
try {
await apis.deleteProject(projectId.value)
mutate()
toast.success('プロジェクト情報を削除しました')
router.push({ name: 'Projects' })
} catch {
toast.error('プロジェクト情報の削除に失敗しました')
+} finally {
+ isDeleting.value = false
}
-isDeleting.value = false
```
| 8 |
Enhancement |
例外処理にエラーログを追加することで、デバッグが容易になります。___ **`deleteProject`関数内の例外処理を追加してください。現在のコードでは、例外が発生した場合に何も行われません。** [src/pages/Project.vue [115-124]](https://github.com/traPtitech/traPortfolio-Dashboard/pull/391/files#diff-4e8aa41e439d638b3e4fb2ed6b5fc5fd543a6e78b8e5431f82746141b203122aR115-R124) ```diff try { await apis.deleteProject(projectId.value) mutate() toast.success('プロジェクト情報を削除しました') router.push({ name: 'Projects' }) -} catch { +} catch (error) { + console.error(error) toast.error('プロジェクト情報の削除に失敗しました') } ```Suggestion importance[1-10]: 7Why: Adding error logging in the catch block enhances error tracking and debugging, which is crucial for maintaining robust error handling in production environments. | 7 |
プロジェクト削除中にユーザーが誤って再度削除を試みるのを防ぎます。___ **`deleteProject`関数の実行中にボタンを無効化するために、`isDeleting`の状態を利用してください。** [src/pages/Project.vue [190]](https://github.com/traPtitech/traPortfolio-Dashboard/pull/391/files#diff-4e8aa41e439d638b3e4fb2ed6b5fc5fd543a6e78b8e5431f82746141b203122aR190-R190) ```diff -Suggestion importance[1-10]: 6Why: Disabling the delete form button while deletion is in progress prevents multiple submissions, which can lead to potential errors or unexpected behavior. | 6 |
フォーマッターはかけたんですが、何故か弾かれてます なんででしょうか…?
確認してみたところ、どうやら最新ではない main
ブランチから今のブランチを作ってしまったみたい
一旦は main
ブランチを今のブランチにマージしてみてほしいです!
User description
close #301
contestEditの実装ほぼ丸パクリです
PR Type
enhancement
Description
DeleteForm
コンポーネントを使用して、削除ボタンを実装しました。ConfirmModal
を追加し、ユーザーが削除操作を確認できるようにしました。Changes walkthrough 📝
Project.vue
プロジェクト削除機能の追加と確認モーダルの実装
src/pages/Project.vue
DeleteForm
とConfirmModal
コンポーネントをインポート