mirror of
https://hacklab.nilfm.cc/nirvash
synced 2024-10-22 14:01:49 +00:00
28 lines
762 B
Go
28 lines
762 B
Go
package lfo
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
core "nilfm.cc/git/nirvash/archetype"
|
|
)
|
|
|
|
func WithAdapter(next http.Handler, adapter core.Adapter) http.Handler {
|
|
handlerFunc := func(w http.ResponseWriter, req *http.Request) {
|
|
*req = *req.WithContext(context.WithValue(req.Context(), "adapter", adapter))
|
|
next.ServeHTTP(w, req)
|
|
}
|
|
|
|
return http.HandlerFunc(handlerFunc)
|
|
}
|
|
|
|
func WithEditModes(next http.Handler) http.Handler {
|
|
handlerFunc := func(w http.ResponseWriter, req *http.Request) {
|
|
*req = *req.WithContext(context.WithValue(req.Context(), "edit-modes", map[string]core.EditMode{
|
|
"Literal": core.EditModeLiteralTextArea,
|
|
"Escaped": core.EditModeEscapedContentEditable,
|
|
}))
|
|
next.ServeHTTP(w, req)
|
|
}
|
|
|
|
return http.HandlerFunc(handlerFunc)
|
|
}
|