app.blade.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!doctype html>
  2. <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <!-- CSRF Token -->
  7. <meta name="csrf-token" content="{{ csrf_token() }}">
  8. <title>{{ config('app.name', 'Laravel') }}</title>
  9. <!-- Fonts -->
  10. <link rel="dns-prefetch" href="//fonts.bunny.net">
  11. <link href="https://fonts.bunny.net/css?family=Nunito" rel="stylesheet">
  12. <!-- Scripts -->
  13. @vite(['resources/sass/app.scss', 'resources/js/app.js'])
  14. </head>
  15. <body>
  16. <div class="alerts">
  17. @if($message = session('success'))
  18. <div class="main-alert alert alert-success" role="alert">
  19. {{ $message }}
  20. </div>
  21. @endif
  22. @if($message = session('danger'))
  23. <div class="main-alert alert alert-danger" role="alert">
  24. {{ $message }}
  25. </div>
  26. @endif
  27. </div>
  28. <div id="app">
  29. <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
  30. <div class="container-fluid">
  31. <a class="navbar-brand" href="{{ url('/') }}">
  32. {{ config('app.name', 'Laravel') }}
  33. </a>
  34. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Открыть меню">
  35. <span class="navbar-toggler-icon"></span>
  36. </button>
  37. <div class="collapse navbar-collapse" id="navbarSupportedContent">
  38. <!-- Left Side Of Navbar -->
  39. <ul class="navbar-nav me-auto">
  40. @include('layouts.menu')
  41. </ul>
  42. <!-- Right Side Of Navbar -->
  43. <ul class="navbar-nav ms-auto">
  44. <!-- Authentication Links -->
  45. @guest
  46. @if (Route::has('login'))
  47. <li class="nav-item">
  48. <a class="nav-link" href="{{ route('login') }}">Вход</a>
  49. </li>
  50. @endif
  51. @if (Route::has('register'))
  52. <li class="nav-item">
  53. <a class="nav-link" href="{{ route('register') }}">Регистрация</a>
  54. </li>
  55. @endif
  56. @else
  57. <li class="nav-item dropdown">
  58. <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  59. {{ Auth::user()->name }}
  60. </a>
  61. <div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
  62. <a class="dropdown-item" href="{{ route('user.profile') }}">Профиль</a>
  63. <a class="dropdown-item" href="{{ route('logout') }}"
  64. onclick="event.preventDefault();
  65. document.getElementById('logout-form').submit();">
  66. Выход
  67. </a>
  68. <form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
  69. @csrf
  70. </form>
  71. </div>
  72. </li>
  73. @endguest
  74. </ul>
  75. </div>
  76. </div>
  77. </nav>
  78. <main class="py-4">
  79. <div class="container-fluid">
  80. @yield('content')
  81. </div>
  82. </main>
  83. </div>
  84. @stack('scripts')
  85. <script type="module">
  86. let user = {{ auth()->user()?->id ?? 0}};
  87. let socketAddress = '{{ config('app.ws_addr') }}';
  88. localStorage.setItem('user', user);
  89. localStorage.setItem('socketAddress', socketAddress);
  90. </script>
  91. </body>
  92. </html>