Skip to content

Sync Develop to Main for the last time#1210

Merged
Mygod merged 24 commits intomainfrom
develop
Apr 19, 2026
Merged

Sync Develop to Main for the last time#1210
Mygod merged 24 commits intomainfrom
develop

Conversation

@Mygod
Copy link
Copy Markdown
Collaborator

@Mygod Mygod commented Apr 19, 2026

🫡

Mygod and others added 22 commits March 14, 2026 22:11
# [1.41.0-develop.12](v1.41.0-develop.11...v1.41.0-develop.12) (2026-03-15)

### Bug Fixes

* weather icon uses wrong time of day for wild ([5944452](5944452))
…popups

Normalize pokestop incident state into shared marker and popup views so
showcases, gold stops, Kecleon, and invasions follow the same precedence
rules across rendering paths.

Add blocker metadata and showcase expiry to the GraphQL payload, then use
that state on the client to:
- derive marker-visible vs popup-visible incidents
- keep timers and base marker display in sync with filtered incidents
- gate showcase range on visible showcase markers
- show explicit blocked reasons in the popup for hidden incidents

Also add the missing gold stop blocker locale string.
# Conflicts:
#	CHANGELOG.md
#	package.json
## [1.41.2-develop.1](v1.41.1...v1.41.2-develop.1) (2026-03-26)

### Bug Fixes

* change scan-on-demand dialog to notification ([b77145d](b77145d))
* **pokestops:** align incident blocker visibility across markers and popups ([8acf245](8acf245))
* weather icon uses wrong time of day for wild ([5944452](5944452))
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](WebReflection/flatted@v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mygod <contact-git@mygod.be>
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9.
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md)
- [Commits](handlebars-lang/handlebars.js@v4.7.8...v4.7.9)

---
updated-dependencies:
- dependency-name: handlebars
  dependency-version: 4.7.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9.
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md)
- [Commits](handlebars-lang/handlebars.js@v4.7.8...v4.7.9)

