Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR implements persistent popups functionality that allows popups to remain visible even when objects are dragged out of view. The changes enable manual tracking of popups by storing their ID and category in application state, ensuring they can be retrieved and displayed even outside current viewport bounds.
- Adds manual popup tracking system with hooks and utilities for normalizing categories
- Modifies clustering logic to always include manually tracked items
- Updates backend models to support manual ID filtering alongside spatial queries
Reviewed Changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/utils/normalizeCategory.js | New utility to normalize category names for consistent data/UI lookups |
| src/hooks/useManualPopupTracker.js | New hook to track manual popup state in memory store |
| src/pages/map/components/QueryData.jsx | Integrates manual ID filtering into data queries |
| src/pages/map/components/Clustering.jsx | Ensures manually tracked items bypass clustering |
| Multiple tile components | Adds popup tracking handlers to various map features |
| server/src/utils/manualFilter.js | New server utility for manual ID filtering with spatial bounds |
| Multiple server models | Updates database queries to support manual ID filtering |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
# [1.40.0-develop.1](v1.39.0...v1.40.0-develop.1) (2025-09-25) ### Features * persistent popups ([5cd5be0](5cd5be0)), closes [#1135](#1135)
|
🎉 This PR is included in version 1.40.0-develop.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
# [1.40.0](v1.39.0...v1.40.0) (2025-11-24) ### Bug Fixes * alias support for cooldown ([73e8157](73e8157)) * always show end route count ([5226575](5226575)) * apply to all should flip global ([5c23140](5c23140)) * backup error handling ([c6585e6](c6585e6)) * battle popup caching issue ([8cac1ce](8cac1ce)) * better hoverability on shiny rate ([e29a68b](e29a68b)) * default icon/audio selection ([248edda](248edda)) * dup gym pokemon ([d099945](d099945)) * dup keys ([91f1f58](91f1f58)) * eggs available ([48580d1](48580d1)) * expert filter per-Pokemon ([f06fae8](f06fae8)) * extra space around placed pokemon ([898e1e2](898e1e2)) * fix AdvAccordion backgroundColor ([4061ee2](4061ee2)) * gym range color should dynamically update ([7f9f95b](7f9f95b)) * improve touch tooltip experience ([945c24a](945c24a)) * isolate pokemon popup open state ([dc5fdc0](dc5fdc0)) * more robust translation fetching ([eaa2acf](eaa2acf)) * pvp50 enabled by default ([ad2df83](ad2df83)) * refine gym defender time ([30106c2](30106c2)) * refine station timer ([1353beb](1353beb)) * resetState respects server default ([e85f1e4](e85f1e4)) * route badge color should be consistent with their roles ([0c32962](0c32962)) * route crash ([206f558](206f558)) * seen raid level ([6c543c3](6c543c3)) * self loop route counting ([e415caa](e415caa)) * separate station/battle opacity ([ccdbcec](ccdbcec)) * showcase icon missing when invasion blocked ([12e6512](12e6512)) * station display ([3d72e14](3d72e14)) * stationed pokemon maxHeight ([5c46dbd](5c46dbd)), closes [#1078](#1078) * unknown_costume translatable ([3f4bb57](3f4bb57)) * update for Golbat [#312](#312) ([#1151](#1151)) ([3bd05d4](3bd05d4)) ### Features * (quest) pokemon background on map ([0676dd4](0676dd4)) * background support in popups ([#1152](#1152)) ([3354ef7](3354ef7)) * better nearby pokemon display and randomization ([425f840](425f840)) * configurable inactive station limit ([f8efbcd](f8efbcd)) * cooldown bypass ([#1137](#1137)) ([9ceefef](9ceefef)) * display amount in quest tooltip ([5e57d50](5e57d50)) * estimated max battle cp ([275f6f4](275f6f4)) * expired stations ([0521045](0521045)) * faster extraUserFields ([#1144](#1144)) ([2216787](2216787)) * gym defender updates every second ([e99d020](e99d020)) * jump to area ([#1149](#1149)) ([179ca24](179ca24)) * max battle stats display ([211e0ea](211e0ea)) * mega energy marker can be taller ([5dad220](5dad220)) * more compact pokestop marker ([622ae3d](622ae3d)) * persistent popups ([5cd5be0](5cd5be0)), closes [#1135](#1135) * quest bread mode ([b0fcf4f](b0fcf4f)) * reworked placed pokemon in station popup ([252f327](252f327)) * search auto focus ([29f1cef](29f1cef)) * show caught Pokemon in raid popup ([95eda89](95eda89)) * support tappable seen_type ([c74c607](c74c607)) * tappable from lure in popup ([69ce017](69ce017)) * tappables ([#1143](#1143)) ([943019f](943019f))
|
🎉 This PR is included in version 1.40.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Popups will still be there even if dragged out of view, which is pog! This also solves the usability issue of some popups being too tall. :)
Fixes #1132. Requires UnownHash/Golbat@bdf3d4b for Pokemon.
P.S. Context use so high. 😓 I also had to use my brain to figure out how to properly prompt Codex which I didn't like.
