fix: maplibre reactive signal bugs and stale signal re-push #3

Merged
ryan merged 3 commits from worktree-datastar-research into main 2026-02-20 18:31:27 +00:00
2 changed files with 9 additions and 5 deletions
Showing only changes of commit b2474bf79d - Show all commits

View File

@@ -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}));`+
`});`+ `});`+
`});`, `});`,

View File

@@ -122,12 +122,15 @@ 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 {
if me.marker.LngSignal != nil && me.marker.LatSignal != nil {
children = append(children, children = append(children,
h.Input(h.Type("hidden"), ev.signal.Bind()), 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...)