mirror of
https://github.com/umap-project/umap.git
synced 2025-04-28 19:42:36 +02:00
feat(sync): sync map properties over websocket
All keystrokes are currently sent, which is not ideal because it will use a lot of bandwidth.
This commit is contained in:
parent
698c926997
commit
c9abb15dd1
4 changed files with 9 additions and 6 deletions
|
@ -51,7 +51,7 @@ export class MessagesDispatcher {
|
|||
}
|
||||
}
|
||||
|
||||
dispatch({ kind, payload }) {
|
||||
dispatch({ kind, ...payload }) {
|
||||
console.log(kind, payload)
|
||||
if (kind == 'operation') {
|
||||
let updater = this.getUpdater(payload.subject, payload.metadata)
|
||||
|
|
|
@ -41,7 +41,7 @@ export class MapUpdater extends BaseUpdater {
|
|||
update({ key, value }) {
|
||||
console.log(key, value)
|
||||
this.updateObjectValue(this.map, key, value)
|
||||
this.map.renderProperties([key.replace('options.', '')])
|
||||
this.map.render([key.replace('options.', '')])
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ export class DatalayerUpdater extends BaseUpdater {
|
|||
console.log(datalayer, key, value)
|
||||
this.updateObjectValue(datalayer, key, value)
|
||||
const property = key.replace('options.', '')
|
||||
datalayer.renderProperties([property])
|
||||
datalayer.render([property])
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ class FeatureUpdater extends BaseUpdater {
|
|||
}
|
||||
|
||||
feature.datalayer.indexProperties(feature)
|
||||
feature.renderProperties([key])
|
||||
feature.render([key])
|
||||
}
|
||||
|
||||
delete({ metadata }) {
|
||||
|
|
|
@ -255,7 +255,10 @@ U.Map = L.Map.extend({
|
|||
initSyncEngine: async function () {
|
||||
// Get the authentication token from the server
|
||||
// And pass it to the sync engine.
|
||||
const [response, _, error] = await this.server.get('/map/2/ws-token/')
|
||||
// FIXME: use `this.urls`
|
||||
const [response, _, error] = await this.server.get(
|
||||
`/map/${this.options.umap_id}/ws-token/`
|
||||
)
|
||||
if (!error) {
|
||||
this.sync = new U.SyncEngine(this, 'ws://localhost:8001', response.token)
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ class OperationMessage(BaseModel):
|
|||
kind: str = "operation"
|
||||
verb: str = Literal["upsert", "update", "delete"]
|
||||
subject: str = Literal["map", "layer", "feature"]
|
||||
metadata: dict
|
||||
metadata: Optional[dict] = None
|
||||
key: str
|
||||
value: Optional[str]
|
||||
|
||||
|
|
Loading…
Reference in a new issue