Added htmx package.

This commit is contained in:
mikestefanello 2021-12-23 17:09:23 -05:00
parent d6ef2b0b73
commit f115fcb602
2 changed files with 78 additions and 49 deletions

View file

@ -1,49 +0,0 @@
package controller
import (
"github.com/labstack/echo/v4"
)
// HTMX headers (https://htmx.org/docs/#requests)
const (
HTMXHeaderRequest = "HX-Request"
HTMXHeaderTrigger = "HX-Trigger"
HTMXHeaderTriggerName = "HX-Trigger-Name"
HTMXHeaderTriggerAfterSwap = "HX-Trigger-After-Swap"
HTMXHeaderTriggerAfterSettle = "HX-Trigger-After-Settle"
HTMXHeaderTarget = "HX-Target"
HTMXHeaderPrompt = "HX-Prompt"
HTMXHeaderPush = "HX-Push"
HTMXHeaderRedirect = "HX-Redirect"
HTMXHeaderRefresh = "HX-Refresh"
)
type (
HTMXRequest struct {
Enabled bool
Trigger string
TriggerName string
Target string
Prompt string
}
HTMXResponse struct {
Push string
Redirect string
Refresh bool
Trigger string
TriggerAfterSwap string
TriggerAfterSettle string
// TODO: No content 204 response?
}
)
func GetHTMXRequest(ctx echo.Context) HTMXRequest {
return HTMXRequest{
Enabled: ctx.Request().Header.Get(HTMXHeaderRequest) == "true",
Trigger: ctx.Request().Header.Get(HTMXHeaderTrigger),
TriggerName: ctx.Request().Header.Get(HTMXHeaderTriggerName),
Target: ctx.Request().Header.Get(HTMXHeaderTarget),
Prompt: ctx.Request().Header.Get(HTMXHeaderPrompt),
}
}