mirror of
https://github.com/maputnik/editor.git
synced 2026-08-26 06:57:26 +00:00
Move style and store initialization to mount method (#1351)
This is in order to reduce warnings in the console for React 19 usage. This removes the deprecated defaultProp and also move all the store initialization logic out of the App.tsx file, keeping it a lot more clean. It removes the `debug` flag from the supported urls along with the `localport` and `localhost`, which I'm not sure if and how they were ever used. The tests are using the `style` url, so I think it is covered in terms of tests. It also improves some typings along the project. It removes some callbacks from the code and moves to use promises. ## Launch Checklist - [x] Briefly describe the changes in this PR. - [x] Include before/after visuals or gifs if this PR includes visual changes. - [x] Write tests for all new functionality. - [ ] Add an entry to `CHANGELOG.md` under the `## main` section. Before: <img width="1263" height="439" alt="image" src="https://github.com/user-attachments/assets/1988c4f7-39de-4fd2-b6da-b4736abc0441" /> After: <img width="1263" height="203" alt="image" src="https://github.com/user-attachments/assets/28079e6d-9de7-40a1-9869-01a0876ca79f" /> --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Bart Louwers <bart.louwers@gmail.com>
This commit is contained in:
+6
-6
@@ -1,6 +1,7 @@
|
||||
import {derefLayers} from '@maplibre/maplibre-gl-style-spec'
|
||||
import type {StyleSpecification, LayerSpecification} from 'maplibre-gl'
|
||||
import tokens from '../config/tokens.json'
|
||||
import type {StyleSpecificationWithId} from './definitions'
|
||||
|
||||
// Empty style is always used if no style could be restored or fetched
|
||||
const emptyStyle = ensureStyleValidity({
|
||||
@@ -13,15 +14,14 @@ function generateId() {
|
||||
return Math.random().toString(36).substring(2, 9)
|
||||
}
|
||||
|
||||
function ensureHasId(style: StyleSpecification & { id?: string }): StyleSpecification & { id: string } {
|
||||
function ensureHasId(style: StyleSpecification & { id?: string }): StyleSpecificationWithId {
|
||||
if(!('id' in style) || !style.id) {
|
||||
style.id = generateId();
|
||||
return style as StyleSpecification & { id: string };
|
||||
}
|
||||
return style as StyleSpecification & { id: string };
|
||||
return style as StyleSpecificationWithId;
|
||||
}
|
||||
|
||||
function ensureHasNoInteractive(style: StyleSpecification & {id: string}) {
|
||||
function ensureHasNoInteractive(style: StyleSpecificationWithId) {
|
||||
const changedLayers = style.layers.map(layer => {
|
||||
const changedLayer: LayerSpecification & { interactive?: any } = { ...layer }
|
||||
delete changedLayer.interactive
|
||||
@@ -34,14 +34,14 @@ function ensureHasNoInteractive(style: StyleSpecification & {id: string}) {
|
||||
}
|
||||
}
|
||||
|
||||
function ensureHasNoRefs(style: StyleSpecification & {id: string}) {
|
||||
function ensureHasNoRefs(style: StyleSpecificationWithId) {
|
||||
return {
|
||||
...style,
|
||||
layers: derefLayers(style.layers)
|
||||
}
|
||||
}
|
||||
|
||||
function ensureStyleValidity(style: StyleSpecification): StyleSpecification & { id: string } {
|
||||
function ensureStyleValidity(style: StyleSpecification): StyleSpecificationWithId {
|
||||
return ensureHasNoInteractive(ensureHasNoRefs(ensureHasId(style)))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user