Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Ramstack.HtmxToolkit/HtmxRequestHeaders.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ internal HtmxRequestHeaders(HttpRequest request) =>
/// <remarks>
/// The header name is <see cref="HtmxRequestHeaderNames.Request" />.
/// </remarks>
public bool Request => GetBoolean(_headers, HtmxRequestHeaderNames.Request);
public bool Request => _headers.ContainsKey(HtmxRequestHeaderNames.Request);

/// <summary>
/// Gets the type of the expected response, either a partial or a full page.
Expand Down
4 changes: 3 additions & 1 deletion src/Ramstack.HtmxToolkit/HtmxResponseHeaders.cs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,9 @@ public string Reselect
/// <param name="value">The header value.</param>
private static void SetHeader(IHeaderDictionary headers, string key, string? value)
{
if (value is not null)
if (string.IsNullOrEmpty(value))
headers.Remove(key);
else
headers[key] = value;
}

Expand Down
8 changes: 4 additions & 4 deletions src/Ramstack.HtmxToolkit/HttpRequestExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static class HttpRequestExtensions
/// otherwise, <see langword="false" />.
/// </returns>
public static bool IsHtmxRequest(this HttpRequest request) =>
request.Headers.ContainsKey(HtmxRequestHeaderNames.Request);
request.GetHtmxHeaders().Request;

/// <summary>
/// Determines whether the specified HTTP request is an HTMX request.
Expand All @@ -31,19 +31,19 @@ public static bool IsHtmxRequest(this HttpRequest request) =>
public static bool IsHtmxRequest(this HttpRequest request, out HtmxRequestHeaders headers)
{
headers = new HtmxRequestHeaders(request);
return request.IsHtmxRequest();
return headers.Request;
}

/// <summary>
/// Determines whether the specified HTTP request was made using AJAX instead of a normal navigation.
/// Determines whether the request came from a link or form enhanced with <c>hx-boost</c>.
/// </summary>
/// <param name="request">The HTTP request.</param>
/// <returns>
/// <see langword="true" /> if the specified HTTP request is boosted;
/// otherwise, <see langword="false" />.
/// </returns>
public static bool IsHtmxBoosted(this HttpRequest request) =>
request.Headers.TryGetValue(HtmxRequestHeaderNames.Boosted, out var value) && value is ["true"];
request.GetHtmxHeaders().Boosted;

/// <summary>
/// Determines whether the specified HTTP request has an <c>HX-Request-Type</c> value of <c>"full"</c>.
Expand Down
Loading