Skip to content
Open
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
3 changes: 2 additions & 1 deletion src/loading-states/loading-states.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@

htmx.defineExtension('loading-states', {
onEvent: function(name, evt) {
if (name === 'htmx:beforeRequest') {
if (name === 'htmx:beforeRequest'
&& evt.detail.requestConfig.headers["HX-Preloaded"] !== "true") {
const container = loadingStateContainer(evt.target)

const loadingStateTypes = [
Expand Down
20 changes: 20 additions & 0 deletions src/loading-states/test/ext/loading-states.js
Original file line number Diff line number Diff line change
Expand Up @@ -164,4 +164,24 @@ describe('loading states extension', function() {
var el = byId('d2')
el.disabled.should.be.false
})

it('loading state should not trigger for preloaded request', function() {
this.server.respondWith('GET', '/test', 'Loaded!')
var container = make('<div hx-ext="loading-states,preload"><button hx-get="/test" preload="mouseover">Hover Me!</button><div data-loading style="display: none;">Loading...</div></div>')
var btn = container.querySelector('button')
var loader = container.querySelector('[data-loading]')

loader.style.display.should.equal('none')

htmx.trigger(btn, 'mouseover')
this.clock.tick(100)

loader.style.display.should.equal('none')

this.server.respond()

loader.style.display.should.equal('none')
})
})


1 change: 1 addition & 0 deletions src/loading-states/test/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ <h2>Mocha Test Suite</h2>

<script src="./util.js"></script>

<script src="../../preload/preload.js"></script>
<script src="../loading-states.js"></script>
<script src="ext/loading-states.js"></script>

Expand Down