From 87921e19a5edf5fae9053c8b79c6c2c329f4dc75 Mon Sep 17 00:00:00 2001 From: edalzell Date: Wed, 12 Feb 2025 12:43:45 -0800 Subject: [PATCH] tidy and pass tests --- src/Tokens/Handlers/LivePreview.php | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Tokens/Handlers/LivePreview.php b/src/Tokens/Handlers/LivePreview.php index 454e33fc54..62b783e815 100644 --- a/src/Tokens/Handlers/LivePreview.php +++ b/src/Tokens/Handlers/LivePreview.php @@ -4,8 +4,10 @@ use Closure; use Facades\Statamic\CP\LivePreview as Facade; +use Illuminate\Support\Collection; use Statamic\Contracts\Tokens\Token; -use Statamic\Facades\Site; +use Statamic\Facades\Site as Sites; +use Statamic\Sites\Site; class LivePreview { @@ -17,20 +19,26 @@ public function handle(Token $token, $request, Closure $next) $response = $next($request); - if (Site::multiEnabled()) { - $validURLs = Site::all() - ->map(function ($site) { - $parts = parse_url($site->absoluteUrl()); - - return $parts['scheme'].'://'.$parts['host']; - })->values() + if (Sites::multiEnabled()) { + /** @var Collection */ + $siteURLs = Sites::all() + ->map(fn (Site $site) => $this->getSchemeAndHost($site)) + ->values() ->unique() ->join(' '); - $response->headers->set('Content-Security-Policy "frame-ancestors '.$validURLs.'"'); + + $response->headers->set('Content-Security-Policy', "frame-ancestors '$siteURLs'"); } $response->headers->set('X-Statamic-Live-Preview', true); return $response; } + + private function getSchemeAndHost(Site $site): string + { + $parts = parse_url($site->absoluteUrl()); + + return $parts['scheme'].'://'.$parts['host']; + } }