Skip to content

Commit 571b6f0

Browse files
committed
add hx-reselect header support
1 parent e81aec8 commit 571b6f0

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

docs/configuration.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ We will get our copy ready for modifications.
1212

1313
Available options:
1414

15-
- [$toolbarDecorator](#$toolbarDecorator)
16-
- [$errorModalDecorator](#$errorModalDecorator)
17-
- [$skipViewDecoratorsString](#$skipViewDecoratorsString)
15+
- [$toolbarDecorator](#toolbarDecorator)
16+
- [$errorModalDecorator](#errorModalDecorator)
17+
- [$skipViewDecoratorsString](#skipViewDecoratorsString)
1818

1919
### $toolbarDecorator
2020

docs/response.md

+9
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Available methods:
66
- [setReplaceUrl()](#setreplaceurl)
77
- [setReswap()](#setreswap)
88
- [setRetarget()](#setretarget)
9+
- [setReselect()](#setreselect)
910
- [triggerClientEvent()](#triggerclientevent)
1011

1112
### setPushUrl()
@@ -40,6 +41,14 @@ Sets the value in `HX-Retarget` header. A CSS selector that updates the target o
4041
$this->response->setRetarget('#another-div');
4142
```
4243

44+
### setReselect()
45+
46+
Sets the value in `HX-Reselect` header. A CSS selector that allows you to choose which part of the response is used to be swapped in. Overrides an existing [hx-select](https://htmx.org/attributes/hx-select/) on the triggering element.
47+
48+
```php
49+
$this->response->setReselect('#another-div');
50+
```
51+
4352
### triggerClientEvent()
4453

4554
Allows you to set the headers: `HX-Trigger`, `HX-Trigger-After-Settle` or `HX-Trigger-After-Swap`.

src/HTTP/Response.php

+13
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@ public function setRetarget(string $selector): Response
6060
return $this;
6161
}
6262

63+
/**
64+
* A CSS selector that allows you to choose which part
65+
* of the response is used to be swapped in.
66+
*
67+
* @return Response;
68+
*/
69+
public function setReselect(string $selector): Response
70+
{
71+
$this->setHeader('HX-Reselect', $selector);
72+
73+
return $this;
74+
}
75+
6376
/**
6477
* Allows you to trigger client side events.
6578
*

tests/HTTP/ResponseTest.php

+7
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ public function testSetRetarget(): void
7777
$this->assertSame('#element', $this->response->getHeaderLine('HX-Retarget'));
7878
}
7979

80+
public function testSetReselect(): void
81+
{
82+
$this->response->setReselect('#element');
83+
84+
$this->assertSame('#element', $this->response->getHeaderLine('HX-Reselect'));
85+
}
86+
8087
public function testTriggerClientEvent(): void
8188
{
8289
$this->response->triggerClientEvent('showMessage');

0 commit comments

Comments
 (0)