@minecraft-docker/mcctl-console 2.14.0 → 2.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/platform/services/mcctl-console/.next/BUILD_ID +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/app-build-manifest.json +60 -59
- package/.next/standalone/platform/services/mcctl-console/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/build-manifest.json +4 -4
- package/.next/standalone/platform/services/mcctl-console/.next/prerender-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/routes-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/admin/users/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js +5 -5
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/audit-logs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/backups/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js +4 -4
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/players/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js +5 -5
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/routing/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/console/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page.js.nft.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/(main)/worlds/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/schedules/[id]/route.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/schedules/[id]/route.js.nft.json +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/schedules/[id]/toggle/route.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/schedules/[id]/toggle/route.js.nft.json +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/schedules/route.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/api/backup/schedules/route.js.nft.json +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/audit-logs.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/backups.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/dashboard.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/index.rsc +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/login.rsc +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/players.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/routing.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/servers.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/settings.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/signup.rsc +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/app/worlds.rsc +3 -3
- package/.next/standalone/platform/services/mcctl-console/.next/server/app-paths-manifest.json +23 -20
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1309.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/4151.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/5843.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/7879.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/platform/services/mcctl-console/.next/server/pages/404.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/pages/500.html +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1002-c53deedf30706db3.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/140-c12e00f0de7cd7be.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2476-4fff0814e9d341f8.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2666-0ffcaa56248fa87e.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/3938-b55cb95203c34832.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4219-4ac199a28917d787.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/423-766c202217f701c0.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/admin/users/page-cc0c71dc0e6631fb.js +1 -0
- package/.next/{static/chunks/app/(main)/audit-logs/page-807f95cdc901e568.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/page-58b3d20be5540dd0.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-bd084d0163678e15.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/{layout-46198c04ba71ec0e.js → layout-9822cba515754d43.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/players/{page-17fac813cd35d4ca.js → page-d3e8734d942f5fea.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/routing/{page-f430d126cc21547c.js → page-8e36e2c23d9a62c2.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/[name]/{page-4fdf404cb21708a7.js → page-8eda8c4709976b6a.js} +1 -1
- package/.next/{static/chunks/app/(main)/servers/page-5286112dc6e93885.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-35a24570b3f06f3b.js} +1 -1
- package/.next/{static/chunks/app/(main)/settings/page-dd38d40e3e0257a8.js → standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/page-9e447db7e4f551c2.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/worlds/{page-874ad606cffc439d.js → page-66e7e55928f43f54.js} +1 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-913fdb0c7c3e7114.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-4fe85a21b5914e70.js +1 -0
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/{main-b146ccfc9c3834c3.js → main-63101811e3f573cc.js} +1 -1
- package/.next/static/chunks/1002-c53deedf30706db3.js +1 -0
- package/.next/static/chunks/140-c12e00f0de7cd7be.js +1 -0
- package/.next/static/chunks/2476-4fff0814e9d341f8.js +1 -0
- package/.next/static/chunks/2666-0ffcaa56248fa87e.js +1 -0
- package/.next/static/chunks/3938-b55cb95203c34832.js +1 -0
- package/.next/static/chunks/4219-4ac199a28917d787.js +1 -0
- package/.next/static/chunks/423-766c202217f701c0.js +1 -0
- package/.next/static/chunks/app/(main)/admin/users/page-cc0c71dc0e6631fb.js +1 -0
- package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/audit-logs/page-807f95cdc901e568.js → static/chunks/app/(main)/audit-logs/page-58b3d20be5540dd0.js} +1 -1
- package/.next/static/chunks/app/(main)/backups/page-bd084d0163678e15.js +1 -0
- package/.next/static/chunks/app/(main)/{layout-46198c04ba71ec0e.js → layout-9822cba515754d43.js} +1 -1
- package/.next/static/chunks/app/(main)/players/{page-17fac813cd35d4ca.js → page-d3e8734d942f5fea.js} +1 -1
- package/.next/static/chunks/app/(main)/routing/{page-f430d126cc21547c.js → page-8e36e2c23d9a62c2.js} +1 -1
- package/.next/static/chunks/app/(main)/servers/[name]/{page-4fdf404cb21708a7.js → page-8eda8c4709976b6a.js} +1 -1
- package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/servers/page-5286112dc6e93885.js → static/chunks/app/(main)/servers/page-35a24570b3f06f3b.js} +1 -1
- package/.next/{standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/settings/page-dd38d40e3e0257a8.js → static/chunks/app/(main)/settings/page-9e447db7e4f551c2.js} +1 -1
- package/.next/static/chunks/app/(main)/worlds/{page-874ad606cffc439d.js → page-66e7e55928f43f54.js} +1 -1
- package/.next/static/chunks/app/login/page-913fdb0c7c3e7114.js +1 -0
- package/.next/static/chunks/app/signup/page-4fe85a21b5914e70.js +1 -0
- package/.next/static/chunks/{main-b146ccfc9c3834c3.js → main-63101811e3f573cc.js} +1 -1
- package/package.json +2 -2
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/1088.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/server/chunks/2650.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/1002-a00b243cef6b3efd.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/140-25eb9312925d8fea.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/2666-060d67b8e56af9d0.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/4219-26d64443218aac0b.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/6918-a51d55370b6c7caa.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/880-be7151cc9c502be6.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/8854-b34262a2493987c4.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/admin/users/page-b3a3231f2ddc0371.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/backups/page-47c96f8f36c1c1a3.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/login/page-05a2cf46a8784859.js +0 -1
- package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/signup/page-df2a4f73aae39ef2.js +0 -1
- package/.next/static/chunks/1002-a00b243cef6b3efd.js +0 -1
- package/.next/static/chunks/140-25eb9312925d8fea.js +0 -1
- package/.next/static/chunks/2666-060d67b8e56af9d0.js +0 -1
- package/.next/static/chunks/4219-26d64443218aac0b.js +0 -1
- package/.next/static/chunks/6918-a51d55370b6c7caa.js +0 -1
- package/.next/static/chunks/880-be7151cc9c502be6.js +0 -1
- package/.next/static/chunks/8854-b34262a2493987c4.js +0 -1
- package/.next/static/chunks/app/(main)/admin/users/page-b3a3231f2ddc0371.js +0 -1
- package/.next/static/chunks/app/(main)/backups/page-47c96f8f36c1c1a3.js +0 -1
- package/.next/static/chunks/app/login/page-05a2cf46a8784859.js +0 -1
- package/.next/static/chunks/app/signup/page-df2a4f73aae39ef2.js +0 -1
- /package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/{5498-b79f9cd3afa37253.js → 5498-096ebd4d2953f7f7.js} +0 -0
- /package/.next/standalone/platform/services/mcctl-console/.next/static/chunks/app/(main)/dashboard/{page-3343dd199353868b.js → page-11c6a90c8d27eb8d.js} +0 -0
- /package/.next/standalone/platform/services/mcctl-console/.next/static/{8WaN6q-o9WUaI6Ue--Q1D → xDJAZTu4K3qWOH_XZ3IyH}/_buildManifest.js +0 -0
- /package/.next/standalone/platform/services/mcctl-console/.next/static/{8WaN6q-o9WUaI6Ue--Q1D → xDJAZTu4K3qWOH_XZ3IyH}/_ssgManifest.js +0 -0
- /package/.next/static/chunks/{5498-b79f9cd3afa37253.js → 5498-096ebd4d2953f7f7.js} +0 -0
- /package/.next/static/chunks/app/(main)/dashboard/{page-3343dd199353868b.js → page-11c6a90c8d27eb8d.js} +0 -0
- /package/.next/static/{8WaN6q-o9WUaI6Ue--Q1D → xDJAZTu4K3qWOH_XZ3IyH}/_buildManifest.js +0 -0
- /package/.next/static/{8WaN6q-o9WUaI6Ue--Q1D → xDJAZTu4K3qWOH_XZ3IyH}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[224],{49726:function(e,r,t){Promise.resolve().then(t.bind(t,7854))},7854:function(e,r,t){"use strict";t.r(r),t.d(r,{default:function(){return ea}});var s=t(94655),n=t(35106),a=t(31358),l=t(7281),i=t(30417),o=t(81071),c=t(93017),d=t(69899),x=t(31317),u=t(76492),m=t(32366),p=t(78067),h=t(84840),f=t(97436),g=t(52082),v=t(89923),j=t(10297),y=t(42431),Z=t(628),b=t(41565),S=t(25935),C=t(79983),k=t(25333),w=t(97511),I=t(5501),P=t(93315),T=t(27171),E=t(96292);let F=e=>{switch(e){case"running":return"success";case"stopped":case"exited":case"not_created":return"error";case"created":return"warning";default:return"default"}},R=e=>{switch(e){case"running":return"Running";case"stopped":case"exited":return"Stopped";case"not_created":return"Not Created";case"created":return"Created";default:return e||"Unknown"}};function W(e){let{server:r,statusOverride:t,onClick:n,onStart:a,onStop:i,loading:o=!1}=e,c=(null==t?void 0:t.status)||r.status,d=(e,t)=>{e.stopPropagation(),t(r.name)},u="running"===c,m="stopped"===c||"exited"===c||"not_created"===c;return(0,s.jsxs)(Z.Z,{role:"article",onClick:()=>{n&&n(r.name)},sx:{cursor:n?"pointer":"default",transition:"all 0.2s",height:{xs:"auto",sm:180},minHeight:{xs:140,sm:180},display:"flex",flexDirection:"column","&:hover":n?{transform:"translateY(-2px)",boxShadow:4}:{}},children:[(0,s.jsxs)(b.Z,{sx:{flex:1,pb:1},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,s.jsx)(x.Z,{variant:"h6",component:"h3",sx:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,mr:1},children:r.name}),(0,s.jsx)(k.Z,{label:R(c),size:"small",color:F(c),sx:{fontWeight:500,minWidth:70}})]}),(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,s.jsx)(E.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,s.jsx)(w.h,{hostname:r.hostname})]}),(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(T.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,s.jsx)(x.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.container})]})]}),(0,s.jsxs)(S.Z,{sx:{justifyContent:"flex-end",px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[m&&a&&(0,s.jsx)(C.Z,{"aria-label":"Start server",color:"success",onClick:e=>d(e,a),disabled:o,size:"small",children:(0,s.jsx)(I.Z,{})}),u&&i&&(0,s.jsx)(C.Z,{"aria-label":"Stop server",color:"error",onClick:e=>d(e,i),disabled:o,size:"small",children:(0,s.jsx)(P.Z,{})}),!m&&!u&&(0,s.jsx)(l.Z,{sx:{height:34}})]})]})}function z(e){let{servers:r,statusMap:t={},onServerClick:a,onStart:o,onStop:c,onCreate:d,loadingServers:u=[]}=e,[p,Z]=(0,n.useState)(""),[b,S]=(0,n.useState)("all"),C=(0,n.useMemo)(()=>r.filter(e=>{if(p&&!e.name.toLowerCase().includes(p.toLowerCase()))return!1;let r=t[e.name],s=(null==r?void 0:r.status)||e.status;return("running"!==b||"running"===s)&&("stopped"!==b||"stopped"===s||"exited"===s||"not_created"===s)}),[r,t,p,b]);return 0===r.length?(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"400px",gap:2},children:[(0,s.jsx)(x.Z,{variant:"h6",color:"text.secondary",children:"No servers found"}),d&&(0,s.jsx)(i.Z,{variant:"contained",startIcon:(0,s.jsx)(m.Z,{}),onClick:d,children:"Create Server"})]}):(0,s.jsxs)(l.Z,{children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:2,mb:3,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,s.jsxs)(j.Z,{value:b,exclusive:!0,onChange:(e,r)=>{null!==r&&S(r)},size:"small",sx:{flexShrink:0},children:[(0,s.jsx)(v.Z,{value:"all",children:"All"}),(0,s.jsx)(v.Z,{value:"running",children:"Running"}),(0,s.jsx)(v.Z,{value:"stopped",children:"Stopped"})]}),(0,s.jsx)(f.Z,{size:"small",placeholder:"Search servers...",value:p,onChange:e=>Z(e.target.value),InputProps:{startAdornment:(0,s.jsx)(g.Z,{position:"start",children:(0,s.jsx)(y.Z,{})})},sx:{flexGrow:{xs:1,sm:0},minWidth:{sm:300}}})]}),(0,s.jsxs)(x.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:[C.length," ",1===C.length?"server":"servers"]}),0===C.length?(0,s.jsx)(l.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",gap:2},children:(0,s.jsx)(x.Z,{variant:"h6",color:"text.secondary",children:"No servers found"})}):(0,s.jsx)(h.ZP,{container:!0,spacing:2,children:C.map(e=>(0,s.jsx)(h.ZP,{item:!0,xs:12,sm:6,md:4,children:(0,s.jsx)(W,{server:e,statusOverride:t[e.name],onClick:a,onStart:o,onStop:c,loading:u.includes(e.name)})},e.name))})]})}var M=t(83855),O=t(44059),A=t(99770),L=t(62508),D=t(5682),N=t(76678),G=t(7178),_=t(40064),V=t(45547),q=t(4405),H=t(73383),U=t(82285),$=t(13609),B=t(46207),J=t(43436),Y=t(87716),K=t(71185);let Q=["VANILLA","PAPER","FABRIC","FORGE","NEOFORGE"],X=["","forge","fabric","neoforge","quilt"],ee={name:"",type:"PAPER",version:"1.21.1",memory:"4G",autoStart:!1,sudoPassword:""},er=[{key:"initializing",label:"Initializing"},{key:"creating",label:"Creating"},{key:"configuring",label:"Configuring"},{key:"starting",label:"Starting"}];function et(e){let r,{open:t,onClose:a,onSubmit:d,loading:u=!1,status:m="idle",progress:p=0,message:h=""}=e,g=(0,M.Z)(),y=(0,O.Z)(g.breakpoints.down("sm")),[Z,b]=(0,n.useState)("standard"),[S,k]=(0,n.useState)(ee),[w,I]=(0,n.useState)({}),[P,T]=(0,n.useState)(!1),E=(0,n.useRef)(null),F=(0,n.useRef)(null),R=er.findIndex(e=>e.key===m),W="idle"!==m&&"completed"!==m&&"error"!==m;(0,n.useEffect)(()=>{t||(b("standard"),k(ee),I({}),T(!1))},[t]);let z=e=>e?/^[a-z0-9-]+$/.test(e)?null:"Only lowercase letters, numbers, and hyphens are allowed":"Server name is required",et=e=>e?null:"Modpack slug is required",es=e=>r=>{let t=r.target.value;k(r=>({...r,[e]:t})),"memory"===e&&T(!0),w[e]&&I(r=>({...r,[e]:""}))};return(0,s.jsx)(A.Z,{open:t,onClose:W?void 0:a,maxWidth:"sm",fullWidth:!0,fullScreen:y,children:(0,s.jsxs)("form",{onSubmit:e=>{e.preventDefault(),I({});let r=z(S.name);if(r){I({name:r});return}if("modpack"===Z){let e=et(S.modpack||"");if(e){I({modpack:e});return}}let t={name:S.name,memory:S.memory,autoStart:S.autoStart,sudoPassword:S.sudoPassword};"standard"===Z?(t.type=S.type,t.version=S.version):(t.type="MODRINTH",t.modpack=S.modpack,S.modpackVersion&&(t.modpackVersion=S.modpackVersion),S.modLoader&&(t.modLoader=S.modLoader)),d(t)},children:[(0,s.jsxs)(L.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:["completed"===m?(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(B.Z,{color:"success"}),"Server Created Successfully"]}):"error"===m?(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(J.Z,{color:"error"}),"Creation Failed"]}):"Create New Server",y&&!W&&(0,s.jsx)(C.Z,{onClick:a,"aria-label":"Close dialog",edge:"end",children:(0,s.jsx)(K.Z,{})})]}),(0,s.jsx)(D.Z,{children:W||"completed"===m||"error"===m?(0,s.jsxs)(l.Z,{sx:{py:2},children:[(0,s.jsx)(H.Z,{activeStep:R,alternativeLabel:!0,sx:{mb:3},children:er.map(e=>(0,s.jsx)(U.Z,{children:(0,s.jsx)($.Z,{children:e.label})},e.key))}),W&&(0,s.jsxs)(l.Z,{sx:{mb:3},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,s.jsx)(x.Z,{variant:"body2",color:"text.secondary",children:h}),(0,s.jsxs)(x.Z,{variant:"body2",color:"text.secondary",children:[p,"%"]})]}),(0,s.jsx)(q.Z,{variant:"determinate",value:p})]}),"completed"===m&&(0,s.jsx)(x.Z,{color:"success.main",sx:{textAlign:"center"},children:h}),"error"===m&&(0,s.jsx)(x.Z,{color:"error.main",sx:{textAlign:"center"},children:h})]}):(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[(0,s.jsx)(l.Z,{ref:F,role:"status","aria-live":"polite",sx:{position:"absolute",left:"-10000px",width:"1px",height:"1px",overflow:"hidden"}}),(0,s.jsx)(f.Z,{label:"Server Name",value:S.name,onChange:es("name"),error:!!w.name,helperText:w.name||"Only lowercase letters, numbers, and hyphens",fullWidth:!0,autoFocus:!0,disabled:W}),(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2},children:[(0,s.jsx)(x.Z,{variant:"subtitle2",color:"text.secondary",children:"Server Type"}),(0,s.jsxs)(j.Z,{value:Z,exclusive:!0,onChange:(e,r)=>{null!==r&&(b(r),F.current&&(F.current.textContent="".concat("standard"===r?"Standard Server":"Modpack"," category selected")),P||k(e=>({...e,memory:"standard"===r?"4G":"6G"})),setTimeout(()=>{"modpack"===r&&E.current&&E.current.focus()},300))},"aria-label":"Server category",fullWidth:!0,disabled:W,children:[(0,s.jsx)(v.Z,{value:"standard","aria-label":"Standard Server",children:"Standard Server"}),(0,s.jsx)(v.Z,{value:"modpack","aria-label":"Modpack",children:"Modpack"})]}),(0,s.jsx)(Y.Z,{in:"standard"===Z,unmountOnExit:!0,children:(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2,mt:2},children:[(0,s.jsx)(f.Z,{label:"Server Type",select:!0,value:S.type,onChange:es("type"),fullWidth:!0,disabled:W,children:Q.map(e=>(0,s.jsx)(G.Z,{value:e,children:e},e))}),(0,s.jsx)(f.Z,{label:"Minecraft Version",value:S.version,onChange:es("version"),helperText:"e.g., 1.21.1, 1.20.4, latest",fullWidth:!0,disabled:W})]})}),(0,s.jsx)(Y.Z,{in:"modpack"===Z,unmountOnExit:!0,children:(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2,mt:2},children:[(0,s.jsx)(o.Z,{severity:"info",children:"Minecraft version is automatically determined by the modpack"}),(0,s.jsx)(f.Z,{label:"Modpack Slug",value:S.modpack||"",onChange:es("modpack"),error:!!w.modpack,helperText:w.modpack||"e.g., cobblemon, adrenaserver (from modrinth.com/modpacks/SLUG)",fullWidth:!0,disabled:W,inputRef:E}),(0,s.jsxs)(f.Z,{label:"Mod Loader",select:!0,value:S.modLoader||"",onChange:es("modLoader"),helperText:"Leave empty to auto-detect from modpack",fullWidth:!0,disabled:W,children:[(0,s.jsx)(G.Z,{value:"",children:"Auto-detect"}),X.filter(e=>e).map(e=>(0,s.jsx)(G.Z,{value:e,children:e},e))]}),(0,s.jsx)(f.Z,{label:"Modpack Version",value:S.modpackVersion||"",onChange:es("modpackVersion"),helperText:"Leave empty for latest",fullWidth:!0,disabled:W})]})})]}),(0,s.jsx)(f.Z,{label:"Memory",value:S.memory,onChange:es("memory"),helperText:"e.g., 4G, 8G, 16G",fullWidth:!0,disabled:W}),(0,s.jsx)(f.Z,{label:"Sudo Password",type:"password",value:S.sudoPassword||"",onChange:es("sudoPassword"),helperText:"Required for mDNS hostname registration (avahi)",fullWidth:!0,disabled:W}),(0,s.jsx)(_.Z,{control:(0,s.jsx)(V.Z,{checked:S.autoStart||!1,onChange:(r="autoStart",e=>{k(t=>({...t,[r]:e.target.checked}))}),disabled:W}),label:"Auto-start after creation"})]})}),(0,s.jsx)(N.Z,{sx:{px:3,pb:2},children:"completed"===m||"error"===m?(0,s.jsx)(i.Z,{onClick:a,variant:"contained",fullWidth:!0,children:"Close"}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.Z,{onClick:a,disabled:W,children:"Cancel"}),(0,s.jsx)(i.Z,{type:"submit",variant:"contained",disabled:W,startIcon:W?(0,s.jsx)(c.Z,{size:16}):null,children:W?"Creating...":"Create"})]})})]})})}var es=t(92666),en=t(59104);function ea(){var e,r;let t=(0,a.x)(),[h,f]=(0,n.useState)(!1),[g,v]=(0,n.useState)([]),{data:j,isLoading:y,error:Z}=(0,es.x$)(),{statusMap:b}=(0,en.d)(),S=(0,es.jM)(),C=(0,es.Aw)(),k=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onSuccess:r,onError:t,onProgress:s}=e,[a,l]=(0,n.useState)("idle"),[i,o]=(0,n.useState)(0),[c,d]=(0,n.useState)(""),[x,u]=(0,n.useState)(null),m=(0,n.useRef)(null),p=(0,n.useRef)(""),h=(0,n.useCallback)(()=>{l("idle"),o(0),d(""),u(null),m.current&&(m.current.close(),m.current=null)},[]),f=(0,n.useCallback)((e,r,t)=>{l(e),d(r),o(t),null==s||s(e,r,t)},[s]),g=(0,n.useCallback)(async e=>{if("idle"===a||"completed"===a||"error"===a){u(null),f("initializing","Initializing server creation...",0),p.current=e.name,m.current&&m.current.close();try{let t=await fetch("/api/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.text();throw Error(e||"Server creation failed: ".concat(t.statusText))}await t.json(),f("creating","Creating server configuration...",25),await new Promise(e=>setTimeout(e,500)),f("configuring","Configuring Docker compose...",50),await new Promise(e=>setTimeout(e,500)),f("starting","Starting server container...",75),await new Promise(e=>setTimeout(e,500)),f("completed","Server created successfully!",100),null==r||r(e.name)}catch(r){let e=r instanceof Error?r.message:"Unknown error occurred";l("error"),u(e),d("Server creation failed"),null==t||t(e)}}},[a,f,r,t]);return(0,n.useEffect)(()=>()=>{m.current&&(m.current.close(),m.current=null)},[]),{status:a,progress:i,message:c,error:x,isCreating:"idle"!==a&&"completed"!==a&&"error"!==a,createServer:g,reset:h}}({onSuccess:()=>{f(!1)},onError:e=>{console.error("Failed to create server:",e)}}),w=async e=>{v(r=>[...r,e]);try{await S.mutateAsync(e)}catch(e){console.error("Failed to start server:",e)}finally{v(r=>r.filter(r=>r!==e))}},I=async e=>{v(r=>[...r,e]);try{await C.mutateAsync(e)}catch(e){console.error("Failed to stop server:",e)}finally{v(r=>r.filter(r=>r!==e))}};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,u.Fq)(e.palette.info.main,.1)," 0%, ").concat((0,u.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,u.Fq)(e.palette.info.main,.2)),display:"flex",flexDirection:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"flex-start",sm:"center"},gap:2},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,s.jsx)(l.Z,{sx:{display:{xs:"none",sm:"flex"},alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"info.main",color:"info.contrastText"},children:(0,s.jsx)(p.Z,{sx:{fontSize:32}})}),(0,s.jsxs)(l.Z,{children:[(0,s.jsx)(x.Z,{variant:"h4",component:"h1",fontWeight:"bold",sx:{fontSize:{xs:"1.5rem",sm:"2.125rem"}},children:"Servers"}),(0,s.jsx)(x.Z,{variant:"body1",color:"text.secondary",children:"Manage your Minecraft servers"})]})]}),(0,s.jsx)(i.Z,{variant:"contained",startIcon:(0,s.jsx)(m.Z,{}),onClick:()=>f(!0),size:"large",sx:{width:{xs:"100%",sm:"auto"}},children:"Create Server"})]}),Z&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to load servers: ",Z.message]}),k.error&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to create server: ",k.error]}),S.isError&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to start server: ",null===(e=S.error)||void 0===e?void 0:e.message]}),C.isError&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to stop server: ",null===(r=C.error)||void 0===r?void 0:r.message]}),y?(0,s.jsx)(l.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,s.jsx)(c.Z,{})}):(0,s.jsx)(z,{servers:(null==j?void 0:j.servers)||[],statusMap:b,onServerClick:e=>{t.push("/servers/".concat(encodeURIComponent(e)))},onStart:w,onStop:I,onCreate:()=>f(!0),loadingServers:g}),(0,s.jsx)(et,{open:h,onClose:()=>{f(!1),k.reset()},onSubmit:e=>{k.createServer(e)},loading:k.isCreating,status:k.status,progress:k.progress,message:k.message})]})}}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,540,4416,2538,880,7073,1658,6727,140,7477,2666,2701,3669,2757,1744],function(){return e(e.s=49726)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[224],{49726:function(e,r,t){Promise.resolve().then(t.bind(t,7854))},7854:function(e,r,t){"use strict";t.r(r),t.d(r,{default:function(){return ea}});var s=t(94655),n=t(35106),a=t(31358),l=t(7281),i=t(30417),o=t(81071),c=t(93017),d=t(69899),x=t(31317),u=t(76492),m=t(32366),p=t(78067),h=t(84840),f=t(97436),g=t(52082),v=t(89923),j=t(10297),y=t(42431),Z=t(628),b=t(41565),S=t(25935),C=t(79983),k=t(25333),w=t(97511),I=t(5501),P=t(93315),T=t(27171),E=t(96292);let F=e=>{switch(e){case"running":return"success";case"stopped":case"exited":case"not_created":return"error";case"created":return"warning";default:return"default"}},R=e=>{switch(e){case"running":return"Running";case"stopped":case"exited":return"Stopped";case"not_created":return"Not Created";case"created":return"Created";default:return e||"Unknown"}};function W(e){let{server:r,statusOverride:t,onClick:n,onStart:a,onStop:i,loading:o=!1}=e,c=(null==t?void 0:t.status)||r.status,d=(e,t)=>{e.stopPropagation(),t(r.name)},u="running"===c,m="stopped"===c||"exited"===c||"not_created"===c;return(0,s.jsxs)(Z.Z,{role:"article",onClick:()=>{n&&n(r.name)},sx:{cursor:n?"pointer":"default",transition:"all 0.2s",height:{xs:"auto",sm:180},minHeight:{xs:140,sm:180},display:"flex",flexDirection:"column","&:hover":n?{transform:"translateY(-2px)",boxShadow:4}:{}},children:[(0,s.jsxs)(b.Z,{sx:{flex:1,pb:1},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,s.jsx)(x.Z,{variant:"h6",component:"h3",sx:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,mr:1},children:r.name}),(0,s.jsx)(k.Z,{label:R(c),size:"small",color:F(c),sx:{fontWeight:500,minWidth:70}})]}),(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,s.jsx)(E.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,s.jsx)(w.h,{hostname:r.hostname})]}),(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(T.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,s.jsx)(x.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.container})]})]}),(0,s.jsxs)(S.Z,{sx:{justifyContent:"flex-end",px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[m&&a&&(0,s.jsx)(C.Z,{"aria-label":"Start server",color:"success",onClick:e=>d(e,a),disabled:o,size:"small",children:(0,s.jsx)(I.Z,{})}),u&&i&&(0,s.jsx)(C.Z,{"aria-label":"Stop server",color:"error",onClick:e=>d(e,i),disabled:o,size:"small",children:(0,s.jsx)(P.Z,{})}),!m&&!u&&(0,s.jsx)(l.Z,{sx:{height:34}})]})]})}function z(e){let{servers:r,statusMap:t={},onServerClick:a,onStart:o,onStop:c,onCreate:d,loadingServers:u=[]}=e,[p,Z]=(0,n.useState)(""),[b,S]=(0,n.useState)("all"),C=(0,n.useMemo)(()=>r.filter(e=>{if(p&&!e.name.toLowerCase().includes(p.toLowerCase()))return!1;let r=t[e.name],s=(null==r?void 0:r.status)||e.status;return("running"!==b||"running"===s)&&("stopped"!==b||"stopped"===s||"exited"===s||"not_created"===s)}),[r,t,p,b]);return 0===r.length?(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"400px",gap:2},children:[(0,s.jsx)(x.Z,{variant:"h6",color:"text.secondary",children:"No servers found"}),d&&(0,s.jsx)(i.Z,{variant:"contained",startIcon:(0,s.jsx)(m.Z,{}),onClick:d,children:"Create Server"})]}):(0,s.jsxs)(l.Z,{children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:2,mb:3,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,s.jsxs)(j.Z,{value:b,exclusive:!0,onChange:(e,r)=>{null!==r&&S(r)},size:"small",sx:{flexShrink:0},children:[(0,s.jsx)(v.Z,{value:"all",children:"All"}),(0,s.jsx)(v.Z,{value:"running",children:"Running"}),(0,s.jsx)(v.Z,{value:"stopped",children:"Stopped"})]}),(0,s.jsx)(f.Z,{size:"small",placeholder:"Search servers...",value:p,onChange:e=>Z(e.target.value),InputProps:{startAdornment:(0,s.jsx)(g.Z,{position:"start",children:(0,s.jsx)(y.Z,{})})},sx:{flexGrow:{xs:1,sm:0},minWidth:{sm:300}}})]}),(0,s.jsxs)(x.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:[C.length," ",1===C.length?"server":"servers"]}),0===C.length?(0,s.jsx)(l.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",gap:2},children:(0,s.jsx)(x.Z,{variant:"h6",color:"text.secondary",children:"No servers found"})}):(0,s.jsx)(h.ZP,{container:!0,spacing:2,children:C.map(e=>(0,s.jsx)(h.ZP,{item:!0,xs:12,sm:6,md:4,children:(0,s.jsx)(W,{server:e,statusOverride:t[e.name],onClick:a,onStart:o,onStop:c,loading:u.includes(e.name)})},e.name))})]})}var M=t(83855),O=t(44059),A=t(99770),L=t(62508),D=t(5682),N=t(76678),G=t(7178),_=t(40064),V=t(45547),q=t(4405),H=t(73383),U=t(82285),$=t(13609),B=t(46207),J=t(43436),Y=t(87716),K=t(71185);let Q=["VANILLA","PAPER","FABRIC","FORGE","NEOFORGE"],X=["","forge","fabric","neoforge","quilt"],ee={name:"",type:"PAPER",version:"1.21.1",memory:"4G",autoStart:!1,sudoPassword:""},er=[{key:"initializing",label:"Initializing"},{key:"creating",label:"Creating"},{key:"configuring",label:"Configuring"},{key:"starting",label:"Starting"}];function et(e){let r,{open:t,onClose:a,onSubmit:d,loading:u=!1,status:m="idle",progress:p=0,message:h=""}=e,g=(0,M.Z)(),y=(0,O.Z)(g.breakpoints.down("sm")),[Z,b]=(0,n.useState)("standard"),[S,k]=(0,n.useState)(ee),[w,I]=(0,n.useState)({}),[P,T]=(0,n.useState)(!1),E=(0,n.useRef)(null),F=(0,n.useRef)(null),R=er.findIndex(e=>e.key===m),W="idle"!==m&&"completed"!==m&&"error"!==m;(0,n.useEffect)(()=>{t||(b("standard"),k(ee),I({}),T(!1))},[t]);let z=e=>e?/^[a-z0-9-]+$/.test(e)?null:"Only lowercase letters, numbers, and hyphens are allowed":"Server name is required",et=e=>e?null:"Modpack slug is required",es=e=>r=>{let t=r.target.value;k(r=>({...r,[e]:t})),"memory"===e&&T(!0),w[e]&&I(r=>({...r,[e]:""}))};return(0,s.jsx)(A.Z,{open:t,onClose:W?void 0:a,maxWidth:"sm",fullWidth:!0,fullScreen:y,children:(0,s.jsxs)("form",{onSubmit:e=>{e.preventDefault(),I({});let r=z(S.name);if(r){I({name:r});return}if("modpack"===Z){let e=et(S.modpack||"");if(e){I({modpack:e});return}}let t={name:S.name,memory:S.memory,autoStart:S.autoStart,sudoPassword:S.sudoPassword};"standard"===Z?(t.type=S.type,t.version=S.version):(t.type="MODRINTH",t.modpack=S.modpack,S.modpackVersion&&(t.modpackVersion=S.modpackVersion),S.modLoader&&(t.modLoader=S.modLoader)),d(t)},children:[(0,s.jsxs)(L.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:["completed"===m?(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(B.Z,{color:"success"}),"Server Created Successfully"]}):"error"===m?(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsx)(J.Z,{color:"error"}),"Creation Failed"]}):"Create New Server",y&&!W&&(0,s.jsx)(C.Z,{onClick:a,"aria-label":"Close dialog",edge:"end",children:(0,s.jsx)(K.Z,{})})]}),(0,s.jsx)(D.Z,{children:W||"completed"===m||"error"===m?(0,s.jsxs)(l.Z,{sx:{py:2},children:[(0,s.jsx)(H.Z,{activeStep:R,alternativeLabel:!0,sx:{mb:3},children:er.map(e=>(0,s.jsx)(U.Z,{children:(0,s.jsx)($.Z,{children:e.label})},e.key))}),W&&(0,s.jsxs)(l.Z,{sx:{mb:3},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[(0,s.jsx)(x.Z,{variant:"body2",color:"text.secondary",children:h}),(0,s.jsxs)(x.Z,{variant:"body2",color:"text.secondary",children:[p,"%"]})]}),(0,s.jsx)(q.Z,{variant:"determinate",value:p})]}),"completed"===m&&(0,s.jsx)(x.Z,{color:"success.main",sx:{textAlign:"center"},children:h}),"error"===m&&(0,s.jsx)(x.Z,{color:"error.main",sx:{textAlign:"center"},children:h})]}):(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[(0,s.jsx)(l.Z,{ref:F,role:"status","aria-live":"polite",sx:{position:"absolute",left:"-10000px",width:"1px",height:"1px",overflow:"hidden"}}),(0,s.jsx)(f.Z,{label:"Server Name",value:S.name,onChange:es("name"),error:!!w.name,helperText:w.name||"Only lowercase letters, numbers, and hyphens",fullWidth:!0,autoFocus:!0,disabled:W}),(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2},children:[(0,s.jsx)(x.Z,{variant:"subtitle2",color:"text.secondary",children:"Server Type"}),(0,s.jsxs)(j.Z,{value:Z,exclusive:!0,onChange:(e,r)=>{null!==r&&(b(r),F.current&&(F.current.textContent="".concat("standard"===r?"Standard Server":"Modpack"," category selected")),P||k(e=>({...e,memory:"standard"===r?"4G":"6G"})),setTimeout(()=>{"modpack"===r&&E.current&&E.current.focus()},300))},"aria-label":"Server category",fullWidth:!0,disabled:W,children:[(0,s.jsx)(v.Z,{value:"standard","aria-label":"Standard Server",children:"Standard Server"}),(0,s.jsx)(v.Z,{value:"modpack","aria-label":"Modpack",children:"Modpack"})]}),(0,s.jsx)(Y.Z,{in:"standard"===Z,unmountOnExit:!0,children:(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2,mt:2},children:[(0,s.jsx)(f.Z,{label:"Server Type",select:!0,value:S.type,onChange:es("type"),fullWidth:!0,disabled:W,children:Q.map(e=>(0,s.jsx)(G.Z,{value:e,children:e},e))}),(0,s.jsx)(f.Z,{label:"Minecraft Version",value:S.version,onChange:es("version"),helperText:"e.g., 1.21.1, 1.20.4, latest",fullWidth:!0,disabled:W})]})}),(0,s.jsx)(Y.Z,{in:"modpack"===Z,unmountOnExit:!0,children:(0,s.jsxs)(l.Z,{sx:{display:"flex",flexDirection:"column",gap:2,mt:2},children:[(0,s.jsx)(o.Z,{severity:"info",children:"Minecraft version is automatically determined by the modpack"}),(0,s.jsx)(f.Z,{label:"Modpack Slug",value:S.modpack||"",onChange:es("modpack"),error:!!w.modpack,helperText:w.modpack||"e.g., cobblemon, adrenaserver (from modrinth.com/modpacks/SLUG)",fullWidth:!0,disabled:W,inputRef:E}),(0,s.jsxs)(f.Z,{label:"Mod Loader",select:!0,value:S.modLoader||"",onChange:es("modLoader"),helperText:"Leave empty to auto-detect from modpack",fullWidth:!0,disabled:W,children:[(0,s.jsx)(G.Z,{value:"",children:"Auto-detect"}),X.filter(e=>e).map(e=>(0,s.jsx)(G.Z,{value:e,children:e},e))]}),(0,s.jsx)(f.Z,{label:"Modpack Version",value:S.modpackVersion||"",onChange:es("modpackVersion"),helperText:"Leave empty for latest",fullWidth:!0,disabled:W})]})})]}),(0,s.jsx)(f.Z,{label:"Memory",value:S.memory,onChange:es("memory"),helperText:"e.g., 4G, 8G, 16G",fullWidth:!0,disabled:W}),(0,s.jsx)(f.Z,{label:"Sudo Password",type:"password",value:S.sudoPassword||"",onChange:es("sudoPassword"),helperText:"Required for mDNS hostname registration (avahi)",fullWidth:!0,disabled:W}),(0,s.jsx)(_.Z,{control:(0,s.jsx)(V.Z,{checked:S.autoStart||!1,onChange:(r="autoStart",e=>{k(t=>({...t,[r]:e.target.checked}))}),disabled:W}),label:"Auto-start after creation"})]})}),(0,s.jsx)(N.Z,{sx:{px:3,pb:2},children:"completed"===m||"error"===m?(0,s.jsx)(i.Z,{onClick:a,variant:"contained",fullWidth:!0,children:"Close"}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.Z,{onClick:a,disabled:W,children:"Cancel"}),(0,s.jsx)(i.Z,{type:"submit",variant:"contained",disabled:W,startIcon:W?(0,s.jsx)(c.Z,{size:16}):null,children:W?"Creating...":"Create"})]})})]})})}var es=t(92666),en=t(59104);function ea(){var e,r;let t=(0,a.x)(),[h,f]=(0,n.useState)(!1),[g,v]=(0,n.useState)([]),{data:j,isLoading:y,error:Z}=(0,es.x$)(),{statusMap:b}=(0,en.d)(),S=(0,es.jM)(),C=(0,es.Aw)(),k=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onSuccess:r,onError:t,onProgress:s}=e,[a,l]=(0,n.useState)("idle"),[i,o]=(0,n.useState)(0),[c,d]=(0,n.useState)(""),[x,u]=(0,n.useState)(null),m=(0,n.useRef)(null),p=(0,n.useRef)(""),h=(0,n.useCallback)(()=>{l("idle"),o(0),d(""),u(null),m.current&&(m.current.close(),m.current=null)},[]),f=(0,n.useCallback)((e,r,t)=>{l(e),d(r),o(t),null==s||s(e,r,t)},[s]),g=(0,n.useCallback)(async e=>{if("idle"===a||"completed"===a||"error"===a){u(null),f("initializing","Initializing server creation...",0),p.current=e.name,m.current&&m.current.close();try{let t=await fetch("/api/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.text();throw Error(e||"Server creation failed: ".concat(t.statusText))}await t.json(),f("creating","Creating server configuration...",25),await new Promise(e=>setTimeout(e,500)),f("configuring","Configuring Docker compose...",50),await new Promise(e=>setTimeout(e,500)),f("starting","Starting server container...",75),await new Promise(e=>setTimeout(e,500)),f("completed","Server created successfully!",100),null==r||r(e.name)}catch(r){let e=r instanceof Error?r.message:"Unknown error occurred";l("error"),u(e),d("Server creation failed"),null==t||t(e)}}},[a,f,r,t]);return(0,n.useEffect)(()=>()=>{m.current&&(m.current.close(),m.current=null)},[]),{status:a,progress:i,message:c,error:x,isCreating:"idle"!==a&&"completed"!==a&&"error"!==a,createServer:g,reset:h}}({onSuccess:()=>{f(!1)},onError:e=>{console.error("Failed to create server:",e)}}),w=async e=>{v(r=>[...r,e]);try{await S.mutateAsync(e)}catch(e){console.error("Failed to start server:",e)}finally{v(r=>r.filter(r=>r!==e))}},I=async e=>{v(r=>[...r,e]);try{await C.mutateAsync(e)}catch(e){console.error("Failed to stop server:",e)}finally{v(r=>r.filter(r=>r!==e))}};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,u.Fq)(e.palette.info.main,.1)," 0%, ").concat((0,u.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,u.Fq)(e.palette.info.main,.2)),display:"flex",flexDirection:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"flex-start",sm:"center"},gap:2},children:[(0,s.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,s.jsx)(l.Z,{sx:{display:{xs:"none",sm:"flex"},alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"info.main",color:"info.contrastText"},children:(0,s.jsx)(p.Z,{sx:{fontSize:32}})}),(0,s.jsxs)(l.Z,{children:[(0,s.jsx)(x.Z,{variant:"h4",component:"h1",fontWeight:"bold",sx:{fontSize:{xs:"1.5rem",sm:"2.125rem"}},children:"Servers"}),(0,s.jsx)(x.Z,{variant:"body1",color:"text.secondary",children:"Manage your Minecraft servers"})]})]}),(0,s.jsx)(i.Z,{variant:"contained",startIcon:(0,s.jsx)(m.Z,{}),onClick:()=>f(!0),size:"large",sx:{width:{xs:"100%",sm:"auto"}},children:"Create Server"})]}),Z&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to load servers: ",Z.message]}),k.error&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to create server: ",k.error]}),S.isError&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to start server: ",null===(e=S.error)||void 0===e?void 0:e.message]}),C.isError&&(0,s.jsxs)(o.Z,{severity:"error",sx:{mb:3},children:["Failed to stop server: ",null===(r=C.error)||void 0===r?void 0:r.message]}),y?(0,s.jsx)(l.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,s.jsx)(c.Z,{})}):(0,s.jsx)(z,{servers:(null==j?void 0:j.servers)||[],statusMap:b,onServerClick:e=>{t.push("/servers/".concat(encodeURIComponent(e)))},onStart:w,onStop:I,onCreate:()=>f(!0),loadingServers:g}),(0,s.jsx)(et,{open:h,onClose:()=>{f(!1),k.reset()},onSubmit:e=>{k.createServer(e)},loading:k.isCreating,status:k.status,progress:k.progress,message:k.message})]})}}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,540,4416,2538,3938,7073,1658,6727,140,7477,2666,2701,3669,2757,1744],function(){return e(e.s=49726)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4978],{70861:function(e,t,n){Promise.resolve().then(n.bind(n,32539))},76544:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)([(0,s.jsx)("path",{d:"m7.3 14.7 1.2-1.2c-1-1-1.5-2.3-1.5-3.5 0-1.3.5-2.6 1.5-3.5L7.3 5.3c-1.3 1.3-2 3-2 4.7s.7 3.4 2 4.7M19.1 2.9l-1.2 1.2c1.6 1.6 2.4 3.8 2.4 5.9 0 2.1-.8 4.3-2.4 5.9l1.2 1.2c2-2 2.9-4.5 2.9-7.1 0-2.6-1-5.1-2.9-7.1"},"0"),(0,s.jsx)("path",{d:"M6.1 4.1 4.9 2.9C3 4.9 2 7.4 2 10c0 2.6 1 5.1 2.9 7.1l1.2-1.2c-1.6-1.6-2.4-3.8-2.4-5.9 0-2.1.8-4.3 2.4-5.9m10.6 10.6c1.3-1.3 2-3 2-4.7-.1-1.7-.7-3.4-2-4.7l-1.2 1.2c1 1 1.5 2.3 1.5 3.5 0 1.3-.5 2.6-1.5 3.5zM14.5 10c0-1.38-1.12-2.5-2.5-2.5S9.5 8.62 9.5 10c0 .76.34 1.42.87 1.88L7 22h2l.67-2h4.67l.66 2h2l-3.37-10.12c.53-.46.87-1.12.87-1.88m-4.17 8L12 13l1.67 5z"},"1")],"CellTower")},23695:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info")},21605:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5M1 9l2 2c2.88-2.88 6.79-4.08 10.53-3.62l1.19-2.68C9.89 3.84 4.74 5.27 1 9m20 2 2-2c-1.64-1.64-3.55-2.82-5.59-3.57l-.53 2.82c1.5.62 2.9 1.53 4.12 2.75m-4 4 2-2c-.8-.8-1.7-1.42-2.66-1.89l-.55 2.92c.42.27.83.59 1.21.97M5 13l2 2c1.13-1.13 2.56-1.79 4.03-2l1.28-2.88c-2.63-.08-5.3.87-7.31 2.88"}),"NetworkCheck")},29983:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7m-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2M8 18H6v-2h2zm3.5 0h-2v-2h2zm3.5 0h-2v-2h2z"}),"Router")},93315:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"M6 6h12v12H6z"}),"Stop")},52082:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r,i=n(32324),s=n(81500),o=n(35106),a=n(70316),c=n(65951),l=n(38762),d=n(31317),u=n(14406),h=n(85016),v=n(34519),p=n(11379),m=n(9049);function f(e){return(0,m.ZP)("MuiInputAdornment",e)}let Z=(0,p.Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var x=n(28057),j=n(94655);let g=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=e=>{let{classes:t,disablePointerEvents:n,hiddenLabel:r,position:i,size:s,variant:o}=e,a={root:["root",n&&"disablePointerEvents",i&&"position".concat((0,l.Z)(i)),o,r&&"hiddenLabel",s&&"size".concat((0,l.Z)(s))]};return(0,c.Z)(a,f,t)},z=(0,v.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t["position".concat((0,l.Z)(n.position))],!0===n.disablePointerEvents&&t.disablePointerEvents,t[n.variant]]}})(e=>{let{theme:t,ownerState:n}=e;return(0,s.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active},"filled"===n.variant&&{["&.".concat(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")")]:{marginTop:16}},"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})});var E=o.forwardRef(function(e,t){let n=(0,x.i)({props:e,name:"MuiInputAdornment"}),{children:c,className:l,component:v="div",disablePointerEvents:p=!1,disableTypography:m=!1,position:f,variant:Z}=n,E=(0,i.Z)(n,g),y=(0,h.Z)()||{},C=Z;Z&&y.variant,y&&!C&&(C=y.variant);let M=(0,s.Z)({},n,{hiddenLabel:y.hiddenLabel,size:y.size,disablePointerEvents:p,position:f,variant:C}),P=b(M);return(0,j.jsx)(u.Z.Provider,{value:null,children:(0,j.jsx)(z,(0,s.Z)({as:v,ownerState:M,className:(0,a.Z)(P.root,l),ref:t},E,{children:"string"!=typeof c||m?(0,j.jsxs)(o.Fragment,{children:["start"===f?r||(r=(0,j.jsx)("span",{className:"notranslate",children:""})):null,c]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:c})}))})})},32539:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var r=n(94655),i=n(35106),s=n(7281),o=n(84840),a=n(31317),c=n(37530),l=n(81071),d=n(87739),u=n(57965);function h(){let[e,t]=(0,i.useState)({open:!1,message:"",severity:"success"}),n=e=>{t({open:!0,message:e,severity:"success"})},h=e=>{t({open:!0,message:e,severity:"error"})},v=()=>{t(e=>({...e,open:!1}))};return(0,r.jsxs)(s.Z,{children:[(0,r.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1.5,mb:4},children:[(0,r.jsx)(d.Z,{sx:{fontSize:32},color:"primary"}),(0,r.jsx)(a.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Settings"})]}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,md:6,children:(0,r.jsx)(u.zd,{onSuccess:n,onError:h})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,md:6,children:(0,r.jsx)(u.eE,{})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,children:(0,r.jsx)(u.ms,{onSuccess:n,onError:h})})]}),(0,r.jsx)(c.Z,{open:e.open,autoHideDuration:6e3,onClose:v,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:(0,r.jsx)(l.Z,{onClose:v,severity:e.severity,variant:"filled",sx:{width:"100%"},children:e.message})})]})}},42936:function(e,t,n){"use strict";async function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={...t.headers};t.body&&(n["Content-Type"]="application/json");let r=await fetch(e,{...t,headers:n});if(!r.ok){let e=await r.json().catch(()=>({error:"UnknownError",message:r.statusText})),t=Error(e.message);throw t.statusCode=r.status,t.code=e.error,t}return r.json()}n.d(t,{SC:function(){return r}})}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,540,4416,2538,2542,
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4978],{70861:function(e,t,n){Promise.resolve().then(n.bind(n,32539))},76544:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)([(0,s.jsx)("path",{d:"m7.3 14.7 1.2-1.2c-1-1-1.5-2.3-1.5-3.5 0-1.3.5-2.6 1.5-3.5L7.3 5.3c-1.3 1.3-2 3-2 4.7s.7 3.4 2 4.7M19.1 2.9l-1.2 1.2c1.6 1.6 2.4 3.8 2.4 5.9 0 2.1-.8 4.3-2.4 5.9l1.2 1.2c2-2 2.9-4.5 2.9-7.1 0-2.6-1-5.1-2.9-7.1"},"0"),(0,s.jsx)("path",{d:"M6.1 4.1 4.9 2.9C3 4.9 2 7.4 2 10c0 2.6 1 5.1 2.9 7.1l1.2-1.2c-1.6-1.6-2.4-3.8-2.4-5.9 0-2.1.8-4.3 2.4-5.9m10.6 10.6c1.3-1.3 2-3 2-4.7-.1-1.7-.7-3.4-2-4.7l-1.2 1.2c1 1 1.5 2.3 1.5 3.5 0 1.3-.5 2.6-1.5 3.5zM14.5 10c0-1.38-1.12-2.5-2.5-2.5S9.5 8.62 9.5 10c0 .76.34 1.42.87 1.88L7 22h2l.67-2h4.67l.66 2h2l-3.37-10.12c.53-.46.87-1.12.87-1.88m-4.17 8L12 13l1.67 5z"},"1")],"CellTower")},23695:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info")},21605:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5M1 9l2 2c2.88-2.88 6.79-4.08 10.53-3.62l1.19-2.68C9.89 3.84 4.74 5.27 1 9m20 2 2-2c-1.64-1.64-3.55-2.82-5.59-3.57l-.53 2.82c1.5.62 2.9 1.53 4.12 2.75m-4 4 2-2c-.8-.8-1.7-1.42-2.66-1.89l-.55 2.92c.42.27.83.59 1.21.97M5 13l2 2c1.13-1.13 2.56-1.79 4.03-2l1.28-2.88c-2.63-.08-5.3.87-7.31 2.88"}),"NetworkCheck")},29983:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7m-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2M8 18H6v-2h2zm3.5 0h-2v-2h2zm3.5 0h-2v-2h2z"}),"Router")},93315:function(e,t,n){"use strict";var r=n(8091);t.Z=void 0;var i=r(n(66758)),s=n(94655);t.Z=(0,i.default)((0,s.jsx)("path",{d:"M6 6h12v12H6z"}),"Stop")},52082:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r,i=n(32324),s=n(81500),o=n(35106),a=n(70316),c=n(65951),l=n(38762),d=n(31317),u=n(14406),h=n(85016),v=n(34519),p=n(11379),m=n(9049);function f(e){return(0,m.ZP)("MuiInputAdornment",e)}let Z=(0,p.Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var x=n(28057),j=n(94655);let g=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=e=>{let{classes:t,disablePointerEvents:n,hiddenLabel:r,position:i,size:s,variant:o}=e,a={root:["root",n&&"disablePointerEvents",i&&"position".concat((0,l.Z)(i)),o,r&&"hiddenLabel",s&&"size".concat((0,l.Z)(s))]};return(0,c.Z)(a,f,t)},z=(0,v.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t["position".concat((0,l.Z)(n.position))],!0===n.disablePointerEvents&&t.disablePointerEvents,t[n.variant]]}})(e=>{let{theme:t,ownerState:n}=e;return(0,s.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active},"filled"===n.variant&&{["&.".concat(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")")]:{marginTop:16}},"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})});var E=o.forwardRef(function(e,t){let n=(0,x.i)({props:e,name:"MuiInputAdornment"}),{children:c,className:l,component:v="div",disablePointerEvents:p=!1,disableTypography:m=!1,position:f,variant:Z}=n,E=(0,i.Z)(n,g),y=(0,h.Z)()||{},C=Z;Z&&y.variant,y&&!C&&(C=y.variant);let M=(0,s.Z)({},n,{hiddenLabel:y.hiddenLabel,size:y.size,disablePointerEvents:p,position:f,variant:C}),P=b(M);return(0,j.jsx)(u.Z.Provider,{value:null,children:(0,j.jsx)(z,(0,s.Z)({as:v,ownerState:M,className:(0,a.Z)(P.root,l),ref:t},E,{children:"string"!=typeof c||m?(0,j.jsxs)(o.Fragment,{children:["start"===f?r||(r=(0,j.jsx)("span",{className:"notranslate",children:""})):null,c]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:c})}))})})},32539:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var r=n(94655),i=n(35106),s=n(7281),o=n(84840),a=n(31317),c=n(37530),l=n(81071),d=n(87739),u=n(57965);function h(){let[e,t]=(0,i.useState)({open:!1,message:"",severity:"success"}),n=e=>{t({open:!0,message:e,severity:"success"})},h=e=>{t({open:!0,message:e,severity:"error"})},v=()=>{t(e=>({...e,open:!1}))};return(0,r.jsxs)(s.Z,{children:[(0,r.jsxs)(s.Z,{sx:{display:"flex",alignItems:"center",gap:1.5,mb:4},children:[(0,r.jsx)(d.Z,{sx:{fontSize:32},color:"primary"}),(0,r.jsx)(a.Z,{variant:"h4",component:"h1",fontWeight:"bold",children:"Settings"})]}),(0,r.jsxs)(o.ZP,{container:!0,spacing:3,children:[(0,r.jsx)(o.ZP,{item:!0,xs:12,md:6,children:(0,r.jsx)(u.zd,{onSuccess:n,onError:h})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,md:6,children:(0,r.jsx)(u.eE,{})}),(0,r.jsx)(o.ZP,{item:!0,xs:12,children:(0,r.jsx)(u.ms,{onSuccess:n,onError:h})})]}),(0,r.jsx)(c.Z,{open:e.open,autoHideDuration:6e3,onClose:v,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:(0,r.jsx)(l.Z,{onClose:v,severity:e.severity,variant:"filled",sx:{width:"100%"},children:e.message})})]})}},42936:function(e,t,n){"use strict";async function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={...t.headers};t.body&&(n["Content-Type"]="application/json");let r=await fetch(e,{...t,headers:n});if(!r.ok){let e=await r.json().catch(()=>({error:"UnknownError",message:r.statusText})),t=Error(e.message);throw t.statusCode=r.status,t.code=e.error,t}return r.json()}n.d(t,{SC:function(){return r}})}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,540,4416,2538,5511,2542,2844,4841,6650,7965,3669,2757,1744],function(){return e(e.s=70861)}),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7701],{6199:function(e,s,n){Promise.resolve().then(n.bind(n,36405))},33104:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)([(0,t.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),(0,t.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"AccessTime")},21111:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)((0,t.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete")},97812:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)((0,t.jsx)("path",{d:"M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5m-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11C3.29 8.12 2 9.91 2 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3z"}),"LinkOff")},84974:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)((0,t.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39"}),"Public")},36405:function(e,s,n){"use strict";n.r(s),n.d(s,{default:function(){return B}});var l=n(94655),r=n(35106),t=n(83855),i=n(44059),a=n(7281),o=n(30417),d=n(81071),c=n(93017),x=n(69899),h=n(31317),u=n(99770),m=n(62508),j=n(5682),f=n(76678),Z=n(97436),v=n(76492),p=n(32366),g=n(84974),b=n(84840),y=n(52082),w=n(89923),C=n(10297),S=n(42431),k=n(628),W=n(41565),z=n(25935),D=n(79983),L=n(25333),I=n(95511),A=n(96292),F=n(97812),M=n(21111),P=n(78067),H=n(33104);function E(e){let{world:s,onAssign:n,onRelease:r,onDelete:t,loading:i=!1}=e,o=(e,n)=>{e.stopPropagation(),n(s.name)};return(0,l.jsxs)(k.Z,{role:"article",sx:{transition:"all 0.2s",height:{xs:"auto",sm:200},minHeight:{xs:160,sm:200},display:"flex",flexDirection:"column","&:hover":{transform:"translateY(-2px)",boxShadow:4}},children:[(0,l.jsxs)(W.Z,{sx:{flex:1,pb:1},children:[(0,l.jsxs)(a.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,l.jsx)(h.Z,{variant:"h6",component:"h3",sx:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,mr:1},children:s.name}),(0,l.jsx)(L.Z,{label:s.isLocked?"Locked":"Available",size:"small",color:s.isLocked?"warning":"success",sx:{fontWeight:500,minWidth:80}})]}),(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,l.jsx)(P.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,l.jsx)(h.Z,{variant:"body2",color:"text.secondary",children:s.size||"Unknown size"})]}),s.isLocked&&s.lockedBy&&(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,l.jsx)(A.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,l.jsx)(I.Z,{title:"Assigned to ".concat(s.lockedBy),arrow:!0,children:(0,l.jsx)(h.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s.lockedBy})})]}),(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(H.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,l.jsx)(h.Z,{variant:"body2",color:"text.secondary",children:(e=>{if(!e)return"-";try{return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch(s){return e}})(s.lastModified)})]})]}),(0,l.jsxs)(z.Z,{sx:{justifyContent:"flex-end",px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[!s.isLocked&&n&&(0,l.jsx)(I.Z,{title:"Assign to server",arrow:!0,children:(0,l.jsx)(D.Z,{"aria-label":"Assign world",color:"primary",onClick:e=>o(e,n),disabled:i,size:"small",children:(0,l.jsx)(A.Z,{})})}),s.isLocked&&r&&(0,l.jsx)(I.Z,{title:"Release from server",arrow:!0,children:(0,l.jsx)(D.Z,{"aria-label":"Release world",color:"warning",onClick:e=>o(e,r),disabled:i,size:"small",children:(0,l.jsx)(F.Z,{})})}),t&&(0,l.jsx)(I.Z,{title:"Delete world",arrow:!0,children:(0,l.jsx)(D.Z,{"aria-label":"Delete world",color:"error",onClick:e=>o(e,t),disabled:i,size:"small",children:(0,l.jsx)(M.Z,{})})})]})]})}function N(e){let{worlds:s,onAssign:n,onRelease:t,onDelete:i,onCreate:d,loadingWorlds:c=[]}=e,[x,u]=(0,r.useState)(""),[m,j]=(0,r.useState)("all"),f=(0,r.useMemo)(()=>s.filter(e=>(!x||!!e.name.toLowerCase().includes(x.toLowerCase()))&&("available"!==m||!e.isLocked)&&("locked"!==m||!!e.isLocked)),[s,x,m]);return 0===s.length?(0,l.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"400px",gap:2},children:[(0,l.jsx)(h.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"}),d&&(0,l.jsx)(o.Z,{variant:"contained",startIcon:(0,l.jsx)(p.Z,{}),onClick:d,children:"Create World"})]}):(0,l.jsxs)(a.Z,{children:[(0,l.jsxs)(a.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:2,mb:3,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,l.jsxs)(C.Z,{value:m,exclusive:!0,onChange:(e,s)=>{null!==s&&j(s)},size:"small",sx:{flexShrink:0},children:[(0,l.jsx)(w.Z,{value:"all",children:"All"}),(0,l.jsx)(w.Z,{value:"available",children:"Available"}),(0,l.jsx)(w.Z,{value:"locked",children:"Locked"})]}),(0,l.jsx)(Z.Z,{size:"small",placeholder:"Search worlds...",value:x,onChange:e=>u(e.target.value),InputProps:{startAdornment:(0,l.jsx)(y.Z,{position:"start",children:(0,l.jsx)(S.Z,{})})},sx:{flexGrow:{xs:1,sm:0},minWidth:{sm:300}}})]}),(0,l.jsxs)(h.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:[f.length," ",1===f.length?"world":"worlds"]}),0===f.length?(0,l.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",gap:2},children:(0,l.jsx)(h.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"})}):(0,l.jsx)(b.ZP,{container:!0,spacing:2,children:f.map(e=>(0,l.jsx)(b.ZP,{item:!0,xs:12,sm:6,md:4,children:(0,l.jsx)(E,{world:e,onAssign:n,onRelease:t,onDelete:i,loading:c.includes(e.name)})},e.name))})]})}let T={name:"",seed:""};function O(e){let{open:s,onClose:n,onSubmit:t,loading:i=!1}=e,[d,x]=(0,r.useState)(T),[h,v]=(0,r.useState)({});(0,r.useEffect)(()=>{s||(x(T),v({}))},[s]);let p=e=>e?/^[a-z0-9-]+$/.test(e)?null:"Only lowercase letters, numbers, and hyphens are allowed":"World name is required",g=e=>s=>{let n=s.target.value;x(s=>({...s,[e]:n})),h[e]&&v(s=>({...s,[e]:""}))};return(0,l.jsx)(u.Z,{open:s,onClose:i?void 0:n,maxWidth:"sm",fullWidth:!0,children:(0,l.jsxs)("form",{onSubmit:e=>{e.preventDefault(),v({});let s=p(d.name);if(s){v({name:s});return}t({name:d.name,...d.seed?{seed:d.seed}:{}})},children:[(0,l.jsx)(m.Z,{children:"Create New World"}),(0,l.jsx)(j.Z,{children:(0,l.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[(0,l.jsx)(Z.Z,{label:"World Name",value:d.name,onChange:g("name"),error:!!h.name,helperText:h.name||"Only lowercase letters, numbers, and hyphens",fullWidth:!0,autoFocus:!0,disabled:i}),(0,l.jsx)(Z.Z,{label:"Seed (optional)",value:d.seed||"",onChange:g("seed"),helperText:"Leave empty for a random seed",fullWidth:!0,disabled:i})]})}),(0,l.jsxs)(f.Z,{sx:{px:3,pb:2},children:[(0,l.jsx)(o.Z,{onClick:n,disabled:i,children:"Cancel"}),(0,l.jsx)(o.Z,{type:"submit",variant:"contained",disabled:i,startIcon:i?(0,l.jsx)(c.Z,{size:16}):null,children:i?"Creating...":"Create"})]})]})})}var R=n(7178),_=n(92666);function q(e){let{open:s,worldName:n,onClose:t,onSubmit:i,loading:x=!1}=e,[v,p]=(0,r.useState)(""),{data:g,isLoading:b}=(0,_.x$)();(0,r.useEffect)(()=>{s||p("")},[s]);let y=(null==g?void 0:g.servers)||[],w=y.filter(e=>"running"!==e.status),C=y.filter(e=>"running"===e.status);return(0,l.jsx)(u.Z,{open:s,onClose:x?void 0:t,maxWidth:"sm",fullWidth:!0,children:(0,l.jsxs)("form",{onSubmit:e=>{e.preventDefault(),v&&i(n,v)},children:[(0,l.jsxs)(m.Z,{children:["Assign World: ",n]}),(0,l.jsx)(j.Z,{children:(0,l.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:b?(0,l.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,l.jsx)(c.Z,{})}):0===y.length?(0,l.jsx)(h.Z,{color:"text.secondary",children:"No servers available. Create a server first."}):(0,l.jsxs)(l.Fragment,{children:[0===w.length&&C.length>0&&(0,l.jsx)(d.Z,{severity:"warning",children:"All servers are currently running. It is recommended to assign worlds to stopped servers."}),(0,l.jsxs)(Z.Z,{label:"Select Server",select:!0,value:v,onChange:e=>p(e.target.value),fullWidth:!0,disabled:x,helperText:"Select a server to assign this world to",children:[w.length>0&&(0,l.jsx)(R.Z,{disabled:!0,children:(0,l.jsx)(h.Z,{variant:"caption",color:"text.secondary",children:"Available Servers"})}),w.map(e=>(0,l.jsx)(R.Z,{value:e.name,children:e.name},e.name)),C.length>0&&(0,l.jsx)(R.Z,{disabled:!0,children:(0,l.jsx)(h.Z,{variant:"caption",color:"text.secondary",children:"Running Servers (not recommended)"})}),C.map(e=>(0,l.jsx)(R.Z,{value:e.name,children:e.name},e.name))]})]})})}),(0,l.jsxs)(f.Z,{sx:{px:3,pb:2},children:[(0,l.jsx)(o.Z,{onClick:t,disabled:x,children:"Cancel"}),(0,l.jsx)(o.Z,{type:"submit",variant:"contained",disabled:x||!v||b,startIcon:x?(0,l.jsx)(c.Z,{size:16}):null,children:x?"Assigning...":"Assign"})]})]})})}function B(){var e,s,n,b;let y=(0,t.Z)(),w=(0,i.Z)(y.breakpoints.down("sm")),[C,S]=(0,r.useState)(!1),[k,W]=(0,r.useState)(null),[z,D]=(0,r.useState)(null),[L,I]=(0,r.useState)(""),[A,F]=(0,r.useState)([]),{data:M,isLoading:P,error:H}=(0,_.Sr)(),E=(0,_.hy)(),T=(0,_.nq)(),R=(0,_.g2)(),B=(0,_.Fv)(),V=async e=>{F(s=>[...s,e]);try{await R.mutateAsync({worldName:e})}catch(e){console.error("Failed to release world:",e)}finally{F(s=>s.filter(s=>s!==e))}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(x.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,v.Fq)(e.palette.success.main,.1)," 0%, ").concat((0,v.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,v.Fq)(e.palette.success.main,.2)),display:"flex",flexDirection:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"flex-start",sm:"center"},gap:2},children:[(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,l.jsx)(a.Z,{sx:{display:{xs:"none",sm:"flex"},alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"success.main",color:"success.contrastText"},children:(0,l.jsx)(g.Z,{sx:{fontSize:32}})}),(0,l.jsxs)(a.Z,{children:[(0,l.jsx)(h.Z,{variant:"h4",component:"h1",fontWeight:"bold",sx:{fontSize:{xs:"1.5rem",sm:"2.125rem"}},children:"Worlds"}),(0,l.jsx)(h.Z,{variant:"body1",color:"text.secondary",children:"Manage your Minecraft worlds"})]})]}),(0,l.jsx)(o.Z,{variant:"contained",startIcon:(0,l.jsx)(p.Z,{}),onClick:()=>S(!0),size:"large",sx:{width:{xs:"100%",sm:"auto"}},children:"Create World"})]}),H&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to load worlds: ",H.message]}),E.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to create world: ",null===(e=E.error)||void 0===e?void 0:e.message]}),T.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to assign world: ",null===(s=T.error)||void 0===s?void 0:s.message]}),R.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to release world: ",null===(n=R.error)||void 0===n?void 0:n.message]}),B.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to delete world: ",null===(b=B.error)||void 0===b?void 0:b.message]}),P?(0,l.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,l.jsx)(c.Z,{})}):(0,l.jsx)(N,{worlds:(null==M?void 0:M.worlds)||[],onAssign:e=>W(e),onRelease:V,onDelete:e=>{D(e),I("")},onCreate:()=>S(!0),loadingWorlds:A}),(0,l.jsx)(O,{open:C,onClose:()=>{S(!1),E.reset()},onSubmit:e=>{E.mutate(e,{onSuccess:()=>{S(!1)}})},loading:E.isPending}),(0,l.jsx)(q,{open:!!k,worldName:k||"",onClose:()=>W(null),onSubmit:(e,s)=>{F(s=>[...s,e]),T.mutate({worldName:e,serverName:s},{onSuccess:()=>{W(null)},onSettled:()=>{F(s=>s.filter(s=>s!==e))}})},loading:T.isPending}),(0,l.jsxs)(u.Z,{open:!!z,onClose:()=>{D(null),I("")},maxWidth:"sm",fullWidth:!0,fullScreen:w,children:[(0,l.jsx)(m.Z,{children:"Delete World"}),(0,l.jsxs)(j.Z,{children:[(0,l.jsxs)(h.Z,{sx:{mb:2},children:["This action cannot be undone. Type ",(0,l.jsx)("strong",{children:z})," to confirm deletion."]}),(0,l.jsx)(Z.Z,{label:"World name",value:L,onChange:e=>I(e.target.value),fullWidth:!0,autoFocus:!0})]}),(0,l.jsxs)(f.Z,{sx:{px:3,pb:2},children:[(0,l.jsx)(o.Z,{onClick:()=>{D(null),I("")},children:"Cancel"}),(0,l.jsx)(o.Z,{variant:"contained",color:"error",onClick:()=>{z&&L===z&&(F(e=>[...e,z]),B.mutate({name:z,force:!0},{onSuccess:()=>{D(null),I("")},onSettled:()=>{F(e=>e.filter(e=>e!==z))}}))},disabled:L!==z||B.isPending,startIcon:B.isPending?(0,l.jsx)(c.Z,{size:16}):null,children:B.isPending?"Deleting...":"Delete"})]})]})]})}}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,540,4416,2538,880,5511,7073,140,2666,3669,2757,1744],function(){return e(e.s=6199)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7701],{6199:function(e,s,n){Promise.resolve().then(n.bind(n,36405))},33104:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)([(0,t.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),(0,t.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"AccessTime")},21111:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)((0,t.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete")},97812:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)((0,t.jsx)("path",{d:"M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5m-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11C3.29 8.12 2 9.91 2 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3z"}),"LinkOff")},84974:function(e,s,n){"use strict";var l=n(8091);s.Z=void 0;var r=l(n(66758)),t=n(94655);s.Z=(0,r.default)((0,t.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39"}),"Public")},36405:function(e,s,n){"use strict";n.r(s),n.d(s,{default:function(){return B}});var l=n(94655),r=n(35106),t=n(83855),i=n(44059),a=n(7281),o=n(30417),d=n(81071),c=n(93017),x=n(69899),h=n(31317),u=n(99770),m=n(62508),j=n(5682),f=n(76678),Z=n(97436),v=n(76492),p=n(32366),g=n(84974),b=n(84840),y=n(52082),w=n(89923),C=n(10297),S=n(42431),k=n(628),W=n(41565),z=n(25935),D=n(79983),L=n(25333),I=n(95511),A=n(96292),F=n(97812),M=n(21111),P=n(78067),H=n(33104);function E(e){let{world:s,onAssign:n,onRelease:r,onDelete:t,loading:i=!1}=e,o=(e,n)=>{e.stopPropagation(),n(s.name)};return(0,l.jsxs)(k.Z,{role:"article",sx:{transition:"all 0.2s",height:{xs:"auto",sm:200},minHeight:{xs:160,sm:200},display:"flex",flexDirection:"column","&:hover":{transform:"translateY(-2px)",boxShadow:4}},children:[(0,l.jsxs)(W.Z,{sx:{flex:1,pb:1},children:[(0,l.jsxs)(a.Z,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[(0,l.jsx)(h.Z,{variant:"h6",component:"h3",sx:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,mr:1},children:s.name}),(0,l.jsx)(L.Z,{label:s.isLocked?"Locked":"Available",size:"small",color:s.isLocked?"warning":"success",sx:{fontWeight:500,minWidth:80}})]}),(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,l.jsx)(P.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,l.jsx)(h.Z,{variant:"body2",color:"text.secondary",children:s.size||"Unknown size"})]}),s.isLocked&&s.lockedBy&&(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[(0,l.jsx)(A.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,l.jsx)(I.Z,{title:"Assigned to ".concat(s.lockedBy),arrow:!0,children:(0,l.jsx)(h.Z,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s.lockedBy})})]}),(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,l.jsx)(H.Z,{sx:{fontSize:16,color:"text.secondary"}}),(0,l.jsx)(h.Z,{variant:"body2",color:"text.secondary",children:(e=>{if(!e)return"-";try{return new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch(s){return e}})(s.lastModified)})]})]}),(0,l.jsxs)(z.Z,{sx:{justifyContent:"flex-end",px:2,py:1.5,borderTop:"1px solid",borderColor:"divider"},children:[!s.isLocked&&n&&(0,l.jsx)(I.Z,{title:"Assign to server",arrow:!0,children:(0,l.jsx)(D.Z,{"aria-label":"Assign world",color:"primary",onClick:e=>o(e,n),disabled:i,size:"small",children:(0,l.jsx)(A.Z,{})})}),s.isLocked&&r&&(0,l.jsx)(I.Z,{title:"Release from server",arrow:!0,children:(0,l.jsx)(D.Z,{"aria-label":"Release world",color:"warning",onClick:e=>o(e,r),disabled:i,size:"small",children:(0,l.jsx)(F.Z,{})})}),t&&(0,l.jsx)(I.Z,{title:"Delete world",arrow:!0,children:(0,l.jsx)(D.Z,{"aria-label":"Delete world",color:"error",onClick:e=>o(e,t),disabled:i,size:"small",children:(0,l.jsx)(M.Z,{})})})]})]})}function N(e){let{worlds:s,onAssign:n,onRelease:t,onDelete:i,onCreate:d,loadingWorlds:c=[]}=e,[x,u]=(0,r.useState)(""),[m,j]=(0,r.useState)("all"),f=(0,r.useMemo)(()=>s.filter(e=>(!x||!!e.name.toLowerCase().includes(x.toLowerCase()))&&("available"!==m||!e.isLocked)&&("locked"!==m||!!e.isLocked)),[s,x,m]);return 0===s.length?(0,l.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"400px",gap:2},children:[(0,l.jsx)(h.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"}),d&&(0,l.jsx)(o.Z,{variant:"contained",startIcon:(0,l.jsx)(p.Z,{}),onClick:d,children:"Create World"})]}):(0,l.jsxs)(a.Z,{children:[(0,l.jsxs)(a.Z,{sx:{display:"flex",flexDirection:{xs:"column",sm:"row"},gap:2,mb:3,alignItems:{xs:"stretch",sm:"center"},justifyContent:"space-between"},children:[(0,l.jsxs)(C.Z,{value:m,exclusive:!0,onChange:(e,s)=>{null!==s&&j(s)},size:"small",sx:{flexShrink:0},children:[(0,l.jsx)(w.Z,{value:"all",children:"All"}),(0,l.jsx)(w.Z,{value:"available",children:"Available"}),(0,l.jsx)(w.Z,{value:"locked",children:"Locked"})]}),(0,l.jsx)(Z.Z,{size:"small",placeholder:"Search worlds...",value:x,onChange:e=>u(e.target.value),InputProps:{startAdornment:(0,l.jsx)(y.Z,{position:"start",children:(0,l.jsx)(S.Z,{})})},sx:{flexGrow:{xs:1,sm:0},minWidth:{sm:300}}})]}),(0,l.jsxs)(h.Z,{variant:"body2",color:"text.secondary",sx:{mb:2},children:[f.length," ",1===f.length?"world":"worlds"]}),0===f.length?(0,l.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",gap:2},children:(0,l.jsx)(h.Z,{variant:"h6",color:"text.secondary",children:"No worlds found"})}):(0,l.jsx)(b.ZP,{container:!0,spacing:2,children:f.map(e=>(0,l.jsx)(b.ZP,{item:!0,xs:12,sm:6,md:4,children:(0,l.jsx)(E,{world:e,onAssign:n,onRelease:t,onDelete:i,loading:c.includes(e.name)})},e.name))})]})}let T={name:"",seed:""};function O(e){let{open:s,onClose:n,onSubmit:t,loading:i=!1}=e,[d,x]=(0,r.useState)(T),[h,v]=(0,r.useState)({});(0,r.useEffect)(()=>{s||(x(T),v({}))},[s]);let p=e=>e?/^[a-z0-9-]+$/.test(e)?null:"Only lowercase letters, numbers, and hyphens are allowed":"World name is required",g=e=>s=>{let n=s.target.value;x(s=>({...s,[e]:n})),h[e]&&v(s=>({...s,[e]:""}))};return(0,l.jsx)(u.Z,{open:s,onClose:i?void 0:n,maxWidth:"sm",fullWidth:!0,children:(0,l.jsxs)("form",{onSubmit:e=>{e.preventDefault(),v({});let s=p(d.name);if(s){v({name:s});return}t({name:d.name,...d.seed?{seed:d.seed}:{}})},children:[(0,l.jsx)(m.Z,{children:"Create New World"}),(0,l.jsx)(j.Z,{children:(0,l.jsxs)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[(0,l.jsx)(Z.Z,{label:"World Name",value:d.name,onChange:g("name"),error:!!h.name,helperText:h.name||"Only lowercase letters, numbers, and hyphens",fullWidth:!0,autoFocus:!0,disabled:i}),(0,l.jsx)(Z.Z,{label:"Seed (optional)",value:d.seed||"",onChange:g("seed"),helperText:"Leave empty for a random seed",fullWidth:!0,disabled:i})]})}),(0,l.jsxs)(f.Z,{sx:{px:3,pb:2},children:[(0,l.jsx)(o.Z,{onClick:n,disabled:i,children:"Cancel"}),(0,l.jsx)(o.Z,{type:"submit",variant:"contained",disabled:i,startIcon:i?(0,l.jsx)(c.Z,{size:16}):null,children:i?"Creating...":"Create"})]})]})})}var R=n(7178),_=n(92666);function q(e){let{open:s,worldName:n,onClose:t,onSubmit:i,loading:x=!1}=e,[v,p]=(0,r.useState)(""),{data:g,isLoading:b}=(0,_.x$)();(0,r.useEffect)(()=>{s||p("")},[s]);let y=(null==g?void 0:g.servers)||[],w=y.filter(e=>"running"!==e.status),C=y.filter(e=>"running"===e.status);return(0,l.jsx)(u.Z,{open:s,onClose:x?void 0:t,maxWidth:"sm",fullWidth:!0,children:(0,l.jsxs)("form",{onSubmit:e=>{e.preventDefault(),v&&i(n,v)},children:[(0,l.jsxs)(m.Z,{children:["Assign World: ",n]}),(0,l.jsx)(j.Z,{children:(0,l.jsx)(a.Z,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:b?(0,l.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:4},children:(0,l.jsx)(c.Z,{})}):0===y.length?(0,l.jsx)(h.Z,{color:"text.secondary",children:"No servers available. Create a server first."}):(0,l.jsxs)(l.Fragment,{children:[0===w.length&&C.length>0&&(0,l.jsx)(d.Z,{severity:"warning",children:"All servers are currently running. It is recommended to assign worlds to stopped servers."}),(0,l.jsxs)(Z.Z,{label:"Select Server",select:!0,value:v,onChange:e=>p(e.target.value),fullWidth:!0,disabled:x,helperText:"Select a server to assign this world to",children:[w.length>0&&(0,l.jsx)(R.Z,{disabled:!0,children:(0,l.jsx)(h.Z,{variant:"caption",color:"text.secondary",children:"Available Servers"})}),w.map(e=>(0,l.jsx)(R.Z,{value:e.name,children:e.name},e.name)),C.length>0&&(0,l.jsx)(R.Z,{disabled:!0,children:(0,l.jsx)(h.Z,{variant:"caption",color:"text.secondary",children:"Running Servers (not recommended)"})}),C.map(e=>(0,l.jsx)(R.Z,{value:e.name,children:e.name},e.name))]})]})})}),(0,l.jsxs)(f.Z,{sx:{px:3,pb:2},children:[(0,l.jsx)(o.Z,{onClick:t,disabled:x,children:"Cancel"}),(0,l.jsx)(o.Z,{type:"submit",variant:"contained",disabled:x||!v||b,startIcon:x?(0,l.jsx)(c.Z,{size:16}):null,children:x?"Assigning...":"Assign"})]})]})})}function B(){var e,s,n,b;let y=(0,t.Z)(),w=(0,i.Z)(y.breakpoints.down("sm")),[C,S]=(0,r.useState)(!1),[k,W]=(0,r.useState)(null),[z,D]=(0,r.useState)(null),[L,I]=(0,r.useState)(""),[A,F]=(0,r.useState)([]),{data:M,isLoading:P,error:H}=(0,_.Sr)(),E=(0,_.hy)(),T=(0,_.nq)(),R=(0,_.g2)(),B=(0,_.Fv)(),V=async e=>{F(s=>[...s,e]);try{await R.mutateAsync({worldName:e})}catch(e){console.error("Failed to release world:",e)}finally{F(s=>s.filter(s=>s!==e))}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(x.Z,{elevation:0,sx:{mb:4,p:3,background:e=>"linear-gradient(135deg, ".concat((0,v.Fq)(e.palette.success.main,.1)," 0%, ").concat((0,v.Fq)(e.palette.primary.main,.1)," 100%)"),borderRadius:2,border:e=>"1px solid ".concat((0,v.Fq)(e.palette.success.main,.2)),display:"flex",flexDirection:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"flex-start",sm:"center"},gap:2},children:[(0,l.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center",gap:2},children:[(0,l.jsx)(a.Z,{sx:{display:{xs:"none",sm:"flex"},alignItems:"center",justifyContent:"center",width:56,height:56,borderRadius:2,bgcolor:"success.main",color:"success.contrastText"},children:(0,l.jsx)(g.Z,{sx:{fontSize:32}})}),(0,l.jsxs)(a.Z,{children:[(0,l.jsx)(h.Z,{variant:"h4",component:"h1",fontWeight:"bold",sx:{fontSize:{xs:"1.5rem",sm:"2.125rem"}},children:"Worlds"}),(0,l.jsx)(h.Z,{variant:"body1",color:"text.secondary",children:"Manage your Minecraft worlds"})]})]}),(0,l.jsx)(o.Z,{variant:"contained",startIcon:(0,l.jsx)(p.Z,{}),onClick:()=>S(!0),size:"large",sx:{width:{xs:"100%",sm:"auto"}},children:"Create World"})]}),H&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to load worlds: ",H.message]}),E.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to create world: ",null===(e=E.error)||void 0===e?void 0:e.message]}),T.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to assign world: ",null===(s=T.error)||void 0===s?void 0:s.message]}),R.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to release world: ",null===(n=R.error)||void 0===n?void 0:n.message]}),B.isError&&(0,l.jsxs)(d.Z,{severity:"error",sx:{mb:3},children:["Failed to delete world: ",null===(b=B.error)||void 0===b?void 0:b.message]}),P?(0,l.jsx)(a.Z,{sx:{display:"flex",justifyContent:"center",py:8},children:(0,l.jsx)(c.Z,{})}):(0,l.jsx)(N,{worlds:(null==M?void 0:M.worlds)||[],onAssign:e=>W(e),onRelease:V,onDelete:e=>{D(e),I("")},onCreate:()=>S(!0),loadingWorlds:A}),(0,l.jsx)(O,{open:C,onClose:()=>{S(!1),E.reset()},onSubmit:e=>{E.mutate(e,{onSuccess:()=>{S(!1)}})},loading:E.isPending}),(0,l.jsx)(q,{open:!!k,worldName:k||"",onClose:()=>W(null),onSubmit:(e,s)=>{F(s=>[...s,e]),T.mutate({worldName:e,serverName:s},{onSuccess:()=>{W(null)},onSettled:()=>{F(s=>s.filter(s=>s!==e))}})},loading:T.isPending}),(0,l.jsxs)(u.Z,{open:!!z,onClose:()=>{D(null),I("")},maxWidth:"sm",fullWidth:!0,fullScreen:w,children:[(0,l.jsx)(m.Z,{children:"Delete World"}),(0,l.jsxs)(j.Z,{children:[(0,l.jsxs)(h.Z,{sx:{mb:2},children:["This action cannot be undone. Type ",(0,l.jsx)("strong",{children:z})," to confirm deletion."]}),(0,l.jsx)(Z.Z,{label:"World name",value:L,onChange:e=>I(e.target.value),fullWidth:!0,autoFocus:!0})]}),(0,l.jsxs)(f.Z,{sx:{px:3,pb:2},children:[(0,l.jsx)(o.Z,{onClick:()=>{D(null),I("")},children:"Cancel"}),(0,l.jsx)(o.Z,{variant:"contained",color:"error",onClick:()=>{z&&L===z&&(F(e=>[...e,z]),B.mutate({name:z,force:!0},{onSuccess:()=>{D(null),I("")},onSettled:()=>{F(e=>e.filter(e=>e!==z))}}))},disabled:L!==z||B.isPending,startIcon:B.isPending?(0,l.jsx)(c.Z,{size:16}):null,children:B.isPending?"Deleting...":"Delete"})]})]})]})}}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,540,4416,2538,5511,3938,7073,140,2666,3669,2757,1744],function(){return e(e.s=6199)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2626],{40527:function(e,t,r){Promise.resolve().then(r.bind(r,10672))},25169:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5"}),"Group")},78319:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4z"}),"Logout")},41094:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings")},554:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility")},36848:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff")},628:function(e,t,r){"use strict";r.d(t,{Z:function(){return g}});var n=r(81500),i=r(32324),s=r(35106),a=r(70316),l=r(65951),o=r(34519),d=r(28057),u=r(69899),c=r(11379),h=r(9049);function x(e){return(0,h.ZP)("MuiCard",e)}(0,c.Z)("MuiCard",["root"]);var m=r(94655);let p=["className","raised"],f=e=>{let{classes:t}=e;return(0,l.Z)({root:["root"]},x,t)},Z=(0,o.ZP)(u.Z,{name:"MuiCard",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({overflow:"hidden"}));var g=s.forwardRef(function(e,t){let r=(0,d.i)({props:e,name:"MuiCard"}),{className:s,raised:l=!1}=r,o=(0,i.Z)(r,p),u=(0,n.Z)({},r,{raised:l}),c=f(u);return(0,m.jsx)(Z,(0,n.Z)({className:(0,a.Z)(c.root,s),elevation:l?8:void 0,ref:t,ownerState:u},o))})},41565:function(e,t,r){"use strict";r.d(t,{Z:function(){return Z}});var n=r(81500),i=r(32324),s=r(35106),a=r(70316),l=r(65951),o=r(34519),d=r(28057),u=r(11379),c=r(9049);function h(e){return(0,c.ZP)("MuiCardContent",e)}(0,u.Z)("MuiCardContent",["root"]);var x=r(94655);let m=["className","component"],p=e=>{let{classes:t}=e;return(0,l.Z)({root:["root"]},h,t)},f=(0,o.ZP)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({padding:16,"&:last-child":{paddingBottom:24}}));var Z=s.forwardRef(function(e,t){let r=(0,d.i)({props:e,name:"MuiCardContent"}),{className:s,component:l="div"}=r,o=(0,i.Z)(r,m),u=(0,n.Z)({},r,{component:l}),c=p(u);return(0,x.jsx)(f,(0,n.Z)({as:l,className:(0,a.Z)(c.root,s),ownerState:u,ref:t},o))})},67337:function(e,t,r){"use strict";r.d(t,{Z:function(){return C}});var n=r(32324),i=r(81500),s=r(35106),a=r(70316),l=r(9049),o=r(65951),d=r(6014),u=r(14189),c=r(48442),h=r(8557),x=r(94655);let m=["className","component","disableGutters","fixed","maxWidth","classes"],p=(0,h.Z)(),f=(0,c.Z)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[`maxWidth${(0,d.Z)(String(r.maxWidth))}`],r.fixed&&t.fixed,r.disableGutters&&t.disableGutters]}}),Z=e=>(0,u.Z)({props:e,name:"MuiContainer",defaultTheme:p}),g=(e,t)=>{let{classes:r,fixed:n,disableGutters:i,maxWidth:s}=e,a={root:["root",s&&`maxWidth${(0,d.Z)(String(s))}`,n&&"fixed",i&&"disableGutters"]};return(0,o.Z)(a,e=>(0,l.ZP)(t,e),r)};var v=r(38762),j=r(34519),b=r(28057),C=function(e={}){let{createStyledComponent:t=f,useThemeProps:r=Z,componentName:l="MuiContainer"}=e,o=t(({theme:e,ownerState:t})=>(0,i.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,r)=>{let n=e.breakpoints.values[r];return 0!==n&&(t[e.breakpoints.up(r)]={maxWidth:`${n}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:t})=>(0,i.Z)({},"xs"===t.maxWidth&&{[e.breakpoints.up("xs")]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},t.maxWidth&&"xs"!==t.maxWidth&&{[e.breakpoints.up(t.maxWidth)]:{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`}}));return s.forwardRef(function(e,t){let s=r(e),{className:d,component:u="div",disableGutters:c=!1,fixed:h=!1,maxWidth:p="lg"}=s,f=(0,n.Z)(s,m),Z=(0,i.Z)({},s,{component:u,disableGutters:c,fixed:h,maxWidth:p}),v=g(Z,l);return(0,x.jsx)(o,(0,i.Z)({as:u,ownerState:Z,className:(0,a.Z)(v.root,d),ref:t},f))})}({createStyledComponent:(0,j.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t["maxWidth".concat((0,v.Z)(String(r.maxWidth)))],r.fixed&&t.fixed,r.disableGutters&&t.disableGutters]}}),useThemeProps:e=>(0,b.i)({props:e,name:"MuiContainer"})})},16945:function(e,t,r){"use strict";r.d(t,{V:function(){return s}});var n=r(11379),i=r(9049);function s(e){return(0,i.ZP)("MuiDivider",e)}let a=(0,n.Z)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);t.Z=a},10672:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return x}});var n=r(94655),i=r(74228),s=r(67337),a=r(7281),l=r(628),o=r(41565),d=r(31317),u=r(41261),c=r(85480),h=r(46725);function x(){let e=(0,i.useRouter)();return(0,n.jsx)(s.Z,{maxWidth:"sm",children:(0,n.jsx)(a.Z,{sx:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",py:4},children:(0,n.jsx)(l.Z,{sx:{width:"100%",maxWidth:500},children:(0,n.jsxs)(o.Z,{sx:{p:4},children:[(0,n.jsx)(d.Z,{variant:"h4",component:"h1",gutterBottom:!0,sx:{fontWeight:600,textAlign:"center",mb:3},children:"Welcome Back"}),(0,n.jsx)(d.Z,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",mb:4},children:"Sign in to manage your Minecraft servers"}),(0,n.jsx)(c.U0,{onSuccess:()=>{e.push("/dashboard")}}),(0,n.jsx)(a.Z,{sx:{mt:3,textAlign:"center"},children:(0,n.jsxs)(d.Z,{variant:"body2",color:"text.secondary",children:["Don't have an account?"," ",(0,n.jsx)(u.Z,{component:h.default,href:"/signup",underline:"hover",children:"Sign up"})]})})]})})})})}},85480:function(e,t,r){"use strict";r.d(t,{U0:function(){return m},WS:function(){return p},Ie:function(){return M}});var n=r(94655),i=r(35106),s=r(7281),a=r(81071),l=r(97436),o=r(52082),d=r(79983),u=r(30417),c=r(36848),h=r(554),x=r(6986);function m(e){let{onSuccess:t}=e,[r,m]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[Z,g]=(0,i.useState)(!1),[v,j]=(0,i.useState)({}),[b,C]=(0,i.useState)(null),[y,w]=(0,i.useState)(!1),S=()=>{let e={};return r?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)||(e.email="Invalid email address"):e.email="Email is required",p||(e.password="Password is required"),j(e),0===Object.keys(e).length},W=async e=>{if(e.preventDefault(),C(null),S()){w(!0);try{let e=await x.cg.email({email:r,password:p});if(e.error){C(e.error.message||"Invalid credentials"),w(!1);return}t&&t()}catch(e){C("An unexpected error occurred. Please try again."),w(!1)}}};return(0,n.jsxs)(s.Z,{component:"form",onSubmit:W,sx:{display:"flex",flexDirection:"column",gap:2},children:[b&&(0,n.jsx)(a.Z,{severity:"error",onClose:()=>C(null),children:b}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:r,onChange:e=>m(e.target.value),error:!!v.email,helperText:v.email,disabled:y,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:Z?"text":"password",value:p,onChange:e=>f(e.target.value),error:!!v.password,helperText:v.password,disabled:y,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(d.Z,{"aria-label":"toggle password visibility",onClick:()=>{g(!Z)},edge:"end",children:Z?(0,n.jsx)(c.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:y,fullWidth:!0,size:"large",children:y?"Signing in...":"Sign In"})]})}function p(e){let{onSuccess:t}=e,[r,m]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[Z,g]=(0,i.useState)(""),[v,j]=(0,i.useState)(""),[b,C]=(0,i.useState)(!1),[y,w]=(0,i.useState)(!1),[S,W]=(0,i.useState)({}),[k,P]=(0,i.useState)(null),[M,R]=(0,i.useState)(!1),z=()=>{let e={};return r||(e.name="Name is required"),p?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(p)||(e.email="Invalid email address"):e.email="Email is required",Z?Z.length<8&&(e.password="Password must be at least 8 characters"):e.password="Password is required",v?Z!==v&&(e.confirmPassword="Passwords do not match"):e.confirmPassword="Please confirm your password",W(e),0===Object.keys(e).length},I=async e=>{if(e.preventDefault(),P(null),z()){R(!0);try{let e=await x.y1.email({email:p,password:Z,name:r});if(e.error){P(e.error.message||"Registration failed"),R(!1);return}t&&t()}catch(e){P("An unexpected error occurred. Please try again."),R(!1)}}};return(0,n.jsxs)(s.Z,{component:"form",onSubmit:I,sx:{display:"flex",flexDirection:"column",gap:2},children:[k&&(0,n.jsx)(a.Z,{severity:"error",onClose:()=>P(null),children:k}),(0,n.jsx)(l.Z,{label:"Name",type:"text",value:r,onChange:e=>m(e.target.value),error:!!S.name,helperText:S.name,disabled:M,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:p,onChange:e=>f(e.target.value),error:!!S.email,helperText:S.email,disabled:M,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:b?"text":"password",value:Z,onChange:e=>g(e.target.value),error:!!S.password,helperText:S.password,disabled:M,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(d.Z,{"aria-label":"toggle password visibility",onClick:()=>{C(!b)},edge:"end",children:b?(0,n.jsx)(c.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(l.Z,{label:"Confirm Password",type:y?"text":"password",value:v,onChange:e=>j(e.target.value),error:!!S.confirmPassword,helperText:S.confirmPassword,disabled:M,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(d.Z,{"aria-label":"toggle password visibility",onClick:()=>{w(!y)},edge:"end",children:y?(0,n.jsx)(c.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:M,fullWidth:!0,size:"large",children:M?"Creating account...":"Sign Up"})]})}var f=r(74228),Z=r(93017),g=r(86702),v=r(88812),j=r(31317),b=r(25333),C=r(69123),y=r(7178),w=r(17820),S=r(73424),W=r(25169),k=r(41094),P=r(78319);function M(){let e=(0,f.useRouter)(),{data:t,isPending:r}=(0,x.kP)(),[a,l]=(0,i.useState)(null),o=()=>{l(null)},c=async()=>{o(),await (0,x.w7)(),e.push("/login")};if(r)return(0,n.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsx)(Z.Z,{size:24})});if(!(null==t?void 0:t.user))return(0,n.jsx)(u.Z,{variant:"contained",color:"primary",onClick:()=>{e.push("/login")},children:"Sign In"});let{user:h}=t,m=((e,t)=>{if(e){let t=e.split(" ");return t.length>=2?"".concat(t[0][0]).concat(t[1][0]).toUpperCase():e.substring(0,2).toUpperCase()}return t?t[0].toUpperCase():"?"})(h.name,h.email);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.Z,{onClick:e=>{l(e.currentTarget)},"aria-label":"user menu",children:(0,n.jsx)(g.Z,{sx:{bgcolor:"primary.main"},children:m})}),(0,n.jsxs)(v.Z,{anchorEl:a,open:!!a,onClose:o,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},sx:{mt:1},children:[(0,n.jsxs)(s.Z,{sx:{px:2,py:1.5,minWidth:200},children:[(0,n.jsx)(j.Z,{variant:"subtitle1",fontWeight:"600",children:h.name||"User"}),(0,n.jsx)(j.Z,{variant:"body2",color:"text.secondary",children:h.email}),"admin"===h.role&&(0,n.jsx)(b.Z,{label:"Admin",size:"small",color:"primary",sx:{mt:1}})]}),(0,n.jsx)(C.Z,{}),"admin"===h.role&&(0,n.jsxs)(y.Z,{onClick:()=>{o(),e.push("/admin/users")},children:[(0,n.jsx)(w.Z,{children:(0,n.jsx)(W.Z,{fontSize:"small"})}),(0,n.jsx)(S.Z,{children:"Users"})]}),(0,n.jsxs)(y.Z,{onClick:()=>{o(),e.push("/settings")},children:[(0,n.jsx)(w.Z,{children:(0,n.jsx)(k.Z,{fontSize:"small"})}),(0,n.jsx)(S.Z,{children:"Settings"})]}),(0,n.jsxs)(y.Z,{onClick:c,children:[(0,n.jsx)(w.Z,{children:(0,n.jsx)(P.Z,{fontSize:"small"})}),(0,n.jsx)(S.Z,{children:"Logout"})]})]})]})}},6986:function(e,t,r){"use strict";r.d(t,{Cp:function(){return h},Nq:function(){return c},cg:function(){return l},kP:function(){return u},w7:function(){return o},y1:function(){return d},zB:function(){return x}});var n=r(77054),i=r(61648),s=r(35016);let a=(0,n.X)({baseURL:s.env.NEXT_PUBLIC_BETTER_AUTH_URL||"",plugins:[(0,i.zB)()]}),{signIn:l,signOut:o,signUp:d,useSession:u,updateUser:c,changePassword:h}=a,x=a.admin}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,2542,55,4219,9097,3669,2757,1744],function(){return e(e.s=40527)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4966],{24100:function(e,t,r){Promise.resolve().then(r.bind(r,85795))},25169:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5"}),"Group")},78319:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4z"}),"Logout")},41094:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings")},554:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility")},36848:function(e,t,r){"use strict";var n=r(61626),i=r(94655);t.Z=(0,n.Z)((0,i.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"}),"VisibilityOff")},628:function(e,t,r){"use strict";r.d(t,{Z:function(){return g}});var n=r(81500),i=r(32324),s=r(35106),a=r(70316),l=r(65951),o=r(34519),d=r(28057),u=r(69899),c=r(11379),h=r(9049);function x(e){return(0,h.ZP)("MuiCard",e)}(0,c.Z)("MuiCard",["root"]);var m=r(94655);let p=["className","raised"],f=e=>{let{classes:t}=e;return(0,l.Z)({root:["root"]},x,t)},Z=(0,o.ZP)(u.Z,{name:"MuiCard",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({overflow:"hidden"}));var g=s.forwardRef(function(e,t){let r=(0,d.i)({props:e,name:"MuiCard"}),{className:s,raised:l=!1}=r,o=(0,i.Z)(r,p),u=(0,n.Z)({},r,{raised:l}),c=f(u);return(0,m.jsx)(Z,(0,n.Z)({className:(0,a.Z)(c.root,s),elevation:l?8:void 0,ref:t,ownerState:u},o))})},41565:function(e,t,r){"use strict";r.d(t,{Z:function(){return Z}});var n=r(81500),i=r(32324),s=r(35106),a=r(70316),l=r(65951),o=r(34519),d=r(28057),u=r(11379),c=r(9049);function h(e){return(0,c.ZP)("MuiCardContent",e)}(0,u.Z)("MuiCardContent",["root"]);var x=r(94655);let m=["className","component"],p=e=>{let{classes:t}=e;return(0,l.Z)({root:["root"]},h,t)},f=(0,o.ZP)("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(e,t)=>t.root})(()=>({padding:16,"&:last-child":{paddingBottom:24}}));var Z=s.forwardRef(function(e,t){let r=(0,d.i)({props:e,name:"MuiCardContent"}),{className:s,component:l="div"}=r,o=(0,i.Z)(r,m),u=(0,n.Z)({},r,{component:l}),c=p(u);return(0,x.jsx)(f,(0,n.Z)({as:l,className:(0,a.Z)(c.root,s),ownerState:u,ref:t},o))})},67337:function(e,t,r){"use strict";r.d(t,{Z:function(){return C}});var n=r(32324),i=r(81500),s=r(35106),a=r(70316),l=r(9049),o=r(65951),d=r(6014),u=r(14189),c=r(48442),h=r(8557),x=r(94655);let m=["className","component","disableGutters","fixed","maxWidth","classes"],p=(0,h.Z)(),f=(0,c.Z)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t[`maxWidth${(0,d.Z)(String(r.maxWidth))}`],r.fixed&&t.fixed,r.disableGutters&&t.disableGutters]}}),Z=e=>(0,u.Z)({props:e,name:"MuiContainer",defaultTheme:p}),g=(e,t)=>{let{classes:r,fixed:n,disableGutters:i,maxWidth:s}=e,a={root:["root",s&&`maxWidth${(0,d.Z)(String(s))}`,n&&"fixed",i&&"disableGutters"]};return(0,o.Z)(a,e=>(0,l.ZP)(t,e),r)};var v=r(38762),j=r(34519),b=r(28057),C=function(e={}){let{createStyledComponent:t=f,useThemeProps:r=Z,componentName:l="MuiContainer"}=e,o=t(({theme:e,ownerState:t})=>(0,i.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,r)=>{let n=e.breakpoints.values[r];return 0!==n&&(t[e.breakpoints.up(r)]={maxWidth:`${n}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:t})=>(0,i.Z)({},"xs"===t.maxWidth&&{[e.breakpoints.up("xs")]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},t.maxWidth&&"xs"!==t.maxWidth&&{[e.breakpoints.up(t.maxWidth)]:{maxWidth:`${e.breakpoints.values[t.maxWidth]}${e.breakpoints.unit}`}}));return s.forwardRef(function(e,t){let s=r(e),{className:d,component:u="div",disableGutters:c=!1,fixed:h=!1,maxWidth:p="lg"}=s,f=(0,n.Z)(s,m),Z=(0,i.Z)({},s,{component:u,disableGutters:c,fixed:h,maxWidth:p}),v=g(Z,l);return(0,x.jsx)(o,(0,i.Z)({as:u,ownerState:Z,className:(0,a.Z)(v.root,d),ref:t},f))})}({createStyledComponent:(0,j.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,t["maxWidth".concat((0,v.Z)(String(r.maxWidth)))],r.fixed&&t.fixed,r.disableGutters&&t.disableGutters]}}),useThemeProps:e=>(0,b.i)({props:e,name:"MuiContainer"})})},16945:function(e,t,r){"use strict";r.d(t,{V:function(){return s}});var n=r(11379),i=r(9049);function s(e){return(0,i.ZP)("MuiDivider",e)}let a=(0,n.Z)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);t.Z=a},85795:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return x}});var n=r(94655),i=r(74228),s=r(67337),a=r(7281),l=r(628),o=r(41565),d=r(31317),u=r(41261),c=r(85480),h=r(46725);function x(){let e=(0,i.useRouter)();return(0,n.jsx)(s.Z,{maxWidth:"sm",children:(0,n.jsx)(a.Z,{sx:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",py:4},children:(0,n.jsx)(l.Z,{sx:{width:"100%",maxWidth:500},children:(0,n.jsxs)(o.Z,{sx:{p:4},children:[(0,n.jsx)(d.Z,{variant:"h4",component:"h1",gutterBottom:!0,sx:{fontWeight:600,textAlign:"center",mb:3},children:"Create Account"}),(0,n.jsx)(d.Z,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",mb:4},children:"Sign up to start managing Minecraft servers"}),(0,n.jsx)(c.WS,{onSuccess:()=>{e.push("/dashboard")}}),(0,n.jsx)(a.Z,{sx:{mt:3,textAlign:"center"},children:(0,n.jsxs)(d.Z,{variant:"body2",color:"text.secondary",children:["Already have an account?"," ",(0,n.jsx)(u.Z,{component:h.default,href:"/login",underline:"hover",children:"Sign in"})]})})]})})})})}},85480:function(e,t,r){"use strict";r.d(t,{U0:function(){return m},WS:function(){return p},Ie:function(){return M}});var n=r(94655),i=r(35106),s=r(7281),a=r(81071),l=r(97436),o=r(52082),d=r(79983),u=r(30417),c=r(36848),h=r(554),x=r(6986);function m(e){let{onSuccess:t}=e,[r,m]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[Z,g]=(0,i.useState)(!1),[v,j]=(0,i.useState)({}),[b,C]=(0,i.useState)(null),[y,w]=(0,i.useState)(!1),S=()=>{let e={};return r?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)||(e.email="Invalid email address"):e.email="Email is required",p||(e.password="Password is required"),j(e),0===Object.keys(e).length},W=async e=>{if(e.preventDefault(),C(null),S()){w(!0);try{let e=await x.cg.email({email:r,password:p});if(e.error){C(e.error.message||"Invalid credentials"),w(!1);return}t&&t()}catch(e){C("An unexpected error occurred. Please try again."),w(!1)}}};return(0,n.jsxs)(s.Z,{component:"form",onSubmit:W,sx:{display:"flex",flexDirection:"column",gap:2},children:[b&&(0,n.jsx)(a.Z,{severity:"error",onClose:()=>C(null),children:b}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:r,onChange:e=>m(e.target.value),error:!!v.email,helperText:v.email,disabled:y,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:Z?"text":"password",value:p,onChange:e=>f(e.target.value),error:!!v.password,helperText:v.password,disabled:y,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(d.Z,{"aria-label":"toggle password visibility",onClick:()=>{g(!Z)},edge:"end",children:Z?(0,n.jsx)(c.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:y,fullWidth:!0,size:"large",children:y?"Signing in...":"Sign In"})]})}function p(e){let{onSuccess:t}=e,[r,m]=(0,i.useState)(""),[p,f]=(0,i.useState)(""),[Z,g]=(0,i.useState)(""),[v,j]=(0,i.useState)(""),[b,C]=(0,i.useState)(!1),[y,w]=(0,i.useState)(!1),[S,W]=(0,i.useState)({}),[P,k]=(0,i.useState)(null),[M,R]=(0,i.useState)(!1),z=()=>{let e={};return r||(e.name="Name is required"),p?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(p)||(e.email="Invalid email address"):e.email="Email is required",Z?Z.length<8&&(e.password="Password must be at least 8 characters"):e.password="Password is required",v?Z!==v&&(e.confirmPassword="Passwords do not match"):e.confirmPassword="Please confirm your password",W(e),0===Object.keys(e).length},A=async e=>{if(e.preventDefault(),k(null),z()){R(!0);try{let e=await x.y1.email({email:p,password:Z,name:r});if(e.error){k(e.error.message||"Registration failed"),R(!1);return}t&&t()}catch(e){k("An unexpected error occurred. Please try again."),R(!1)}}};return(0,n.jsxs)(s.Z,{component:"form",onSubmit:A,sx:{display:"flex",flexDirection:"column",gap:2},children:[P&&(0,n.jsx)(a.Z,{severity:"error",onClose:()=>k(null),children:P}),(0,n.jsx)(l.Z,{label:"Name",type:"text",value:r,onChange:e=>m(e.target.value),error:!!S.name,helperText:S.name,disabled:M,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Email",type:"email",value:p,onChange:e=>f(e.target.value),error:!!S.email,helperText:S.email,disabled:M,fullWidth:!0,required:!0}),(0,n.jsx)(l.Z,{label:"Password",type:b?"text":"password",value:Z,onChange:e=>g(e.target.value),error:!!S.password,helperText:S.password,disabled:M,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(d.Z,{"aria-label":"toggle password visibility",onClick:()=>{C(!b)},edge:"end",children:b?(0,n.jsx)(c.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(l.Z,{label:"Confirm Password",type:y?"text":"password",value:v,onChange:e=>j(e.target.value),error:!!S.confirmPassword,helperText:S.confirmPassword,disabled:M,fullWidth:!0,required:!0,InputProps:{endAdornment:(0,n.jsx)(o.Z,{position:"end",children:(0,n.jsx)(d.Z,{"aria-label":"toggle password visibility",onClick:()=>{w(!y)},edge:"end",children:y?(0,n.jsx)(c.Z,{}):(0,n.jsx)(h.Z,{})})})}}),(0,n.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:M,fullWidth:!0,size:"large",children:M?"Creating account...":"Sign Up"})]})}var f=r(74228),Z=r(93017),g=r(86702),v=r(88812),j=r(31317),b=r(25333),C=r(69123),y=r(7178),w=r(17820),S=r(73424),W=r(25169),P=r(41094),k=r(78319);function M(){let e=(0,f.useRouter)(),{data:t,isPending:r}=(0,x.kP)(),[a,l]=(0,i.useState)(null),o=()=>{l(null)},c=async()=>{o(),await (0,x.w7)(),e.push("/login")};if(r)return(0,n.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsx)(Z.Z,{size:24})});if(!(null==t?void 0:t.user))return(0,n.jsx)(u.Z,{variant:"contained",color:"primary",onClick:()=>{e.push("/login")},children:"Sign In"});let{user:h}=t,m=((e,t)=>{if(e){let t=e.split(" ");return t.length>=2?"".concat(t[0][0]).concat(t[1][0]).toUpperCase():e.substring(0,2).toUpperCase()}return t?t[0].toUpperCase():"?"})(h.name,h.email);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.Z,{onClick:e=>{l(e.currentTarget)},"aria-label":"user menu",children:(0,n.jsx)(g.Z,{sx:{bgcolor:"primary.main"},children:m})}),(0,n.jsxs)(v.Z,{anchorEl:a,open:!!a,onClose:o,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},sx:{mt:1},children:[(0,n.jsxs)(s.Z,{sx:{px:2,py:1.5,minWidth:200},children:[(0,n.jsx)(j.Z,{variant:"subtitle1",fontWeight:"600",children:h.name||"User"}),(0,n.jsx)(j.Z,{variant:"body2",color:"text.secondary",children:h.email}),"admin"===h.role&&(0,n.jsx)(b.Z,{label:"Admin",size:"small",color:"primary",sx:{mt:1}})]}),(0,n.jsx)(C.Z,{}),"admin"===h.role&&(0,n.jsxs)(y.Z,{onClick:()=>{o(),e.push("/admin/users")},children:[(0,n.jsx)(w.Z,{children:(0,n.jsx)(W.Z,{fontSize:"small"})}),(0,n.jsx)(S.Z,{children:"Users"})]}),(0,n.jsxs)(y.Z,{onClick:()=>{o(),e.push("/settings")},children:[(0,n.jsx)(w.Z,{children:(0,n.jsx)(P.Z,{fontSize:"small"})}),(0,n.jsx)(S.Z,{children:"Settings"})]}),(0,n.jsxs)(y.Z,{onClick:c,children:[(0,n.jsx)(w.Z,{children:(0,n.jsx)(k.Z,{fontSize:"small"})}),(0,n.jsx)(S.Z,{children:"Logout"})]})]})]})}},6986:function(e,t,r){"use strict";r.d(t,{Cp:function(){return h},Nq:function(){return c},cg:function(){return l},kP:function(){return u},w7:function(){return o},y1:function(){return d},zB:function(){return x}});var n=r(77054),i=r(61648),s=r(35016);let a=(0,n.X)({baseURL:s.env.NEXT_PUBLIC_BETTER_AUTH_URL||"",plugins:[(0,i.zB)()]}),{signIn:l,signOut:o,signUp:d,useSession:u,updateUser:c,changePassword:h}=a,x=a.admin}},function(e){e.O(0,[6812,9760,5004,7296,7436,1071,2542,55,4219,9097,3669,2757,1744],function(){return e(e.s=24100)}),_N_E=e.O()}]);
|