Skip to content

feat: persistent popups#1135

Merged
Mygod merged 8 commits intoWatWowMap:developfrom
Mygod:persistent-popup
Sep 25, 2025
Merged

feat: persistent popups#1135
Mygod merged 8 commits intoWatWowMap:developfrom
Mygod:persistent-popup

Conversation

@Mygod
Copy link
Collaborator

@Mygod Mygod commented Sep 25, 2025

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.
image

@Mygod Mygod requested a review from Copilot September 25, 2025 00:55
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

@Mygod Mygod changed the title Persistent popups feat: persistent popups Sep 25, 2025
@Mygod Mygod requested a review from Copilot September 25, 2025 02:23
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

@Mygod Mygod merged commit 5cd5be0 into WatWowMap:develop Sep 25, 2025
2 checks passed
@Mygod Mygod deleted the persistent-popup branch September 25, 2025 02:50
github-actions bot pushed a commit that referenced this pull request Sep 25, 2025
# [1.40.0-develop.1](v1.39.0...v1.40.0-develop.1) (2025-09-25)

### Features

* persistent popups ([5cd5be0](5cd5be0)), closes [#1135](#1135)
@github-actions
Copy link

🎉 This PR is included in version 1.40.0-develop.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Nov 24, 2025
# [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))
@github-actions
Copy link

🎉 This PR is included in version 1.40.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant