diff --git a/app/Services/Hook.php b/app/Services/Hook.php
index ba6e46d8..44c7bbe4 100644
--- a/app/Services/Hook.php
+++ b/app/Services/Hook.php
@@ -6,6 +6,7 @@ namespace App\Services;
use App\Events;
use App\Notifications;
+use Blessing\Filter;
use Closure;
use Event;
use Illuminate\Support\Arr;
@@ -62,46 +63,47 @@ class Hook
public static function addStyleFileToPage($urls, $pages = ['*']): void
{
- Event::listen(Events\RenderingHeader::class, function ($event) use ($urls, $pages) {
- foreach ($pages as $pattern) {
- if (!request()->is($pattern)) {
- continue;
- }
-
- foreach ((array) $urls as $url) {
- $event->addContent("");
- }
-
- return;
+ $urls = collect($urls);
+ $pages = collect($pages);
+ resolve(Filter::class)->add('head_links', function ($links) use ($urls, $pages) {
+ $matched = $pages->some(function ($page) {
+ return request()->is($page);
+ });
+ if ($matched) {
+ $urls->each(function ($url) use (&$links) {
+ $links[] = ['rel' => 'stylesheet', 'href' => $url];
+ });
}
+
+ return $links;
});
}
public static function addScriptFileToPage($urls, $pages = ['*']): void
{
- Event::listen(Events\RenderingFooter::class, function ($event) use ($urls, $pages) {
- foreach ($pages as $pattern) {
- if (!request()->is($pattern)) {
- continue;
- }
-
- foreach ((array) $urls as $url) {
- $event->addContent("");
- }
-
- return;
+ $urls = collect($urls);
+ $pages = collect($pages);
+ resolve(Filter::class)->add('scripts', function ($scripts) use ($urls, $pages) {
+ $matched = $pages->some(function ($page) {
+ return request()->is($page);
+ });
+ if ($matched) {
+ $urls->each(function ($url) use (&$scripts) {
+ $scripts[] = ['src' => $url];
+ });
}
+
+ return $scripts;
});
}
public static function addUserBadge(string $text, $color = 'primary'): void
{
- Event::listen(
- Events\RenderingBadges::class,
- function (Events\RenderingBadges $event) use ($text, $color) {
- $event->badges[] = compact('text', 'color');
- }
- );
+ resolve(Filter::class)->add('user_badges', function ($badges) use ($text, $color) {
+ $badges[] = ['text' => $text, 'color' => $color];
+
+ return $badges;
+ });
}
public static function sendNotification($users, string $title, $content = ''): void