mirror of
https://github.com/maputnik/editor.git
synced 2026-10-12 14:03:44 +00:00
If the style arrives before the map's initial `style.load`, `componentDidUpdate` skips `setStyle` because `state.map` is still null. The `setState` on `style.load` is then blocked by `shouldComponentUpdate`, because `JSON.stringify` throws on the MapLibre `Map` in state, so the style is only applied after a later prop change, e.g. moving the map. Fix: `shouldComponentUpdate` compares state fields by reference instead of stringifying them. `zoom` is excluded: it changes on every zoom frame but is only read when a layer popup opens. ## Launch Checklist - [x] Briefly describe the changes in this PR. - [ ] ~~Link to related issues.~~ - [ ] ~~Include before/after visuals or gifs if this PR includes visual changes.~~ - [ ] ~~Write tests for all new functionality.~~ (removed per review) - [x] Add an entry to `CHANGELOG.md` under the `## main` section. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01WDkBFXcoMv8K4QSHA6P3Fg --- _Generated by [Claude Code](https://claude.ai/code)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
4.8 KiB
4.8 KiB
main
✨ Features and improvements
- Replace Cypress with Playwright for end-to-end tests and Vitest browser mode (Playwright provider) for component tests; drop the
@shellygo/cypress-test-utilshelper in favour of aMaputnikDriverpage object - Upgrade to MapLibre GL JS 6 and Vite 8, and update the remaining dependencies
- Serve the RTL text plugin from
@mapbox/mapbox-gl-rtl-textinstead of a pinned CDN URL, so its version is tracked inpackage.json - Exported HTML now loads MapLibre GL JS as an ES module, since v6 no longer ships a UMD bundle
- Add
font-faces,sky,rollandcenterAltitudeto the style settings modal - The sidebar can now be resized, both as a whole and in the split between the layer list and the layer editor
- Allow viewing and changing the map's max zoom in the debug modal
- ...Add new stuff here...
🐞 Bug fixes
- Prevent a crash when converting a function to an expression
- Prevent a crash when deleting either stop from a function with two stops
- Preserve expanded layer groups when deleting layers, including the first layer of a group
- The map's data listener now fires on tile loads again, so source and vector layer field autocompletion is populated
- The
maputnikdesktop binary now opens the default browser automatically on startup (opt out with--no-browser) - Keyboard shortcuts now keep working while the map has focus, instead of going dead until the map is blurred
- The map no longer stays blank on load until it is moved, when the style loads before the map is ready
- ...Add new stuff here...
3.1.0
✨ Features and improvements
- Added translation to "Links" in debug modal
- Add support for hillshade's color arrays and relief-color elevation expression
- Change layers icons to make them a bit more distinct
- Remove
@mdipackages in favor ofreact-icons - Add ability to control the projection of the map - either globe or mercator
- Add markdown support for doc related to the style-spec fields
- Added global state modal to allow editing the global state
- Added color highlight for problematic properties
- Upgraded codemirror from version 5 to version 6
- Add code editor to allow editing the entire style
- Add support for sprite object in setting modal
- Set the correct map view when opening a new style on an empty map
- Allow root-relative urls in the stylefile
🐞 Bug fixes
- Improved the local style open modal and local file upload.
- Fixed the Expression editor (for long expressions) being able to be float under other components further down
- Fixed an issue when clicking on a popup and then clicking on the map again
- Fix modal close button position
- Fixed an issue with the generation of translations
- Fix missing spec info when clicking next to a property
- Fix Firefox open file that stopped working due to react upgrade
- Fix issue with missing bottom error panel
- Fixed headers in left panes (Layers list and Layer editor) to remain visible when scrolling
- Fix error when using a source from localhost
- Fix an issue with scrolling when using the code editor
3.0.0
✨ Features and improvements
- Fix radio/delete filter buttons styling regression
- Add german translation
- Use same version number for web and desktop versions
- Add scheme type options for vector/raster tile
- Add
tileSizefield for raster and raster-dem tile sources - Update Protomaps Light gallery style to v4
- Add support to edit local files on the file system if supported by the browser
- Upgrade to MapLibre LG JS v5
- Upgrade Vite 6 and Cypress 14 (#970)
- Upgrade OpenLayers from v6 to v10
- When loading a style into localStorage that causes a QuotaExceededError, purge localStorage and retry
- Remove react-autobind dependency
- Remove usage of legacy
childContextTypesAPI - Refactor Field components to use arrow function syntax
- Replace react-autocomplete with Downshift in the autocomplete component
- Add LocationIQ as supported map provider with access token field and gallery style
- Use maputnik go binary for the docker image to allow file watching
- Revmove support for
debugandlocalporturl parameters - Replace react-sortable-hoc with dnd-kit to avoid react console warnings and also use a maintained library
🐞 Bug fixes
- Fix incorrect handing of network error response (#944)
- Show an error when adding a layer with a duplicate ID
- Replace deprecated
ReactDOM.renderusage withcreateRootand drop theDOMNodeRemovedcleanup hack
2.1.1
✨ Features and improvements
- Add GitHub workflows for releasing new versions
- Update desktop build to pull from this repo (#922)
2.0.0
- Update MapLibre to version 4 (#872)
- Start continuous deployment of maputnik website
1.7.0
- See release notes at https://maputnik.github.io/blog/2020/04/23/release-v1.7.0