Missing optional chaining on actor_details and reaction_items in apps/space reactions and votes
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- react, typescript
調査の方向性
apps/space/components/issues/reactions/issue-vote-reactions.tsx と apps/space/store/issue-detail.store.ts から始め、downvote とリアクションの処理を、issue で説明されているガード付きの vote 処理と比較してください。関連するリアクションと vote のテストがあれば確認し、該当するチェックを実行してください。actor の詳細やリアクション項目が欠けていても TypeError が発生しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
In apps/space/components/issues/reactions/issue-vote-reactions.tsx, the upvote tooltip on line 80 safely uses optional chaining when reading actor_details (allUpVotes.map((r) => r.actor_details?.display_name)), as do lines 51, 52, and 58 (vote.actor_details?.id). However, the downvote tooltip on line 125 accesses r.actor_details.display_name directly without optional chaining:
allDownVotes
.map((r) => r.actor_details.display_name)
.slice(0, VOTES_LIMIT)
Similarly, in apps/space/store/issue-detail.store.ts, addIssueVote (line 413) and removeIssueVote (line 428) guard against nullish vote_items and actor_details ((this.details[issueID].vote_items ?? []).filter((v) => v.actor_details?.id !== this.rootStore.user.data?.id)), whereas addIssueReaction (line 324: ...this.details[issueID].reaction_items) and removeIssueReaction (line 346: this.details[issueID].reaction_items.filter((_r) => !(_r.reaction === reactionHex && _r.actor_details.id === this.rootStore.user.data?.id))) right above them do not guard against nullish reaction_items or _r.actor_details.
Adding optional chaining on r.actor_details?.display_name in issue-vote-reactions.tsx and guarding reaction_items ?? [] / _r.actor_details?.id in issue-detail.store.ts prevents a TypeError when actor_details or reaction_items is absent. I can put up a small PR if that's helpful.
- 主要言語
- TypeScript
- スター
- 61.5k
- フォーク
- 6.2k
- 平均マージ
- 1日 17時間
- マージ済み PR(30日)
- 81
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
makeplane/plane のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
makeplane/plane#10082 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[bug]: Email notifications show a broken avatar for users without a profile photo対応中かも @gurnoorpannu が 15 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
makeplane/plane#10009 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
🐛 Bug: Calendar work items cannot be opened on mobile対応中かも @pennnnnnnnnn が 17 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
[bug]: First day of the week section not translated when Idioma is Español対応中かも @deepcfr が 20 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
makeplane/plane#9967 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
makeplane/plane の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
marmelab/react-admin#11431 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
db-ux-design-system/core-web#8655 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
stripe/react-stripe-js#728 ·
-
[Upload Grade C dataset] the pop-up changes it's size while uploading the document => Jumping effectオープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
epam/statgpt-admin-frontend#305 ·
メンテナーはふだん 1 日以内に返信