HandleInertiaRequests.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Illuminate\Foundation\Inspiring;
  4. use Illuminate\Http\Request;
  5. use Inertia\Middleware;
  6. class HandleInertiaRequests extends Middleware
  7. {
  8. /**
  9. * The root template that's loaded on the first page visit.
  10. *
  11. * @see https://inertiajs.com/server-side-setup#root-template
  12. *
  13. * @var string
  14. */
  15. protected $rootView = 'app';
  16. /**
  17. * Determines the current asset version.
  18. *
  19. * @see https://inertiajs.com/asset-versioning
  20. */
  21. public function version(Request $request): ?string
  22. {
  23. return parent::version($request);
  24. }
  25. /**
  26. * Define the props that are shared by default.
  27. *
  28. * @see https://inertiajs.com/shared-data
  29. *
  30. * @return array<string, mixed>
  31. */
  32. public function share(Request $request): array
  33. {
  34. [$message, $author] = str(Inspiring::quotes()->random())->explode('-');
  35. return [
  36. ...parent::share($request),
  37. 'name' => config('app.name'),
  38. 'quote' => ['message' => trim($message), 'author' => trim($author)],
  39. 'auth' => [
  40. 'user' => $request->user(),
  41. ],
  42. 'sidebarOpen' => ! $request->hasCookie('sidebar_state') || $request->cookie('sidebar_state') === 'true',
  43. ];
  44. }
  45. }