You've already forked php-flasher
mirror of
https://github.com/php-flasher/php-flasher.git
synced 2026-04-05 12:32:55 +01:00
feat(livewire): Remove .fl-no-cache elements before caching snapshot
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
namespace Flasher\Prime\Response\Presenter;
|
namespace Flasher\Prime\Response\Presenter;
|
||||||
|
|
||||||
use Flasher\Prime\Response\Response;
|
use Flasher\Prime\Response\Response;
|
||||||
|
use Livewire\LivewireManager;
|
||||||
|
|
||||||
final class HtmlPresenter implements PresenterInterface
|
final class HtmlPresenter implements PresenterInterface
|
||||||
{
|
{
|
||||||
@@ -29,6 +30,7 @@ final class HtmlPresenter implements PresenterInterface
|
|||||||
|
|
||||||
$rootScript = $response->getRootScript();
|
$rootScript = $response->getRootScript();
|
||||||
$placeHolder = self::FLASHER_FLASH_BAG_PLACE_HOLDER;
|
$placeHolder = self::FLASHER_FLASH_BAG_PLACE_HOLDER;
|
||||||
|
$livewireListener = $this->getLivewireListenerScript();
|
||||||
|
|
||||||
return <<<JAVASCRIPT
|
return <<<JAVASCRIPT
|
||||||
<script type="text/javascript" class="flasher-js">
|
<script type="text/javascript" class="flasher-js">
|
||||||
@@ -84,6 +86,8 @@ final class HtmlPresenter implements PresenterInterface
|
|||||||
document.addEventListener('flasher:render', function (event) {
|
document.addEventListener('flasher:render', function (event) {
|
||||||
render(event.detail);
|
render(event.detail);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
{$livewireListener}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.hasOwnProperty('flasher') || !rootScript || document.querySelector('script[src="' + rootScript + '"]')) {
|
if (window.hasOwnProperty('flasher') || !rootScript || document.querySelector('script[src="' + rootScript + '"]')) {
|
||||||
@@ -100,6 +104,27 @@ final class HtmlPresenter implements PresenterInterface
|
|||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
JAVASCRIPT;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate the script for Livewire event handling.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function getLivewireListenerScript()
|
||||||
|
{
|
||||||
|
if (!class_exists(LivewireManager::class)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return <<<JAVASCRIPT
|
||||||
|
document.addEventListener('livewire:navigating', function () {
|
||||||
|
var elements = document.querySelectorAll('.fl-no-cache');
|
||||||
|
for (var i = 0; i < elements.length; i++) {
|
||||||
|
elements[i].remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
JAVASCRIPT;
|
JAVASCRIPT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user