fix: use templ.NewOnceHandle to prevent script duplication on SSE patches
Replace ConnectionIndicatorWithScript wrapper with a single ConnectionIndicator component that uses templ.NewOnceHandle() to ensure the watcher script is only rendered once per page, even when the indicator is patched via SSE.
This commit is contained in:
@@ -52,6 +52,8 @@ func isStale(lastPing int64) bool {
|
||||
return lastPing == 0
|
||||
}
|
||||
|
||||
var connectionWatcherHandle = templ.NewOnceHandle()
|
||||
|
||||
// ConnectionIndicator shows a small dot indicating SSE connection status.
|
||||
// Server patches this with a timestamp; client JS detects staleness.
|
||||
templ ConnectionIndicator(lastPing int64) {
|
||||
@@ -79,7 +81,9 @@ templ ConnectionIndicator(lastPing int64) {
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
@connectionWatcher()
|
||||
@connectionWatcherHandle.Once() {
|
||||
@connectionWatcher()
|
||||
}
|
||||
}
|
||||
|
||||
script connectionWatcher() {
|
||||
|
||||
Reference in New Issue
Block a user