fix: maplibre reactive signal bugs and stale signal re-push #3
@@ -140,6 +140,7 @@ func initScript(m *Map) string {
|
|||||||
`else if(sig===%[4]s)inp.value=map.getZoom();`+
|
`else if(sig===%[4]s)inp.value=map.getZoom();`+
|
||||||
`else if(sig===%[5]s)inp.value=map.getBearing();`+
|
`else if(sig===%[5]s)inp.value=map.getBearing();`+
|
||||||
`else if(sig===%[6]s)inp.value=map.getPitch();`+
|
`else if(sig===%[6]s)inp.value=map.getPitch();`+
|
||||||
|
`else return;`+
|
||||||
`inp.dispatchEvent(new Event('input',{bubbles:true}));`+
|
`inp.dispatchEvent(new Event('input',{bubbles:true}));`+
|
||||||
`});`+
|
`});`+
|
||||||
`});`,
|
`});`,
|
||||||
|
|||||||
@@ -122,11 +122,14 @@ func (m *Map) Element(extra ...h.H) h.H {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event listener binding elements
|
// Hidden inputs for signal-backed marker position writeback (drag → signal)
|
||||||
for _, ev := range m.events {
|
for _, me := range m.markers {
|
||||||
children = append(children,
|
if me.marker.LngSignal != nil && me.marker.LatSignal != nil {
|
||||||
h.Input(h.Type("hidden"), ev.signal.Bind()),
|
children = append(children,
|
||||||
)
|
h.Input(h.Type("hidden"), me.marker.LngSignal.Bind()),
|
||||||
|
h.Input(h.Type("hidden"), me.marker.LatSignal.Bind()),
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
children = append(children, extra...)
|
children = append(children, extra...)
|
||||||
|
|||||||
Reference in New Issue
Block a user