From 3f142ab1465cf2002194c62424b059bb2f62eea0 Mon Sep 17 00:00:00 2001 From: rameel Date: Sun, 9 Aug 2026 22:10:13 +0500 Subject: [PATCH] Reorder trigger timings to match Receive-Swap-Settle order --- .../HtmxResponseHeaders.cs | 20 +++++++++---------- src/Ramstack.HtmxToolkit/HtmxTriggerTiming.cs | 12 +++++------ src/Ramstack.HtmxToolkit/PendingEvents.cs | 18 ++++++++--------- .../TagHelpers/HtmxConfigTagHelper.cs | 12 +++++------ 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/Ramstack.HtmxToolkit/HtmxResponseHeaders.cs b/src/Ramstack.HtmxToolkit/HtmxResponseHeaders.cs index 6e355d7..938a9db 100644 --- a/src/Ramstack.HtmxToolkit/HtmxResponseHeaders.cs +++ b/src/Ramstack.HtmxToolkit/HtmxResponseHeaders.cs @@ -129,33 +129,33 @@ public IReadOnlyDictionary Trigger } /// - /// Gets or sets the HX-Trigger-After-Settle header, which specifies a dictionary of client-side events - /// to trigger after the htmx request has settled. + /// Gets or sets the HX-Trigger-After-Swap header, which specifies a dictionary of client-side events + /// to trigger after the response content has been swapped into the DOM. /// /// /// Event values are accumulated for the current response and serialized into the header immediately /// before the response starts. /// [MaybeNull] - public IReadOnlyDictionary TriggerAfterSettle + public IReadOnlyDictionary TriggerAfterSwap { - get => PendingEvents.TryGet(_response)?.GetEvents(HtmxTriggerTiming.AfterSettle); - set => PendingEvents.GetOrCreate(_response).SetEvents(HtmxTriggerTiming.AfterSettle, value); + get => PendingEvents.TryGet(_response)?.GetEvents(HtmxTriggerTiming.AfterSwap); + set => PendingEvents.GetOrCreate(_response).SetEvents(HtmxTriggerTiming.AfterSwap, value); } /// - /// Gets or sets the HX-Trigger-After-Swap header, which specifies a dictionary of client-side events - /// to trigger after the response content has been swapped into the DOM. + /// Gets or sets the HX-Trigger-After-Settle header, which specifies a dictionary of client-side events + /// to trigger after the htmx request has settled. /// /// /// Event values are accumulated for the current response and serialized into the header immediately /// before the response starts. /// [MaybeNull] - public IReadOnlyDictionary TriggerAfterSwap + public IReadOnlyDictionary TriggerAfterSettle { - get => PendingEvents.TryGet(_response)?.GetEvents(HtmxTriggerTiming.AfterSwap); - set => PendingEvents.GetOrCreate(_response).SetEvents(HtmxTriggerTiming.AfterSwap, value); + get => PendingEvents.TryGet(_response)?.GetEvents(HtmxTriggerTiming.AfterSettle); + set => PendingEvents.GetOrCreate(_response).SetEvents(HtmxTriggerTiming.AfterSettle, value); } private static string? GetHeader(IHeaderDictionary headers, string key) diff --git a/src/Ramstack.HtmxToolkit/HtmxTriggerTiming.cs b/src/Ramstack.HtmxToolkit/HtmxTriggerTiming.cs index 53a7cba..7bba207 100644 --- a/src/Ramstack.HtmxToolkit/HtmxTriggerTiming.cs +++ b/src/Ramstack.HtmxToolkit/HtmxTriggerTiming.cs @@ -12,14 +12,14 @@ public enum HtmxTriggerTiming Receive, /// - /// Maps to the HX-Trigger-After-Settle header that is used to trigger an event - /// on the client side after the htmx request has settled. + /// Maps to the HX-Trigger-After-Swap header that is used to trigger an event + /// on the client side after the htmx request has been swapped. /// - AfterSettle, + AfterSwap, /// - /// Maps to the HX-Trigger-After-Swap header that is used to trigger an event - /// on the client side after the htmx request has been swapped. + /// Maps to the HX-Trigger-After-Settle header that is used to trigger an event + /// on the client side after the htmx request has settled. /// - AfterSwap + AfterSettle } diff --git a/src/Ramstack.HtmxToolkit/PendingEvents.cs b/src/Ramstack.HtmxToolkit/PendingEvents.cs index 6b08225..ec56acb 100644 --- a/src/Ramstack.HtmxToolkit/PendingEvents.cs +++ b/src/Ramstack.HtmxToolkit/PendingEvents.cs @@ -13,8 +13,8 @@ namespace Ramstack.HtmxToolkit; internal sealed class PendingEvents(HttpResponse response) { private Dictionary? _receive; - private Dictionary? _afterSettle; private Dictionary? _afterSwap; + private Dictionary? _afterSettle; /// /// Adds the specified events to the pending set for the given . @@ -27,8 +27,8 @@ public void AddEvents(HtmxTriggerTiming timing, IReadOnlyDictionary _receive ??= new Dictionary(), - HtmxTriggerTiming.AfterSettle => _afterSettle ??= new Dictionary(), - _ => _afterSwap ??= new Dictionary() + HtmxTriggerTiming.AfterSwap => _afterSwap ??= new Dictionary(), + _ => _afterSettle ??= new Dictionary(), }; if (events is Dictionary dictionary) @@ -55,8 +55,8 @@ public void AddEvents(HtmxTriggerTiming timing, IReadOnlyDictionary _receive, - HtmxTriggerTiming.AfterSettle => _afterSettle, - _ => _afterSwap + HtmxTriggerTiming.AfterSwap => _afterSwap, + _ => _afterSettle, }; } @@ -73,11 +73,11 @@ public void SetEvents(HtmxTriggerTiming timing, IReadOnlyDictionary diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs index a7567fc..6315fed 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs +++ b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs @@ -87,18 +87,18 @@ public sealed class HtmxConfigTagHelper(IAntiforgery antiforgery) : TagHelper [HtmlAttributeName("added-class")] public string? AddedClass { get; set; } - /// - /// Gets or sets the settling class. Defaults to htmx-settling. - /// - [HtmlAttributeName("settling-class")] - public string? SettlingClass { get; set; } - /// /// Gets or sets the swapping class. Defaults to htmx-swapping. /// [HtmlAttributeName("swapping-class")] public string? SwappingClass { get; set; } + /// + /// Gets or sets the settling class. Defaults to htmx-settling. + /// + [HtmlAttributeName("settling-class")] + public string? SettlingClass { get; set; } + /// /// Gets or sets a value indicating whether eval is allowed. /// Defaults to .