feat: install and configure Inertia.js with React

- Install inertia-laravel, @inertiajs/react, react, @vitejs/plugin-react
- Add HandleInertiaRequests middleware registered in web group
- Create Inertia root template (resources/views/app.blade.php)
- Add React entry point and page components (resources/js/)
- Add Inertia demo route (/inertia-test)
- HomeController reverted to Blade (index page stays original)
- Remove inertia-test2 test route
This commit is contained in:
root
2026-05-25 15:15:14 +02:00
parent 4ce68720bb
commit 943d5bfc38
59 changed files with 1382 additions and 293 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color));&.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}&.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled &{display:none!important}::slotted(svg),svg{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto;::slotted(.swiper-navigation-icon),.swiper-navigation-icon{transform:rotate(180deg)}}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal{.swiper-button-prev,.swiper-button-next,~.swiper-button-prev,~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-button-prev,~.swiper-button-prev,&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-next,~.swiper-button-next,&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-button-prev,~.swiper-button-prev,&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next{::slotted(.swiper-navigation-icon),.swiper-navigation-icon{transform:rotate(180deg)}}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{::slotted(.swiper-navigation-icon),.swiper-navigation-icon{transform:rotate(0)}}}.swiper-vertical{.swiper-button-prev,.swiper-button-next,~.swiper-button-prev,~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-button-prev,~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto;::slotted(.swiper-navigation-icon),.swiper-navigation-icon{transform:rotate(-90deg)}}.swiper-button-next,~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto;::slotted(.swiper-navigation-icon),.swiper-navigation-icon{transform:rotate(90deg)}}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
View File

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 260 B

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

View File

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 678 B

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 381 B

+1
View File
@@ -0,0 +1 @@
var c=Object.create,_=Object.defineProperty,v=Object.getOwnPropertyDescriptor,O=Object.getOwnPropertyNames,b=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,g=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),f=(e,r)=>{let t={};for(var n in e)_(t,n,{get:e[n],enumerable:!0});return r||_(t,Symbol.toStringTag,{value:"Module"}),t},P=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(var o=O(r),p=0,l=o.length,a;p<l;p++)a=o[p],!s.call(e,a)&&a!==t&&_(e,a,{get:(u=>r[u]).bind(null,a),enumerable:!(n=v(r,a))||n.enumerable});return e},i=(e,r,t)=>(t=e!=null?c(b(e)):{},P(r||!e||!e.__esModule?_(t,"default",{value:e,enumerable:!0}):t,e));export{f as n,i as r,g as t};
View File

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 279 B

View File

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 473 B

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 471 B

After

Width:  |  Height:  |  Size: 471 B

View File

Before

Width:  |  Height:  |  Size: 690 B

After

Width:  |  Height:  |  Size: 690 B

View File

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 361 B

View File

Before

Width:  |  Height:  |  Size: 472 B

After

Width:  |  Height:  |  Size: 472 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 626 B

After

Width:  |  Height:  |  Size: 626 B

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 491 B

View File

Before

Width:  |  Height:  |  Size: 477 B

After

Width:  |  Height:  |  Size: 477 B

View File

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 258 KiB

View File

Before

Width:  |  Height:  |  Size: 166 B

After

Width:  |  Height:  |  Size: 166 B

View File

Before

Width:  |  Height:  |  Size: 485 B

After

Width:  |  Height:  |  Size: 485 B

File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
View File

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 364 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 350 B

After

Width:  |  Height:  |  Size: 350 B

