Add Inertia.js support and middleware configuration

- Updated composer.json to include inertiajs/inertia-laravel dependency.
- Modified app.php to register HandleInertiaRequests middleware.
- Updated package.json with new dependencies for React and Vite.
- Enhanced vite.config.js to include React plugin.
- Created HandleInertiaRequests middleware for Inertia.js integration.
This commit is contained in:
2026-03-17 19:06:01 +07:00
parent 02c8c9ee88
commit 1dd800bcee
5 changed files with 63 additions and 3 deletions

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Inertia\Middleware;
class HandleInertiaRequests extends Middleware
{
/**
* The root template that's loaded on the first page visit.
*
* @see https://inertiajs.com/server-side-setup#root-template
*
* @var string
*/
protected $rootView = 'app';
/**
* Determines the current asset version.
*
* @see https://inertiajs.com/asset-versioning
*/
public function version(Request $request): ?string
{
return parent::version($request);
}
/**
* Define the props that are shared by default.
*
* @see https://inertiajs.com/shared-data
*
* @return array<string, mixed>
*/
public function share(Request $request): array
{
return [
...parent::share($request),
//
'flash' => [
'success' => fn () => $request->session()->get('success'),
'error' => fn () => $request->session()->get('error'),
],
];
}
}

View File

@@ -12,6 +12,9 @@ return Application::configure(basePath: dirname(__DIR__))
)
->withMiddleware(function (Middleware $middleware): void {
//
$middleware->web(append: [
\App\Http\Middleware\HandleInertiaRequests::class,
]);
})
->withExceptions(function (Exceptions $exceptions): void {
//

View File

@@ -7,6 +7,7 @@
"license": "MIT",
"require": {
"php": "^8.2",
"inertiajs/inertia-laravel": "^2.0",
"laravel/framework": "^12.0",
"laravel/tinker": "^2.10.1"
},

View File

@@ -7,11 +7,18 @@
"dev": "vite"
},
"devDependencies": {
"@tailwindcss/vite": "^4.0.0",
"@tailwindcss/vite": "^4.2.1",
"autoprefixer": "^10.4.27",
"axios": "^1.11.0",
"concurrently": "^9.0.1",
"laravel-vite-plugin": "^2.0.0",
"tailwindcss": "^4.0.0",
"vite": "^7.0.7"
"tailwindcss": "^4.2.1",
"vite": "^7.3.1"
},
"dependencies": {
"@inertiajs/react": "^2.3.18",
"@vitejs/plugin-react": "^4.7.0",
"react": "^19.2.4",
"react-dom": "^19.2.4"
}
}

View File

@@ -1,5 +1,6 @@
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import react from '@vitejs/plugin-react';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
@@ -8,6 +9,7 @@ export default defineConfig({
input: ['resources/css/app.css', 'resources/js/app.js'],
refresh: true,
}),
react(),
tailwindcss(),
],
server: {