Skip to content

Commit f6ad331

Browse files
authored
HTMX support (#1629)
* Prevent duplicate debugbar on HTMX request with a target * Adding tests for HTMX requests
1 parent 3b2de38 commit f6ad331

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/LaravelDebugbar.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -852,8 +852,10 @@ protected function isDebugbarRequest()
852852
*/
853853
protected function isJsonRequest(Request $request)
854854
{
855-
// If XmlHttpRequest or Live, return true
856-
if ($request->isXmlHttpRequest() || $request->headers->has('X-Livewire')) {
855+
// If XmlHttpRequest, Live or HTMX, return true
856+
if ($request->isXmlHttpRequest() ||
857+
$request->headers->has('X-Livewire') ||
858+
($request->headers->has('Hx-Request') && $request->headers->has('Hx-Target'))) {
857859
return true;
858860
}
859861

tests/DebugbarTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,25 @@ public function testItDoesntInjectOnJson()
5252
$this->assertFalse(Str::contains($crawler->content(), 'debugbar'));
5353
$this->assertEquals(200, $crawler->getStatusCode());
5454
}
55+
56+
public function testItDoesntInjectsOnHxRequestWithHxTarget()
57+
{
58+
$crawler = $this->get('web/html', [
59+
'Hx-Request' => 'true',
60+
'Hx-Target' => 'main',
61+
]);
62+
63+
$this->assertFalse(Str::contains($crawler->content(), 'debugbar'));
64+
$this->assertEquals(200, $crawler->getStatusCode());
65+
}
66+
67+
public function testItInjectsOnHxRequestWithoutHxTarget()
68+
{
69+
$crawler = $this->get('web/html', [
70+
'Hx-Request' => 'true',
71+
]);
72+
73+
$this->assertTrue(Str::contains($crawler->content(), 'debugbar'));
74+
$this->assertEquals(200, $crawler->getStatusCode());
75+
}
5576
}

0 commit comments

Comments
 (0)