1
0

layout.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /** @var string $content */
  3. /** @var string $title */
  4. /** @var \App\Domain\User|null $currentUser */
  5. /** @var string $csrfToken */
  6. use function App\Http\e;
  7. $currentUser = $currentUser ?? null;
  8. $csrfToken = $csrfToken ?? '';
  9. ?>
  10. <!doctype html>
  11. <html lang="en">
  12. <head>
  13. <meta charset="utf-8">
  14. <meta name="viewport" content="width=device-width,initial-scale=1">
  15. <title><?= e($title ?? 'Sprint Planner') ?></title>
  16. <script src="https://cdn.tailwindcss.com"></script>
  17. <script src="https://code.jquery.com/jquery-3.7.1.min.js"
  18. integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
  19. crossorigin="anonymous"></script>
  20. <link rel="stylesheet"
  21. href="https://code.jquery.com/ui/1.13.3/themes/base/jquery-ui.css">
  22. <script src="https://code.jquery.com/ui/1.13.3/jquery-ui.min.js"
  23. integrity="sha256-sw0iNNXmOJbQhYFuC9OF2kOlD5KQKe1y5lfBn4C4Sjg="
  24. crossorigin="anonymous"></script>
  25. </head>
  26. <body class="bg-slate-50 text-slate-900 antialiased">
  27. <header class="border-b bg-white">
  28. <div class="max-w-7xl mx-auto px-4 py-3 flex items-center gap-4">
  29. <a href="/" class="font-semibold tracking-tight">Sprint Planner</a>
  30. <nav class="ml-auto flex items-center gap-4 text-sm">
  31. <?php if ($currentUser !== null): ?>
  32. <span class="text-slate-600">
  33. <?= e($currentUser->displayName) ?>
  34. <?php if ($currentUser->isAdmin): ?>
  35. <span class="ml-1 inline-block px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider bg-amber-100 text-amber-800 rounded">admin</span>
  36. <?php endif; ?>
  37. </span>
  38. <form method="post" action="/auth/logout" class="inline">
  39. <input type="hidden" name="_csrf" value="<?= e($csrfToken) ?>">
  40. <button type="submit"
  41. class="text-slate-600 hover:text-slate-900 hover:underline">
  42. Sign out
  43. </button>
  44. </form>
  45. <?php else: ?>
  46. <a href="/auth/login"
  47. class="text-blue-700 hover:underline">Sign in</a>
  48. <?php endif; ?>
  49. </nav>
  50. </div>
  51. </header>
  52. <main class="max-w-7xl mx-auto px-4 py-6">
  53. <?= $content ?>
  54. </main>
  55. </body>
  56. </html>