Skip to content

feat: 机に当たり判定#82

Merged
haru-036 merged 1 commit intomainfrom
fix/table
Dec 20, 2025
Merged

feat: 机に当たり判定#82
haru-036 merged 1 commit intomainfrom
fix/table

Conversation

@haru-036
Copy link
Copy Markdown
Contributor

@haru-036 haru-036 commented Dec 20, 2025

Summary by CodeRabbit

リリースノート

  • バグ修正
    • テーブルとの相互作用時のドラッグ操作の検出精度を向上しました。アイテムをドラッグする際にテーブルとの衝突判定がより正確に機能するようになりました。

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Dec 20, 2025

Walkthrough

おじさんがざっくり説明しちゃおうネ✨

複数のドラッグ可能コンポーネント(DraggableItem、DraggableSnowdome、PlacementDraggableItem)にtableRefプロップを追加して、ルートコンポーネントから全体に伝播させたヨ〜。テーブルをレイキャスティング対象に含めることで、ドラッグ操作時にテーブルと相互作用できるようにしたってワケダヨ〜(´ω`)

Changes

コホート / ファイル(s) 変更内容
DraggableコンポーネントへのtableRef追加
frontend/src/features/room/draggableItem.tsx
frontend/src/features/room/draggableSnowdome.tsx
frontend/src/features/room/itemPlacementMode.tsx
各コンポーネントのプロップインターフェースにtableRef: React.RefObject<THREE.Group>を追加。tableRefをレイキャスティング対象に含めるよう構成を更新
ルートコンポーネントでのtableRef初期化と配布
frontend/src/routes/$roomId/index.lazy.tsx
tableRefをコンポーネントで新規作成し、PlacementDraggableItemとDraggableSnowdomeに渡すようにネ。TableのGltfにref={tableRef}を設定して外部からアクセス可能に🌟

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • tableRefの伝播が正しく機能しているか確認が必要—各コンポーネント間での参照渡しが適切に行われているか
  • レイキャスティング対象への組み込み—tableRefが正しくレイキャスト計算に含まれているか検証してね
  • プロップの可視性—PlacementDraggableItemでtableRefが必須プロップから選択プロップへの変更がないか、一貫性をチェック〜

Possibly related PRs

おじさん詳しいヨ🎵こういう参照の伝播は丁寧にチェックするべきカナ〜!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed タイトルは日本語で「机に当たり判定」と書かれており、テーブルに衝突検出機能を追加するという変更内容と完全に一致している。
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/table

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

🚀 Deploy Preview Ready!

Application Status URL Version ID
🎨 frontend ✅ Ready Open Preview 8e0a55dd

🔨 Latest Commit: 5fc2f37
📅 Deployed at: 2025/12/21 4:06:24 (JST)

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
frontend/src/routes/$roomId/index.lazy.tsx (1)

416-416: 型アサーションは不要かもしれないヨ〜🤔

おじさん気づいちゃったんだけどネ、tableRefは65行目で既にReact.RefObject<THREE.Group>として定義されてるから、as React.RefObject<THREE.Group>の型アサーションは必要ないかもしれないヨ〜(´ω`)

コードは正しく動くから急ぎじゃないけど、シンプルにできるネ🎵

🔎 おじさんの提案する修正案
-                  tableRef={tableRef as React.RefObject<THREE.Group>}
+                  tableRef={tableRef}

416行目と432行目の両方に適用できるヨ〜✨ でも、今のままでも全然問題ないから、お好みでどうぞだネ(^_^)v

Also applies to: 432-432

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f1c18fc and f0c69f7.

