昨天把基本版面接起來,今天回頭看程式,開始碰到畫面之外的問題。
搜尋和 Filter 看起來都能操作,但它們改變的結果,地圖有沒有跟上?我想先挑一個這樣的小問題,讓 Antigravity 讀程式、列改法,再動手修。
我把 repo 打開後,第一個指令不是「幫我改」,而是:
先閱讀目前專案與 docs。
不要修改任何檔案。
告訴我:
1. 專案目前有哪些主要區塊
2. 規格與實作有哪些落差
3. 如果只修一個小問題,你會先修哪裡
我想先看它怎麼理解現在的程式,尤其要分清楚:哪些是做錯了,哪些只是昨天還沒做到。
📸 圖片 1|Antigravity 讀完 repo 後的分析
Agent 讀完後,建議先修「地圖 Marker 和篩選結果不同步」。
它指出,目前列表已經會依搜尋和 Filter 更新,但示意地圖裡的 Marker 還是寫死的。店家被列表篩掉後,地圖上卻還看得到,也能點選。
這個問題很直接。使用者選了「營業中」,列表把打烊的店拿掉,地圖卻還能點到,看起來就像 Filter 沒作用。
至於它提到的 Bottom Sheet,Day 15 本來就沒要求完成,先記成尚未實作,不放進這次修改。
我接著給它第二段 Prompt,請它先列計畫:
這次只處理「地圖 Marker 與篩選結果不同步」。
先查看實際程式碼,不要修改檔案。
請列出:
1. 預計修改哪些檔案,每個檔案為什麼需要改。
2. Marker 如何使用與列表相同的篩選結果。
3. 選取的店家被篩除後,如何清除選取狀態。
4. 取消條件後,符合條件的 Marker 如何恢復。
5. 如何驗證搜尋、單一篩選、多條件 AND 與零結果。
沿用現有資料與狀態管理,
不要另寫一套搜尋或篩選邏輯。
被篩除的店家不應留下可點擊的 Marker。
不處理 Bottom Sheet、定位、其他資料欄位或分頁標題。
不要順便重構首頁。
如果需要修改預期以外的檔案,說明原因。
列完計畫後先停下,等我確認再實作。
這次先看它打算動哪裡,其他落差留著,不一起塞進來。
📸 圖片 2|Agent 的修改計畫
它列出的計畫只動兩個檔案:MockMapView.tsx 決定 Marker 是否顯示,Home.tsx 清掉被篩除店家的選取狀態。
這兩件事都能沿用現有的篩選結果,不需要再寫一套 Filter,也不用改整個首頁。
接著我送出實作指令:
依照剛才確認的計畫實作,
只修正 Marker 與篩選結果同步,以及相關選取狀態。
保留原有版面與其他功能。
若發現必須擴大修改範圍,先說明,不要直接重構。
完成後:
- 列出實際修改的檔案與原因。
- 執行相關檢查,回報實際結果。
- 區分已驗證與尚未驗證的項目。
- 不要自動 commit 或 push,讓我先看 diff。
Agent 回報完成後,我先看 git diff,對一下實際修改有沒有照計畫走。
第一個改動在 MockMapView.tsx。它把傳進來的店家 ID 整理成 visibleIds,原本三個 Marker 在顯示前,都先檢查自己的 ID 還在不在結果裡。
被篩掉就不渲染,地圖上也不會留下可以誤點的標記。
📸 圖片 3-1|MockMapView 的 Marker 顯示判斷
第二個改動在 Home.tsx。
原本程式只是暫時不顯示選取效果,selectedCafeId 裡還記著那家店。這次加上 useEffect,當選取的店家不在篩選結果裡,就把狀態設回 null。
這樣取消篩選後,店家可以重新出現,但不會因為舊狀態還留著,就又自己變成選取中。
📸 圖片 3-2|Home 清除被篩除店家的選取狀態
Agent 回報 npm run build 通過,也列出它在 390px 畫面測過的操作:
但它的回覆裡有一行,我不能直接照著勾完成:
重設所有篩選後,列表恢復 5 間店,地圖恢復 3 個 Marker。
另外兩間還沒有示意地圖位置,所以這次只修好原本三個 Marker 的篩選連動。整份回報卻把它寫成「地圖與列表完全同步」,這就說過頭了。
我把這兩件事分開記:被篩掉的店不會再留在地圖上,這是本次修改;另外兩間店沒有 Marker,是仍未處理的落差。
回到頁面,我要對的是剛才那幾個具體情況,不能只看首頁有沒有正常顯示。
尤其是「選一家店 → 把它篩掉 → 取消條件」這一組。Marker 恢復是一回事,先前的選取狀態有沒有跟著回來,是另一回事。Agent 的回報有提到 Marker 恢復,但沒有明確記錄最後這個選取狀態,還需要補確認。
切換地圖與列表、縮到手機寬度,也要一起看,避免修了同步卻影響原本的操作。
📸 圖片 4-1|修正後的 UI
這次修改的 commit 也另外留一張,方便對照實際改了什麼。它記錄的是這次 Marker 篩選與選取狀態的修改,不代表前面列出的落差全部解決。
📸 圖片 4-2|這次修改的 commit
今天只改了兩個檔案,卻讓我多注意到一件事:Agent 的完成摘要,也需要對著結果看。
它能列計畫、改程式、跑檢查,但「5 間店、3 個 Marker」這種差異,還是藏在一整排通過的項目裡。
先把這次改好的部分留下來,沒處理完的也記清楚。這樣下次打開專案,才知道現在到底做到哪裡。