@cobaltcore-dev/aurora 0.15.0 → 0.17.0
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/dist/client/AuthProvider-BQSJk5R4.mjs +63 -0
- package/dist/client/AuthProvider-BQSJk5R4.mjs.map +1 -0
- package/dist/client/{FloatingIpActionModals-DWS9UO6o.mjs → FloatingIpActionModals-BUc6yaQ8.mjs} +2 -2
- package/dist/client/{FloatingIpActionModals-DWS9UO6o.mjs.map → FloatingIpActionModals-BUc6yaQ8.mjs.map} +1 -1
- package/dist/client/{ImageToastNotifications-B2BIyk1P.mjs → ImageToastNotifications-Dz-VsSwl.mjs} +2 -2
- package/dist/client/{ImageToastNotifications-B2BIyk1P.mjs.map → ImageToastNotifications-Dz-VsSwl.mjs.map} +1 -1
- package/dist/client/StatusError-CLB026fg.mjs +39 -0
- package/dist/client/StatusError-CLB026fg.mjs.map +1 -0
- package/dist/client/{_auth-DnImOqR-.mjs → _auth-6uste_10.mjs} +2 -2
- package/dist/client/{_auth-DnImOqR-.mjs.map → _auth-6uste_10.mjs.map} +1 -1
- package/dist/client/{_flavorId-DGYrR9ri.mjs → _flavorId-C6RJfhh8.mjs} +5 -4
- package/dist/client/{_flavorId-DGYrR9ri.mjs.map → _flavorId-C6RJfhh8.mjs.map} +1 -1
- package/dist/client/_flavorId-Cx5tf2KQ.mjs +32 -0
- package/dist/client/_flavorId-Cx5tf2KQ.mjs.map +1 -0
- package/dist/client/{_floatingIpId-uQHRPZPg.mjs → _floatingIpId-B0l4YNQc.mjs} +2 -2
- package/dist/client/{_floatingIpId-uQHRPZPg.mjs.map → _floatingIpId-B0l4YNQc.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-DnSQdKNp2.mjs → _floatingIpId-cpueAc2F2.mjs} +4 -4
- package/dist/client/{_floatingIpId-DnSQdKNp2.mjs.map → _floatingIpId-cpueAc2F2.mjs.map} +1 -1
- package/dist/client/{_imageId-BFqkCs9I.mjs → _imageId-Bv711w1n.mjs} +2 -2
- package/dist/client/{_imageId-BFqkCs9I.mjs.map → _imageId-Bv711w1n.mjs.map} +1 -1
- package/dist/client/{_pcaId-B1nd5Nm5.mjs → _pcaId-CPLb5J6d.mjs} +4 -4
- package/dist/client/{_pcaId-B1nd5Nm5.mjs.map → _pcaId-CPLb5J6d.mjs.map} +1 -1
- package/dist/client/{_pcaId-CmcN3vRn.mjs → _pcaId-Hx_72pnp.mjs} +2 -2
- package/dist/client/{_pcaId-CmcN3vRn.mjs.map → _pcaId-Hx_72pnp.mjs.map} +1 -1
- package/dist/client/_projectId-BOaPmCuz.mjs +46 -0
- package/dist/client/_projectId-BOaPmCuz.mjs.map +1 -0
- package/dist/client/{_projectId-CX6OtON6.mjs → _projectId-fEA6fnFQ.mjs} +2 -2
- package/dist/client/{_projectId-CX6OtON6.mjs.map → _projectId-fEA6fnFQ.mjs.map} +1 -1
- package/dist/client/_projectId-qvINx3Dx.mjs +25 -0
- package/dist/client/_projectId-qvINx3Dx.mjs.map +1 -0
- package/dist/client/{_securityGroupId-Wa7Be5pg.mjs → _securityGroupId-B-RYPDDc.mjs} +2 -2
- package/dist/client/{_securityGroupId-Wa7Be5pg.mjs.map → _securityGroupId-B-RYPDDc.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-BMzod4iC.mjs → _securityGroupId-BC3KC6h5.mjs} +3 -3
- package/dist/client/{_securityGroupId-BMzod4iC.mjs.map → _securityGroupId-BC3KC6h5.mjs.map} +1 -1
- package/dist/client/{_storageType-Dh6osG7k.mjs → _storageType-MgntkZb6.mjs} +976 -1025
- package/dist/client/_storageType-MgntkZb6.mjs.map +1 -0
- package/dist/client/{_storageType-B1iNA96q.mjs → _storageType-ZFnIALny.mjs} +2 -2
- package/dist/client/{_storageType-B1iNA96q.mjs.map → _storageType-ZFnIALny.mjs.map} +1 -1
- package/dist/client/{aurora-6RsAZtnz.mjs → aurora-AAy9BJE7.mjs} +2 -2
- package/dist/client/{aurora-6RsAZtnz.mjs.map → aurora-AAy9BJE7.mjs.map} +1 -1
- package/dist/client/{constants-D8Zrv7HP.mjs → constants-BAqOfvr0.mjs} +2 -2
- package/dist/client/{constants-D8Zrv7HP.mjs.map → constants-BAqOfvr0.mjs.map} +1 -1
- package/dist/client/{floatingips-D7D6iFhe.mjs → floatingips-Bkk5-I_p.mjs} +3 -3
- package/dist/client/{floatingips-D7D6iFhe.mjs.map → floatingips-Bkk5-I_p.mjs.map} +1 -1
- package/dist/client/{hooks-CMgoYcDG.mjs → hooks-CnX5q5wN.mjs} +1 -1
- package/dist/client/{images-N0oXygX-.mjs → images-DBLfzuJA.mjs} +4 -4
- package/dist/client/{images-N0oXygX-.mjs.map → images-DBLfzuJA.mjs.map} +1 -1
- package/dist/client/{images-DEXWCufm.mjs → images-FE3vJ6pP.mjs} +2 -2
- package/dist/client/{images-DEXWCufm.mjs.map → images-FE3vJ6pP.mjs.map} +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +49 -43
- package/dist/client/index.js.map +1 -1
- package/dist/client/{objects-BdS0ac84.mjs → objects-Deo1Ic1A.mjs} +2053 -2095
- package/dist/client/objects-Deo1Ic1A.mjs.map +1 -0
- package/dist/client/{objects--igvFrFM.mjs → objects-DpgXMFrG.mjs} +2 -2
- package/dist/client/{objects--igvFrFM.mjs.map → objects-DpgXMFrG.mjs.map} +1 -1
- package/dist/client/{pca-D0mKfROV.mjs → pca-BkAJ5jvX.mjs} +2 -2
- package/dist/client/{pca-D0mKfROV.mjs.map → pca-BkAJ5jvX.mjs.map} +1 -1
- package/dist/client/{pca-CXmRq6RN.mjs → pca-P0ud1PA9.mjs} +4 -4
- package/dist/client/{pca-CXmRq6RN.mjs.map → pca-P0ud1PA9.mjs.map} +1 -1
- package/dist/client/{securitygroups-CEAGUVYa.mjs → securitygroups-D14Jv1GQ.mjs} +2 -2
- package/dist/client/{securitygroups-CEAGUVYa.mjs.map → securitygroups-D14Jv1GQ.mjs.map} +1 -1
- package/package.json +2 -4
- package/dist/client/AuthProvider-DZqOvceF.mjs +0 -64
- package/dist/client/AuthProvider-DZqOvceF.mjs.map +0 -1
- package/dist/client/_flavorId-CSEkiIo3.mjs +0 -67
- package/dist/client/_flavorId-CSEkiIo3.mjs.map +0 -1
- package/dist/client/_projectId-B2cvskLV.mjs +0 -8
- package/dist/client/_projectId-B2cvskLV.mjs.map +0 -1
- package/dist/client/_projectId-Dn_GjZnp.mjs +0 -27
- package/dist/client/_projectId-Dn_GjZnp.mjs.map +0 -1
- package/dist/client/_storageType-Dh6osG7k.mjs.map +0 -1
- package/dist/client/objects-BdS0ac84.mjs.map +0 -1
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Y as e, Z as t, ut as n, y as r } from "./build-DgeVmENN.mjs";
|
|
2
|
-
import { t as i } from "./helpers-1PpYf-fC.mjs";
|
|
3
|
-
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
-
import { createFileRoute as s, lazyRouteComponent as c, redirect as l } from "@tanstack/react-router";
|
|
5
|
-
import { Trans as u } from "@lingui/react";
|
|
6
|
-
//#region src/client/components/Error/StatusError.tsx
|
|
7
|
-
function d({ message: i, statusCode: s, onHomeClick: c, onBackClick: l, title: d, reset: f }) {
|
|
8
|
-
return /*#__PURE__*/ o(t, {
|
|
9
|
-
className: "mx-auto flex min-h-full max-w-3xl flex-col items-center justify-center px-6 py-12 sm:px-12 md:px-20",
|
|
10
|
-
children: [
|
|
11
|
-
s && /*#__PURE__*/ a("div", {
|
|
12
|
-
className: "text-theme-high text-6xl font-bold",
|
|
13
|
-
children: s
|
|
14
|
-
}),
|
|
15
|
-
/*#__PURE__*/ a(e, { children: d }),
|
|
16
|
-
/*#__PURE__*/ a("p", { children: i }),
|
|
17
|
-
(l || c || f) && /*#__PURE__*/ o(n, {
|
|
18
|
-
className: "mt-6",
|
|
19
|
-
children: [
|
|
20
|
-
l && /*#__PURE__*/ a(r, {
|
|
21
|
-
onClick: l,
|
|
22
|
-
variant: "primary",
|
|
23
|
-
children: /*#__PURE__*/ a(u, { id: "iH8pgl" })
|
|
24
|
-
}),
|
|
25
|
-
c && /*#__PURE__*/ a(r, {
|
|
26
|
-
onClick: c,
|
|
27
|
-
children: /*#__PURE__*/ a(u, { id: "i0qMbr" })
|
|
28
|
-
}),
|
|
29
|
-
f && /*#__PURE__*/ a(r, {
|
|
30
|
-
onClick: f,
|
|
31
|
-
children: /*#__PURE__*/ a(u, { id: "qJb6G2" })
|
|
32
|
-
})
|
|
33
|
-
]
|
|
34
|
-
})
|
|
35
|
-
]
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
var f = s("/_auth/projects/$projectId/compute/flavors/$flavorId")({
|
|
39
|
-
staticData: {
|
|
40
|
-
section: "compute",
|
|
41
|
-
service: "flavors",
|
|
42
|
-
analytics: { name: "compute.flavors.detail" },
|
|
43
|
-
isDetail: !0,
|
|
44
|
-
sectionCrumb: { labelKey: "Compute" },
|
|
45
|
-
crumb: {
|
|
46
|
-
labelKey: "Flavors",
|
|
47
|
-
to: "/projects/$projectId/compute/flavors"
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
loader: async ({ context: e, params: t }) => ({ flavorName: (await e.trpcClient?.compute.getFlavorById.query({
|
|
51
|
-
project_id: t.projectId,
|
|
52
|
-
flavorId: t.flavorId
|
|
53
|
-
}))?.name ?? null }),
|
|
54
|
-
head: ({ loaderData: e }) => ({ meta: [{ title: e?.flavorName ?? "Flavor Details" }] }),
|
|
55
|
-
component: c(() => import("./_flavorId-DGYrR9ri.mjs"), "component"),
|
|
56
|
-
beforeLoad: async ({ context: e, params: t }) => {
|
|
57
|
-
let { trpcClient: n } = e, { projectId: r } = t, a = i(await n?.auth.getAvailableServices.query() || []);
|
|
58
|
-
if (!a.flavor && !a.compute) throw l({
|
|
59
|
-
to: "/projects/$projectId",
|
|
60
|
-
params: { projectId: r }
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
//#endregion
|
|
65
|
-
export { d as n, f as t };
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=_flavorId-CSEkiIo3.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_flavorId-CSEkiIo3.mjs","names":["Button","ButtonRow","Container","ContentHeading","StatusError","message","statusCode","onHomeClick","onBackClick","title","reset","className","div","p","onClick","variant","createFileRoute","redirect","getServiceIndex","Route","staticData","section","service","analytics","name","isDetail","sectionCrumb","labelKey","crumb","to","RouteInfo","loader","context","params","flavor","trpcClient","compute","getFlavorById","query","project_id","projectId","flavorId","flavorName","head","loaderData","meta","title","component","lazyRouteComponent","$$splitComponentImporter","beforeLoad","availableServices","auth","getAvailableServices","serviceIndex"],"sources":["../../src/client/components/Error/StatusError.tsx","../../src/client/routes/_auth/projects/$projectId/compute/flavors/$flavorId.tsx"],"sourcesContent":["import { Button, ButtonRow, Container, ContentHeading } from \"@cloudoperators/juno-ui-components/index\"\nimport { Trans } from \"@lingui/react/macro\"\n\ninterface StatusErrorProps {\n message: string\n statusCode?: number\n onHomeClick?: () => void\n onBackClick?: () => void\n title: string\n showHeader?: boolean\n reset?: () => void\n}\n\nexport function StatusError({ message, statusCode, onHomeClick, onBackClick, title, reset }: StatusErrorProps) {\n return (\n <Container className=\"mx-auto flex min-h-full max-w-3xl flex-col items-center justify-center px-6 py-12 sm:px-12 md:px-20\">\n {statusCode && <div className=\"text-theme-high text-6xl font-bold\">{statusCode}</div>}\n <ContentHeading>{title}</ContentHeading>\n <p>{message}</p>\n {(onBackClick || onHomeClick || reset) && (\n <ButtonRow className=\"mt-6\">\n {onBackClick && (\n <Button onClick={onBackClick} variant=\"primary\">\n <Trans>Back</Trans>\n </Button>\n )}\n {onHomeClick && (\n <Button onClick={onHomeClick}>\n <Trans>Home</Trans>\n </Button>\n )}\n\n {reset && (\n <Button onClick={reset}>\n <Trans>Try Again</Trans>\n </Button>\n )}\n </ButtonRow>\n )}\n </Container>\n )\n}\n","import {\n Button,\n ButtonRow,\n Stack,\n Spinner,\n PopupMenu,\n PopupMenuToggle,\n PopupMenuOptions,\n PopupMenuItem,\n} from \"@cloudoperators/juno-ui-components/index\"\nimport { createFileRoute, redirect, useNavigate, useParams } from \"@tanstack/react-router\"\nimport type { RouteInfo } from \"@/client/routes/routeInfo\"\nimport { Trans, useLingui } from \"@lingui/react/macro\"\nimport { getServiceIndex } from \"@/server/Authentication/helpers\"\nimport { trpcReact } from \"@/client/trpcClient\"\nimport { FlavorDetailsView } from \"./-components/FlavorDetailsView\"\nimport { StatusError } from \"@/client/components/Error/StatusError\"\nimport { useErrorTranslation } from \"@/client/utils/useErrorTranslation\"\nimport { EditSpecModal } from \"../-components/Flavors/-components/EditSpecModal\"\nimport { ManageAccessModal } from \"../-components/Flavors/-components/ManageAccessModal\"\nimport { DeleteFlavorModal } from \"../-components/Flavors/-components/DeleteFlavorModal\"\nimport { useModal } from \"@/client/utils/useModal\"\nimport { ContentHeader } from \"@/client/components/ContentHeader/ContentHeader\"\n\nexport const Route = createFileRoute(\"/_auth/projects/$projectId/compute/flavors/$flavorId\")({\n staticData: {\n section: \"compute\",\n service: \"flavors\",\n analytics: {\n name: \"compute.flavors.detail\",\n },\n isDetail: true,\n sectionCrumb: { labelKey: \"Compute\" },\n crumb: { labelKey: \"Flavors\", to: \"/projects/$projectId/compute/flavors\" },\n } satisfies RouteInfo,\n loader: async ({ context, params }) => {\n const flavor = await context.trpcClient?.compute.getFlavorById.query({\n project_id: params.projectId,\n flavorId: params.flavorId,\n })\n return { flavorName: flavor?.name ?? null }\n },\n head: ({ loaderData }) => ({\n meta: [{ title: loaderData?.flavorName ?? \"Flavor Details\" }],\n }),\n component: RouteComponent,\n beforeLoad: async ({ context, params }) => {\n const { trpcClient } = context\n const { projectId } = params\n\n const availableServices = (await trpcClient?.auth.getAvailableServices.query()) || []\n\n const serviceIndex = getServiceIndex(availableServices)\n\n if (!serviceIndex[\"flavor\"] && !serviceIndex[\"compute\"]) {\n throw redirect({\n to: \"/projects/$projectId\",\n params: { projectId },\n })\n }\n },\n})\n\nfunction RouteComponent() {\n const { projectId, flavorId } = useParams({\n from: \"/_auth/projects/$projectId/compute/flavors/$flavorId\",\n })\n const { trpcClient } = Route.useRouteContext()\n const navigate = useNavigate()\n const { t } = useLingui()\n const { translateError, isRetryableError } = useErrorTranslation()\n\n const {\n data: flavor,\n status,\n error,\n refetch,\n } = trpcReact.compute.getFlavorById.useQuery({\n project_id: projectId,\n flavorId,\n })\n\n const { data: permissionsData } = trpcReact.compute.canUser.useQuery({\n project_id: projectId,\n permission: [\n \"flavors:delete\",\n \"flavors:list_projects\",\n \"flavor_specs:create\",\n \"flavor_specs:delete\",\n \"flavor_specs:list\",\n ],\n })\n\n const canDeleteFlavor = permissionsData?.[0] ?? false\n const canManageAccess = permissionsData?.[1] ?? false\n const canManageSpecs = (permissionsData?.[2] ?? false) || (permissionsData?.[3] ?? false)\n const canListSpecs = permissionsData?.[4] ?? false\n\n const [specModalOpen, toggleSpecModal] = useModal()\n const [accessModalOpen, toggleAccessModal] = useModal()\n const [deleteModalOpen, toggleDeleteModal] = useModal()\n\n const handleBack = () => {\n navigate({\n to: \"/projects/$projectId/compute/flavors\",\n params: { projectId },\n })\n }\n\n const handleHome = () => {\n navigate({\n to: \"/projects/$projectId\",\n params: { projectId },\n })\n }\n\n const handleRetry = () => {\n refetch()\n }\n\n if (status === \"pending\") {\n return (\n <Stack className=\"fixed inset-0\" distribution=\"center\" alignment=\"center\" direction=\"vertical\">\n <Spinner variant=\"primary\" size=\"large\" className=\"mb-2\" />\n <Trans>Loading Flavor Details...</Trans>\n </Stack>\n )\n }\n\n if (status === \"error\") {\n const errorCode = error?.message || \"UNKNOWN_ERROR\"\n const translatedError = translateError(errorCode)\n const canRetry = isRetryableError(errorCode)\n\n const getStatusCode = (code: string): number | undefined => {\n if (code.includes(\"UNAUTHORIZED\")) return 401\n if (code.includes(\"FORBIDDEN\")) return 403\n if (code.includes(\"NOT_FOUND\")) return 404\n if (code.includes(\"SERVER_ERROR\")) return 500\n return undefined\n }\n\n return (\n <StatusError\n message={translatedError}\n statusCode={getStatusCode(errorCode)}\n title={t`Error Loading Flavor`}\n onBackClick={handleBack}\n onHomeClick={handleHome}\n reset={canRetry ? handleRetry : undefined}\n />\n )\n }\n\n if (!flavor) {\n return (\n <StatusError\n message={t`The requested flavor could not be found. It may have been deleted or you may not have access to it.`}\n statusCode={404}\n title={t`Flavor Not Found`}\n onBackClick={handleBack}\n onHomeClick={handleHome}\n />\n )\n }\n\n const isPublicFlavor = flavor[\"os-flavor-access:is_public\"] !== false\n const hasMoreActions = canManageAccess || canDeleteFlavor || canManageSpecs || canListSpecs\n\n const headerActions = hasMoreActions ? (\n <ButtonRow>\n <PopupMenu>\n <PopupMenuToggle as=\"div\">\n <Button icon=\"moreVert\">\n <Trans>More Actions</Trans>\n </Button>\n </PopupMenuToggle>\n <PopupMenuOptions>\n {(canManageSpecs || canListSpecs) && (\n <PopupMenuItem label={canManageSpecs ? t`Edit Metadata` : t`Metadata`} onClick={toggleSpecModal} />\n )}\n {canManageAccess && (\n <PopupMenuItem label={t`Manage Access`} onClick={toggleAccessModal} disabled={isPublicFlavor} />\n )}\n {canDeleteFlavor && <PopupMenuItem label={t`Delete Flavor`} onClick={toggleDeleteModal} />}\n </PopupMenuOptions>\n </PopupMenu>\n </ButtonRow>\n ) : undefined\n\n return (\n <>\n <ContentHeader title={flavor.name} projectId={projectId} actions={headerActions} />\n <Stack direction=\"vertical\">\n <FlavorDetailsView flavor={flavor} />\n </Stack>\n\n {trpcClient && (\n <>\n {specModalOpen && (\n <EditSpecModal\n client={trpcClient}\n isOpen={specModalOpen}\n onClose={toggleSpecModal}\n project={projectId}\n flavor={flavor}\n canEdit={canManageSpecs}\n />\n )}\n\n {accessModalOpen && (\n <ManageAccessModal\n client={trpcClient}\n isOpen={accessModalOpen}\n onClose={toggleAccessModal}\n project={projectId}\n flavor={flavor}\n />\n )}\n\n {deleteModalOpen && (\n <DeleteFlavorModal\n client={trpcClient}\n isOpen={deleteModalOpen}\n onClose={toggleDeleteModal}\n project={projectId}\n flavor={flavor}\n onSuccess={handleBack}\n />\n )}\n </>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;AAaA,SAAgBI,EAAY,EAAEC,YAASC,eAAYC,gBAAaC,gBAAaC,UAAOC,YAAyB;CAC3G,OACE,gBAACR,GAAAA;EAAUS,WAAU;;GAClBL,KAAc,gBAACM,OAAAA;IAAID,WAAU;cAAsCL;;GACpE,gBAACH,GAAAA,EAAAA,UAAgBM,EAAAA,CAAAA;GACjB,gBAACI,KAAAA,EAAAA,UAAGR,EAAAA,CAAAA;IACFG,KAAeD,KAAeG,MAC9B,gBAACT,GAAAA;IAAUU,WAAU;;KAClBH,KACC,gBAACR,GAAAA;MAAOc,SAASN;MAAaO,SAAQ;gBACpC,gBAAA,GAAA,EAAA,IAAA,SAAA,CAAA;;KAGHR,KACC,gBAACP,GAAAA;MAAOc,SAASP;gBACf,gBAAA,GAAA,EAAA,IAAA,SAAA,CAAA;;KAIHG,KACC,gBAACV,GAAAA;MAAOc,SAASJ;gBACf,gBAAA,GAAA,EAAA,IAAA,SAAA,CAAA;;;;;;AAOd;ACjBA,IAAaS,IAAQH,EAAgB,sDAAA,EAAwD;CAC3FI,YAAY;EACVC,SAAS;EACTC,SAAS;EACTC,WAAW,EACTC,MAAM,yBACR;EACAC,UAAU;EACVC,cAAc,EAAEC,UAAU,UAAU;EACpCC,OAAO;GAAED,UAAU;GAAWE,IAAI;EAAuC;CAC3E;CACAE,QAAQ,OAAO,EAAEC,YAASC,iBAKjB,EAAES,aAAYR,MAJAF,EAAQG,YAAYC,QAAQC,cAAcC,MAAM;EACnEC,YAAYN,EAAOO;EACnBC,UAAUR,EAAOQ;CACnB,CAAA,IAC6BjB,QAAQ,KAAK;CAE5CmB,OAAO,EAAEC,qBAAkB,EACzBC,MAAM,CAAC,EAAEC,OAAOF,GAAYF,cAAc,iBAAiB,CAAA,EAC7D;CACAK,WAASC,4CAAA,WAAA;CACTE,YAAY,OAAO,EAAElB,YAASC,gBAAQ;EACpC,IAAM,EAAEE,kBAAeH,GACjB,EAAEQ,iBAAcP,GAIhBqB,IAAepC,EAFK,MAAOiB,GAAYiB,KAAKC,qBAAqBf,MAAAA,KAAY,CAAA,CAE9Ca;EAErC,IAAI,CAACG,EAAa,UAAa,CAACA,EAAa,SAC3C,MAAMrC,EAAS;GACbY,IAAI;GACJI,QAAQ,EAAEO,aAAU;EACtB,CAAA;CAEJ;AACF,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./RouteError-BmZRk_ss.mjs";
|
|
2
|
-
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
-
//#region src/client/routes/_auth/projects/$projectId.tsx?tsr-split=errorComponent
|
|
4
|
-
var n = ({ error: n }) => /*#__PURE__*/ t(e, { error: n });
|
|
5
|
-
//#endregion
|
|
6
|
-
export { n as errorComponent };
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=_projectId-B2cvskLV.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_projectId-B2cvskLV.mjs","names":["RouteError","Route","SplitErrorComponent","error","errorComponent"],"sources":["../../src/client/routes/_auth/projects/$projectId.tsx?tsr-split=errorComponent"],"sourcesContent":["import { createFileRoute, Outlet, useLoaderData, useRouteContext } from \"@tanstack/react-router\"\nimport { AppShell, Container, Stack } from \"@cloudoperators/juno-ui-components\"\nimport { SideNavBar } from \"@/client/routes/_auth/projects/-components/SideNavBar\"\nimport { buildNavSections } from \"@/client/routes/_auth/projects/-components/buildNavSections\"\nimport { ProjectInfoBox } from \"@/client/components/ProjectView/ProjectInfoBox\"\nimport { RouteError } from \"@/client/components/Error/RouteError\"\nimport { useMemo } from \"react\"\n\nexport const Route = createFileRoute(\"/_auth/projects/$projectId\")({\n component: RouteComponent,\n errorComponent: ({ error }) => {\n return <RouteError error={error} />\n },\n loader: async (options) => {\n const { context, params } = options\n const data = await context.trpcClient?.auth.setCurrentScope.mutate({\n type: \"project\",\n projectId: params.projectId || \"\",\n })\n\n const [availableServices, projects] = await Promise.all([\n context.trpcClient?.auth.getAvailableServices.query(),\n context.trpcClient?.project.getAuthProjects.query().catch(() => null),\n ])\n\n const accountId = data?.domain?.id || \"\"\n const description = projects?.find((p) => p.id === params.projectId)?.description ?? null\n\n return {\n trpcClient: context.trpcClient,\n crumbDomain: { path: `/projects`, name: data?.domain?.name },\n crumbProject: data?.project,\n availableServices,\n accountId,\n projectId: params.projectId,\n description,\n }\n },\n})\n\nfunction RouteComponent() {\n const { availableServices, projectId, crumbProject, crumbDomain } = useLoaderData({ from: Route.id })\n const { enabledServices } = useRouteContext({ strict: false })\n\n const sections = useMemo(\n () => buildNavSections(projectId, availableServices!, enabledServices),\n [projectId, availableServices, enabledServices]\n )\n\n return (\n <AppShell\n embedded\n sideNavigation={\n <SideNavBar\n sections={sections}\n projectId={projectId}\n projectName={crumbProject?.name || projectId}\n domainName={crumbDomain?.name}\n />\n }\n className=\"h-min-screen\"\n >\n <Container>\n <Stack direction=\"vertical\" distribution=\"start\" alignment=\"stretch\" className=\"xl:flex-row\" gap=\"6\">\n {/* Main content area */}\n <div className=\"min-w-0 flex-1\">\n <ProjectInfoBox\n projectInfo={{\n id: projectId,\n name: crumbProject?.name || projectId,\n domain: crumbProject?.domain,\n }}\n />\n <Outlet />\n </div>\n </Stack>\n </Container>\n </AppShell>\n )\n}\n"],"mappings":";;;AAKiE,IAAAE,KAK9C,EAAEC,eACV,gBAAC,GAAA,EAAkBA,SAAAA,CAAAA"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { createFileRoute as e, lazyRouteComponent as t } from "@tanstack/react-router";
|
|
2
|
-
var n = e("/_auth/projects/$projectId")({
|
|
3
|
-
component: t(() => import("./_projectId-CX6OtON6.mjs"), "component"),
|
|
4
|
-
errorComponent: t(() => import("./_projectId-B2cvskLV.mjs"), "errorComponent"),
|
|
5
|
-
loader: async (e) => {
|
|
6
|
-
let { context: t, params: n } = e, r = await t.trpcClient?.auth.setCurrentScope.mutate({
|
|
7
|
-
type: "project",
|
|
8
|
-
projectId: n.projectId || ""
|
|
9
|
-
}), [i, a] = await Promise.all([t.trpcClient?.auth.getAvailableServices.query(), t.trpcClient?.project.getAuthProjects.query().catch(() => null)]), o = r?.domain?.id || "", s = a?.find((e) => e.id === n.projectId)?.description ?? null;
|
|
10
|
-
return {
|
|
11
|
-
trpcClient: t.trpcClient,
|
|
12
|
-
crumbDomain: {
|
|
13
|
-
path: "/projects",
|
|
14
|
-
name: r?.domain?.name
|
|
15
|
-
},
|
|
16
|
-
crumbProject: r?.project,
|
|
17
|
-
availableServices: i,
|
|
18
|
-
accountId: o,
|
|
19
|
-
projectId: n.projectId,
|
|
20
|
-
description: s
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
//#endregion
|
|
25
|
-
export { n as t };
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=_projectId-Dn_GjZnp.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_projectId-Dn_GjZnp.mjs","names":["createFileRoute","Route","component","lazyRouteComponent","$$splitComponentImporter","errorComponent","$$splitErrorComponentImporter","loader","options","context","params","data","trpcClient","auth","setCurrentScope","mutate","type","projectId","availableServices","projects","Promise","all","getAvailableServices","query","project","getAuthProjects","catch","accountId","domain","id","description","find","p","crumbDomain","path","name","crumbProject"],"sources":["../../src/client/routes/_auth/projects/$projectId.tsx"],"sourcesContent":["import { createFileRoute, Outlet, useLoaderData, useRouteContext } from \"@tanstack/react-router\"\nimport { AppShell, Container, Stack } from \"@cloudoperators/juno-ui-components\"\nimport { SideNavBar } from \"@/client/routes/_auth/projects/-components/SideNavBar\"\nimport { buildNavSections } from \"@/client/routes/_auth/projects/-components/buildNavSections\"\nimport { ProjectInfoBox } from \"@/client/components/ProjectView/ProjectInfoBox\"\nimport { RouteError } from \"@/client/components/Error/RouteError\"\nimport { useMemo } from \"react\"\n\nexport const Route = createFileRoute(\"/_auth/projects/$projectId\")({\n component: RouteComponent,\n errorComponent: ({ error }) => {\n return <RouteError error={error} />\n },\n loader: async (options) => {\n const { context, params } = options\n const data = await context.trpcClient?.auth.setCurrentScope.mutate({\n type: \"project\",\n projectId: params.projectId || \"\",\n })\n\n const [availableServices, projects] = await Promise.all([\n context.trpcClient?.auth.getAvailableServices.query(),\n context.trpcClient?.project.getAuthProjects.query().catch(() => null),\n ])\n\n const accountId = data?.domain?.id || \"\"\n const description = projects?.find((p) => p.id === params.projectId)?.description ?? null\n\n return {\n trpcClient: context.trpcClient,\n crumbDomain: { path: `/projects`, name: data?.domain?.name },\n crumbProject: data?.project,\n availableServices,\n accountId,\n projectId: params.projectId,\n description,\n }\n },\n})\n\nfunction RouteComponent() {\n const { availableServices, projectId, crumbProject, crumbDomain } = useLoaderData({ from: Route.id })\n const { enabledServices } = useRouteContext({ strict: false })\n\n const sections = useMemo(\n () => buildNavSections(projectId, availableServices!, enabledServices),\n [projectId, availableServices, enabledServices]\n )\n\n return (\n <AppShell\n embedded\n sideNavigation={\n <SideNavBar\n sections={sections}\n projectId={projectId}\n projectName={crumbProject?.name || projectId}\n domainName={crumbDomain?.name}\n />\n }\n className=\"h-min-screen\"\n >\n <Container>\n <Stack direction=\"vertical\" distribution=\"start\" alignment=\"stretch\" className=\"xl:flex-row\" gap=\"6\">\n {/* Main content area */}\n <div className=\"min-w-0 flex-1\">\n <ProjectInfoBox\n projectInfo={{\n id: projectId,\n name: crumbProject?.name || projectId,\n domain: crumbProject?.domain,\n }}\n />\n <Outlet />\n </div>\n </Stack>\n </Container>\n </AppShell>\n )\n}\n"],"mappings":";AAQA,IAAaC,IAAQD,EAAgB,4BAAA,EAA8B;CACjEE,WAASC,6CAAA,WAAA;CACTE,gBAAcF,6CAAA,gBAAA;CAGdI,QAAQ,OAAOC,MAAAA;EACb,IAAM,EAAEC,YAASC,cAAWF,GACtBG,IAAO,MAAMF,EAAQG,YAAYC,KAAKC,gBAAgBC,OAAO;GACjEC,MAAM;GACNC,WAAWP,EAAOO,aAAa;EACjC,CAAA,GAEM,CAACC,GAAmBC,KAAY,MAAMC,QAAQC,IAAI,CACtDZ,EAAQG,YAAYC,KAAKS,qBAAqBC,MAAAA,GAC9Cd,EAAQG,YAAYY,QAAQC,gBAAgBF,MAAAA,EAAQG,YAAY,IAAA,CAAA,CACjE,GAEKC,IAAYhB,GAAMiB,QAAQC,MAAM,IAChCC,IAAcX,GAAUY,MAAMC,MAAMA,EAAEH,OAAOnB,EAAOO,SAAS,GAAGa,eAAe;EAErF,OAAO;GACLlB,YAAYH,EAAQG;GACpBqB,aAAa;IAAEC,MAAM;IAAaC,MAAMxB,GAAMiB,QAAQO;GAAK;GAC3DC,cAAczB,GAAMa;GACpBN;GACAS;GACAV,WAAWP,EAAOO;GAClBa;EACF;CACF;AACF,CAAA"}
|