From ca39e18b07ba09213f6ef9f2c70f96daf281b338 Mon Sep 17 00:00:00 2001 From: Maicol Battistini Date: Mon, 13 Dec 2021 19:44:46 +0100 Subject: [PATCH] =?UTF-8?q?feat(dashboard):=20=E2=9C=A8=20Aggiunta=20dashb?= =?UTF-8?q?oard=20base?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js/Views/Dashboard.jsx | 14 ++++++++++++++ resources/js/Views/LoginPage.jsx | 5 +++-- resources/js/Views/index.js | 2 ++ routes/web.php | 30 +++++++++++++++++++----------- 4 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 resources/js/Views/Dashboard.jsx diff --git a/resources/js/Views/Dashboard.jsx b/resources/js/Views/Dashboard.jsx new file mode 100644 index 000000000..34813b45e --- /dev/null +++ b/resources/js/Views/Dashboard.jsx @@ -0,0 +1,14 @@ +import Page from '../Components/Page.jsx'; + +export default class Dashboard extends Page { + view(vnode) { + return ( +
+

{__('Dashboard')}

+

+ This is the dashboard page. +

+
+ ); + } +} diff --git a/resources/js/Views/LoginPage.jsx b/resources/js/Views/LoginPage.jsx index e605f283a..1ccd0e4ac 100644 --- a/resources/js/Views/LoginPage.jsx +++ b/resources/js/Views/LoginPage.jsx @@ -1,7 +1,7 @@ import '@maicol07/mwc-card'; +import '@maicol07/mwc-layout-grid'; import '@material/mwc-checkbox'; import '@material/mwc-formfield'; -import '@maicol07/mwc-layout-grid'; import '../WebComponents/TextField'; import type {Cash} from 'cash-dom'; @@ -78,8 +78,9 @@ export default class LoginPage extends Page { } catch (error) { showSnackbar(Object.values(error.data.errors).join(' '), false); this.loading.hide(); + return; } - // Inertia.visit(window.route('dashboard')); + window.location.href = window.route('dashboard'); } } diff --git a/resources/js/Views/index.js b/resources/js/Views/index.js index ed9707f3c..c7f03c121 100644 --- a/resources/js/Views/index.js +++ b/resources/js/Views/index.js @@ -1,4 +1,6 @@ // noinspection JSUnusedGlobalSymbols +export { default as AdminSetupPage } from './AdminSetupPage.jsx'; +export { default as Dashboard } from './Dashboard.jsx'; export { default as LoginPage } from './LoginPage.jsx'; export { default as SetupPage } from './SetupPage.jsx'; diff --git a/routes/web.php b/routes/web.php index 9587c1713..15d9cea3a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,20 +22,30 @@ Route::get('/', static function () { return redirect()->route('setup'); } + if (auth()->hasUser()) { + return redirect()->route('dashboard'); + } + return redirect()->route('auth.login'); }); -Route::name('auth.')->group(static function () { - Route::inertia('login', 'LoginPage') - ->name('login'); - /*Route::inertia('password-request', '') - ->name('password-request');*/ +Route::inertia('dashboard', 'Dashboard') + ->middleware('auth') + ->name('dashboard'); - Route::post('login', [AuthController::class, 'authenticate']) +Route::name('auth.') + ->middleware('guest') + ->group(static function () { + Route::inertia('login', 'LoginPage') + ->name('login'); + /*Route::inertia('password-request', '') + ->name('password-request');*/ + + Route::post('login', [AuthController::class, 'authenticate']) ->name('authenticate'); - /*Route::post('logout', 'Auth\LoginController@logout') - ->name('auth.logout');*/ -}); + /*Route::post('logout', 'Auth\LoginController@logout') + ->name('auth.logout');*/ + }); Route::name('setup.')->group(static function () { Route::inertia('setup', 'SetupPage', [ @@ -60,8 +70,6 @@ Route::name('setup.')->group(static function () { ->name('admin.save'); }); - - Route::get('lang/{language}', static function ($language) { app()->setLocale($language);