52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
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),
|
|
}
|
|
}
|