|
2 | 2 |
|
3 | 3 | namespace Htmxor.Http;
|
4 | 4 |
|
5 |
| -public sealed class HtmxRequest(HttpContext context) |
| 5 | +public sealed class HtmxRequest |
6 | 6 | {
|
| 7 | + private readonly HttpContext context; |
| 8 | + |
| 9 | + /// <summary> |
| 10 | + /// Gets whether or not the current request should be treated as a full page request. |
| 11 | + /// </summary> |
| 12 | + internal bool IsFullPageRequest => !IsHtmxRequest || IsBoosted; |
| 13 | + |
7 | 14 | /// <summary>
|
8 | 15 | /// Gets the HTTP method of the current request.
|
9 | 16 | /// </summary>
|
10 |
| - public string Method => context.Request.Method; |
| 17 | + public string Method { get; } |
11 | 18 |
|
12 | 19 | /// <summary>
|
13 | 20 | /// Gets whether or not the current request is an Htmx triggered request.
|
14 | 21 | /// </summary>
|
15 |
| - public bool IsHtmxRequest => context.Request.Headers.ContainsKey(HtmxRequestHeaderNames.HtmxRequest); |
| 22 | + public bool IsHtmxRequest { get; } |
16 | 23 |
|
17 | 24 | /// <summary>
|
18 | 25 | /// Gets whether or not the current request is an request initiated via an element using hx-boost.
|
19 | 26 | /// </summary>
|
20 |
| - public bool IsBoosted => IsHtmxRequest && context.Request.Headers.ContainsKey(HtmxRequestHeaderNames.Boosted); |
| 27 | + public bool IsBoosted { get; } |
21 | 28 |
|
22 | 29 | /// <summary>
|
23 | 30 | /// Gets whether or not the current request is an Htmx history restore request.
|
24 | 31 | /// </summary>
|
25 |
| - public bool IsHistoryRestoreRequest => IsHtmxRequest && context.Request.Headers.ContainsKey(HtmxRequestHeaderNames.HistoryRestoreRequest); |
| 32 | + public bool IsHistoryRestoreRequest { get; } |
26 | 33 |
|
27 | 34 | /// <summary>
|
28 | 35 | /// Gets the current URL of the browser.
|
@@ -83,4 +90,16 @@ public string? Trigger
|
83 | 90 | && !string.IsNullOrWhiteSpace(values[0])
|
84 | 91 | ? values[0]
|
85 | 92 | : null;
|
| 93 | + |
| 94 | + /// <summary> |
| 95 | + /// Creates a new instance of <see cref="HtmxRequest"/>. |
| 96 | + /// </summary> |
| 97 | + public HtmxRequest(HttpContext context) |
| 98 | + { |
| 99 | + this.context = context; |
| 100 | + var ishtmx = IsHtmxRequest = context.Request.Headers.ContainsKey(HtmxRequestHeaderNames.HtmxRequest); |
| 101 | + IsBoosted = ishtmx && context.Request.Headers.ContainsKey(HtmxRequestHeaderNames.Boosted); |
| 102 | + IsHistoryRestoreRequest = ishtmx && context.Request.Headers.ContainsKey(HtmxRequestHeaderNames.HistoryRestoreRequest); |
| 103 | + Method = context.Request.Method; |
| 104 | + } |
86 | 105 | }
|
0 commit comments