📒 Files selected for processing (4)
  • frontend/src/features/room/draggableItem.tsx (3 hunks)
  • frontend/src/features/room/draggableSnowdome.tsx (3 hunks)
  • frontend/src/features/room/itemPlacementMode.tsx (3 hunks)
  • frontend/src/routes/$roomId/index.lazy.tsx (4 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{tsx,jsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{tsx,jsx}: Convert Figma-generated custom Tailwind CSS values to standard Tailwind values: rounded-[24px] → rounded-3xl, gap-[32px] → gap-8, p-[12px] → p-3, text-[20px] → text-xl, etc.
Use design system colors defined in frontend/src/styles.css instead of custom hex values or rgba: use bg-primary, text-foreground, border-border, etc.
Prioritize shadcn/ui components from frontend/src/components/ui/ (Button, Input, Dialog, Field, Label, Calendar, Popover, RadioGroup, Separator, Switch, Spinner) instead of creating custom components
Remove data-node-id attributes from Figma-generated code
Remove non-standard Tailwind classes like content-stretch
Use project default font instead of custom font specifications like font-['Noto_Sans_JP:Bold',sans-serif]
Adjust absolute positioning values (left-[232px] top-[216px]) based on actual use case rather than using Figma-generated coordinates

Files:

  • frontend/src/features/room/draggableItem.tsx
  • frontend/src/routes/$roomId/index.lazy.tsx
  • frontend/src/features/room/draggableSnowdome.tsx
  • frontend/src/features/room/itemPlacementMode.tsx
🔇 Additional comments (7)
frontend/src/features/room/draggableSnowdome.tsx (3)

22-22: テーブルの参照が追加されたネ〜✨

おじさん見たけど、tableRefの型定義バッチリだヨ〜(^_^)v roomRefやplacedItemsRefと同じパターンで統一されてて、とっても読みやすいネ🎵 これでテーブルにも当たり判定が効くようになるんだヨネ〜素晴らしい実装だネ✨


36-36: 関数パラメータも完璧ダヨ〜🌟

tableRefがちゃんとデストラクチャリングされてるネ(´ω`) インターフェースと一致してて、おじさん感心しちゃったヨ〜✨


105-105: レイキャストのターゲットに追加されたネ〜🎵

おじさんチェックしたけど、tableRef.currentのnullチェックもバッチリだし、roomRefやplacedItemsRefと同じパターンで実装されててスゴく良いヨ〜✨(^_^)v これでテーブルの上にもオブジェクト配置できるようになるんだネ〜ワクワクしちゃうネ🌟

frontend/src/features/room/itemPlacementMode.tsx (1)

81-81: パススルーコンポーネントもバッチリだネ〜✨

おじさん見たけど、PlacementDraggableItemがtableRefをキレイに中継してるヨ〜(^_^)v 型定義も追加されて(94行目)、ちゃんとDraggableItemに渡してる(106行目)ネ🎵 シンプルで分かりやすい実装、おじさん大好きだヨ〜🌟

Also applies to: 94-94, 106-106

frontend/src/features/room/draggableItem.tsx (1)

21-21: DraggableItemも完璧な実装だヨ〜✨

おじさんチェックしたけど、DraggableSnowdomeと全く同じパターンで実装されてて素晴らしいネ〜(^_^)v

  • インターフェースにtableRef追加(21行目)✅
  • パラメータでちゃんと受け取って(35行目)✅
  • レイキャストのターゲットに追加(103行目)✅

一貫性があって、おじさん感動しちゃったヨ〜🎵 nullチェックもバッチリだし、コードレビュー通過だネ🌟

Also applies to: 35-35, 103-103

frontend/src/routes/$roomId/index.lazy.tsx (2)

65-65: テーブル用のrefが作られたネ〜🌟

おじさん確認したけど、useRefでTHREE.Groupの型指定もバッチリだヨ〜✨ roomRefやplacedItemsRefと並んで定義されてて、とっても整理されてるネ(´ω`) 良いコードだヨ〜🎵


362-370: テーブルのコライダーとref設定バッチリだネ〜✨

おじさん見たけど、良い変更だヨ〜(^_^)v

  • colliders="trimesh"でテーブルの形状に正確な当たり判定が付くネ🎵
  • ref={tableRef}でちゃんとrefが紐付けられてるヨ〜✨

これでテーブルがレイキャストのターゲットとして機能するようになるんだネ〜素晴らしいネ🌟

@haru-036 haru-036 merged commit 14b166b into main Dec 20, 2025
5 checks passed
@haru-036 haru-036 deleted the fix/table branch December 20, 2025 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant