Files
nebula/htmx/request.go

52 lines
1.1 KiB
Go
Raw Normal View History

package htmx
import "net/http"
func IsRequest(r *http.Request) bool {
return r.Header.Get("HX-Request") == "true"
}
func IsPartial(r *http.Request) bool {
return r.Header.Get("HX-Request-Type") == "partial"
}
func IsBoosted(r *http.Request) bool {
return r.Header.Get("HX-Boosted") == "true"
}
func IsHistoryRestore(r *http.Request) bool {
return r.Header.Get("HX-History-Restore-Request") == "true"
}
func GetTarget(r *http.Request) string {
return r.Header.Get("HX-Target")
}
func GetTrigger(r *http.Request) string {
return r.Header.Get("HX-Trigger")
}
func GetTriggerName(r *http.Request) string {
return r.Header.Get("HX-Trigger-Name")
}
func GetCurrentURL(r *http.Request) string {
return r.Header.Get("HX-Current-URL")
}
func GetPromptResponse(r *http.Request) string {
return r.Header.Get("HX-Prompt")
}
func ExtractContext(r *http.Request) *Context {
return &Context{
IsHTMX: IsRequest(r),
IsPartial: IsPartial(r),
IsBoosted: IsBoosted(r),
Target: GetTarget(r),
Trigger: GetTrigger(r),
TriggerID: GetTrigger(r),
CurrentURL: GetCurrentURL(r),
}
}