Executable → Regular
+75 -24
View File
@@ -1,7 +1,25 @@
{
"_axios-D3CjrHSW.js": {
"file": "assets/axios-D3CjrHSW.js",
"name": "axios"
"_axios-BgauIbGG.js": {
"file": "assets/axios-BgauIbGG.js",
"name": "axios",
"imports": [
"_chunk-BqhQeaEc.js"
]
},
"_chunk-BqhQeaEc.js": {
"file": "assets/chunk-BqhQeaEc.js",
"name": "chunk"
},
"_swiper-B7Yxk788.js": {
"file": "assets/swiper-B7Yxk788.js",
"name": "swiper",
"css": [
"assets/swiper-CrMA9oas.css"
]
},
"_swiper-CrMA9oas.css": {
"file": "assets/swiper-CrMA9oas.css",
"src": "_swiper-CrMA9oas.css"
},
"public/assets/images/background-dark.jpg": {
"file": "assets/background-dark-BfkMu3-0.jpg",
@@ -11,6 +29,18 @@
"file": "assets/background-light-CP7oKwVT.jpg",
"src": "public/assets/images/background-light.jpg"
},
"public/assets/images/dusk/background_image.png": {
"file": "assets/background_image-BH7pVpv1.png",
"src": "public/assets/images/dusk/background_image.png"
},
"public/assets/images/dusk/leaderboard_circle_image.png": {
"file": "assets/leaderboard_circle_image-BYkDVX69.png",
"src": "public/assets/images/dusk/leaderboard_circle_image.png"
},
"public/assets/images/dusk/store_icon.png": {
"file": "assets/store_icon-B52tsSKO.png",
"src": "public/assets/images/dusk/store_icon.png"
},
"public/assets/images/icons/article.gif": {
"file": "assets/article-CYhGsSKA.gif",
"src": "public/assets/images/icons/article.gif"
@@ -104,7 +134,7 @@
"src": "public/assets/images/profile/profile-bg.png"
},
"resources/css/global.css": {
"file": "assets/global-lUxz4Nll.css",
"file": "assets/global-DVSCrBhf.css",
"name": "global",
"names": [
"global.css"
@@ -140,30 +170,57 @@
]
},
"resources/js/global.js": {
"file": "assets/global-DM5efAYH.js",
"file": "assets/global-Bkbv5Qui.js",
"name": "global",
"src": "resources/js/global.js",
"isEntry": true,
"imports": [
"_axios-D3CjrHSW.js"
"_chunk-BqhQeaEc.js",
"_axios-BgauIbGG.js"
]
},
"resources/js/ssr.jsx": {
"file": "assets/ssr-dFzH1dUH.js",
"name": "ssr",
"src": "resources/js/ssr.jsx",
"isEntry": true,
"imports": [
"_chunk-BqhQeaEc.js"
]
},
"resources/themes/atom/css/app.css": {
"file": "assets/app-BGFeVnff.css",
"file": "assets/app-DrKvMbgn.css",
"src": "resources/themes/atom/css/app.css"
},
"resources/themes/atom/js/app.js": {
"file": "assets/app-BBe1NbvP.js",
"name": "app",
"src": "resources/themes/atom/js/app.js",
"isEntry": true,
"imports": [
"_chunk-BqhQeaEc.js",
"_swiper-B7Yxk788.js",
"_axios-BgauIbGG.js"
]
},
"resources/themes/dusk/css/app.css": {
"file": "assets/app-tY2AX6sE.css",
"name": "app",
"names": [
"app.css"
],
"src": "resources/themes/atom/css/app.css",
"src": "resources/themes/dusk/css/app.css",
"isEntry": true,
"css": [
"assets/app-DrKvMbgn.css"
],
"assets": [
"assets/camera-fu-bmGhB.png",
"assets/discord-rbcnEh-j.png",
"assets/background_image-BH7pVpv1.png",
"assets/feeds-BtHcJdHX.png",
"assets/chat-r5H1PnTg.png",
"assets/article-CYhGsSKA.gif",
"assets/lighthouse-BON6qnQ0.png",
"assets/currency-LKXzczCA.png",
"assets/store_icon-B52tsSKO.png",
"assets/catalog-D-956oDx.png",
"assets/inventory-BlHYLNGT.png",
"assets/due-chat-CeO4yxLu.png",
@@ -171,29 +228,23 @@
"assets/credits-Dpg5Nmby.png",
"assets/duckets-CaGJI1Oy.png",
"assets/diamonds-BtfqKoQu.png",
"assets/profile-bg-BWx4iuHa.png",
"assets/trophy-gold-bbKmpkii.png",
"assets/trophy-silver-bGfHJkQ_.png",
"assets/trophy-bronze-CgV5j1MU.png",
"assets/background-light-CP7oKwVT.jpg",
"assets/background-dark-BfkMu3-0.jpg",
"assets/shop-D3NfN6cF.png",
"assets/leaderboards-CGasq3cL.png",
"assets/rules--xzBmecz.gif",
"assets/home-DIMFC97Y.png",
"assets/community-Do_t1zw9.png"
"assets/leaderboard_circle_image-BYkDVX69.png"
]
},
"resources/themes/atom/js/app.js": {
"file": "assets/app-KZYZIZAW.js",
"resources/themes/dusk/js/app.js": {
"file": "assets/app-Dnwim5HE.js",
"name": "app",
"src": "resources/themes/atom/js/app.js",
"src": "resources/themes/dusk/js/app.js",
"isEntry": true,
"imports": [
"_axios-D3CjrHSW.js"
"_swiper-B7Yxk788.js",
"_axios-BgauIbGG.js"
],
"css": [
"assets/app-CeYfhhVD.css"
"assets/app-DU8Y3NnC.css"
]
}
}