feat: integrate nebula UI with worker-assets-gen

This commit is contained in:
Prad Nukala
2024-10-07 21:15:25 -04:00
parent e926e5b9d6
commit af6e07323b
22 changed files with 114 additions and 101 deletions
+18
View File
@@ -0,0 +1,18 @@
//go:build js && wasm
package channel
import (
"syscall/js"
"github.com/labstack/echo/v4"
)
type BroadcastContext struct {
echo.Context
Channel js.Value
}
func (c *BroadcastContext) BroadcastMessage(message string) {
c.Channel.Call("postMessage", message)
}
+35
View File
@@ -0,0 +1,35 @@
//go:build js && wasm
package channel
import (
"syscall/js"
"github.com/labstack/echo/v4"
)
type JSHandler func(this js.Value, args []js.Value) interface{}
func UseBroadcastChannel(channelName string, handler JSHandler) echo.MiddlewareFunc {
var channel js.Value
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
if channel.IsUndefined() {
channel = js.Global().Get("BroadcastChannel").New(channelName)
channel.Call("addEventListener", "message", handler)
}
cc := &BroadcastContext{
Context: c,
Channel: channel,
}
return next(cc)
}
}
}
func PostBroadcastMessage(c echo.Context, message string) {
cc := c.(*BroadcastContext)
cc.BroadcastMessage(message)
}
@@ -1,4 +1,4 @@
package auth
package swt
import (
"fmt"
@@ -1,4 +1,4 @@
package auth
package swt
import (
"net/http"