---
updated-dependencies:
- dependency-name: handlebars
  dependency-version: 4.7.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@apollo/server](https://github.com/apollographql/apollo-server/tree/HEAD/packages/server) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/apollographql/apollo-server/releases)
- [Changelog](https://github.com/apollographql/apollo-server/blob/main/packages/server/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-server/commits/@apollo/server@5.5.0/packages/server)

---
updated-dependencies:
- dependency-name: "@apollo/server"
  dependency-version: 5.5.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## [1.41.2-develop.2](v1.41.2-develop.1...v1.41.2-develop.2) (2026-04-03)

### Bug Fixes

* keep drawer scroll position ([a242e84](a242e84))
* properly set default discord auth as none ([3670810](3670810))
## [1.41.2-develop.3](v1.41.2-develop.2...v1.41.2-develop.3) (2026-04-03)

### Bug Fixes

* weather update consistency ([184ac2f](184ac2f))
## [1.41.2-develop.4](v1.41.2-develop.3...v1.41.2-develop.4) (2026-04-04)

### Bug Fixes

* restore drawer sublist scroll positions ([8950dd5](8950dd5))
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.4.1 to 6.4.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.4.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.4.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.4.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Copy link
Copy Markdown

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 syncs develop back into main, bringing in several recent UI/UX bug fixes (drawer scroll persistence, scan-on-demand notifications, weather consistency), updated Pokéstop incident-blocking behavior across markers/popups, a Discord auth prompt retry improvement, and a handful of dependency / CI workflow updates.

Changes:

  • Align Pokéstop marker + popup incident visibility by introducing incident blocker state and additional Pokéstop fields in GraphQL/client logic.
  • Improve map UI behavior: persist drawer sublist scroll/grid state, render ActiveWeather from weather query data, and swap scan-on-demand dialog to notifications.
  • Update Discord auth prompt handling (default prompt + retry on silent auth failure), CI linting, and bump a few dependencies.

Reviewed changes

Copilot reviewed 30 out of 34 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
yarn.lock Dependency lock updates (Apollo server, Vite, etc.).
package.json Version bump, lint-staged uses eslint cache, Vite/Apollo bumps.
packages/vite-plugins/package.json Bump Vite devDependency.
.gitignore Ignore .eslintcache.
.github/workflows/lint.yml Use yarn lint in CI.
.github/workflows/release.yml Add yarn lint step before build/release.
CHANGELOG.md Changelog entries for the develop prereleases.
src/services/queries/pokestop.js Request new Pokéstop fields needed for incident blocker logic.
server/src/graphql/typeDefs/scanner.graphql Add new Pokéstop fields to GraphQL schema.
server/src/models/Pokestop.js Compute/return showcase_expiry + incident blocker fields and normalize incident display type.
packages/types/lib/scanner.d.ts Add incident blocker fields to Pokéstop type.
src/features/pokestop/incidentPriority.js New shared incident priority/blocking logic used by marker/popup.
src/features/pokestop/PokestopTile.jsx Use incident state to decide marker/popup visibility, timers, and blocker info.
src/features/pokestop/usePokestopMarker.js Render event/invasion badges based on “visible” incidents after blocking.
src/features/pokestop/PokestopPopup.jsx Use incident blocker to disable rows and explain blocking reason.
packages/locales/lib/human/en.json Add gold_stop_block label.
src/pages/map/components/QueryData.jsx Render ActiveWeather only when querying weather data.
src/pages/map/components/Container.jsx Remove global ActiveWeather rendering.
src/features/weather/ActiveWeather.jsx Derive active weather from provided query data instead of Apollo cache scanning.
src/features/weather/WeatherPopup.jsx Fix timer update loop by using an interval with correct cleanup/deps.
src/features/pokemon/PokemonPopup.jsx Fix weather icon rendering (time-of-day + color handling).
src/components/Notification.jsx Add autoHideDuration, ignoreClickaway, closable controls.
src/features/scanner/ScanDialog.jsx Replace MUI dialog UX with Notification-based UX.
src/features/drawer/index.jsx Persist drawer scroll position across open/close.
src/features/drawer/hooks/useScrollMemory.js Add reusable scroll/grid-state memory utilities for drawer sublists.
src/features/drawer/components/SelectorList.jsx Persist selector sublist scroll + virtuoso grid state; pass visibility into tabbed children.
src/features/drawer/areas/AreaTable.jsx Persist scan areas table scroll position.
src/components/virtual/VirtualGrid.jsx Thread virtuoso restoreStateFrom/stateChanged/scrollerRef through wrapper.
server/src/routes/authRouter.js Add Discord silent-auth retry behavior and session flag.
packages/types/lib/augmentations.d.ts Type session augmentation for discordPromptRetry.
packages/config/lib/mutations.js Default Discord clientPrompt to 'none'.
config/local.example.json Add clientPrompt to Discord strategy example.
config/multi-domain-example/local.json Add clientPrompt to Discord strategy example.
server/src/ui/drawer.js Minor ordering change in pokestop drawer config fields.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread server/src/models/Pokestop.js Outdated
## [1.41.2-develop.5](v1.41.2-develop.4...v1.41.2-develop.5) (2026-04-19)

### Bug Fixes

* perms cleanup ([c513936](c513936))
Copy link
Copy Markdown

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 30 out of 34 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +32 to +36
default:
return event?.display_type
? INCIDENT_PRIORITY_SETTINGS.INVASION_EVENT_NPC
: 0
}
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

getEventIncidentPriority uses a truthiness check on event.display_type in the default case. If display_type is the string "0" (allowed by the declared number | string | null type), it is truthy and will incorrectly return INVASION_EVENT_NPC instead of 0. Consider basing this branch on the numeric value (e.g., Number(event?.display_type ?? 0) > 0) so "0"/0 are treated consistently.

Copilot uses AI. Check for mistakes.
(event) => getEventIncidentPriority(event) >= blocker.priority,
)
: popupEvents
const markerInvasions = blocker ? [] : popupInvasions
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

getPokestopIncidentState currently sets markerInvasions to [] whenever any blocker exists. This makes markers hide all invasions even when the blocker is a gold stop (priority INVASION_GENERIC) and an invasion has equal/higher priority, which also conflicts with isIncidentBlockedBy (uses >). Consider only suppressing invasions when the blocker is actually stronger than the strongest invasion priority (or otherwise align the marker suppression rule with the popup disabling rule).

Suggested change
const markerInvasions = blocker ? [] : popupInvasions
const strongestInvasionPriority = popupInvasions.reduce(
(maxPriority, invasion) =>
Math.max(maxPriority, getInvasionIncidentPriority(invasion)),
0,
)
const markerInvasions =
blocker && blocker.priority > strongestInvasionPriority
? []
: popupInvasions

Copilot uses AI. Check for mistakes.
Comment on lines +55 to +71
/**
* @param {{ display_type?: number | string | null, event_expire_timestamp?: number | string | null }} event
* @returns {boolean}
*/
export function isActiveEvent(event, ts) {
return Number(event?.event_expire_timestamp ?? 0) > ts
}

/**
* @param {{ grunt_type?: number | string | null, incident_expire_timestamp?: number | string | null }} invasion
* @returns {boolean}
*/
export function isActiveInvasion(invasion, ts) {
return (
Number(invasion?.grunt_type ?? 0) > 0 &&
Number(invasion?.incident_expire_timestamp ?? 0) > ts
)
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

The JSDoc for isActiveEvent/isActiveInvasion does not document the ts parameter even though the functions require it. With // @ts-check enabled, adding @param {number} ts (and similarly for both functions) will improve type checking and prevent accidental calls without a timestamp.

Copilot uses AI. Check for mistakes.
@Mygod Mygod merged commit cace3cc into main Apr 19, 2026
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 1.41.2 🎉

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants