gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/routes/_dashboard/hosts/$inboundId/create.tsx · nightly
Source
1 d636f3f Dawsh 2y ago import { Suspense } from "react";
2 d636f3f Dawsh 2y ago import {
3 d636f3f Dawsh 2y ago createFileRoute,
4 d636f3f Dawsh 2y ago defer,
5 d636f3f Dawsh 2y ago Await,
6 d636f3f Dawsh 2y ago useNavigate,
7 d636f3f Dawsh 2y ago } from "@tanstack/react-router";
8 d636f3f Dawsh 2y ago import { HostsMutationDialog } from "@marzneshin/modules/hosts";
9 d636f3f Dawsh 2y ago import { fetchInbound } from "@marzneshin/modules/inbounds";
10 7389ad0 Mardin 2y ago import { Loading, AlertDialog, AlertDialogContent } from "@marzneshin/common/components";
11 03b3dbc Mardin 2y ago
12 03b3dbc Mardin 2y ago const HostCreate = () => {
13 03b3dbc Mardin 2y ago const { inboundId } = Route.useParams();
14 d636f3f Dawsh 2y ago const { inbound } = Route.useLoaderData()
15 03b3dbc Mardin 2y ago const navigate = useNavigate({ from: "/hosts/$inboundId/create" });
16 03b3dbc Mardin 2y ago
17 03b3dbc Mardin 2y ago return (
18 d636f3f Dawsh 2y ago <Suspense fallback={<Loading />}>
19 d636f3f Dawsh 2y ago <Await promise={inbound}>
20 d636f3f Dawsh 2y ago {(inbound) => (
21 d636f3f Dawsh 2y ago <HostsMutationDialog
22 d636f3f Dawsh 2y ago entity={null}
23 d636f3f Dawsh 2y ago protocol={inbound.protocol}
24 d636f3f Dawsh 2y ago inboundId={Number(inboundId)}
25 d636f3f Dawsh 2y ago onClose={() => navigate({ to: "/hosts" })}
26 d636f3f Dawsh 2y ago />
27 d636f3f Dawsh 2y ago )}
28 d636f3f Dawsh 2y ago </Await>
29 d636f3f Dawsh 2y ago </Suspense>
30 03b3dbc Mardin 2y ago );
31 03b3dbc Mardin 2y ago }
32 03b3dbc Mardin 2y ago
33 03b3dbc Mardin 2y ago export const Route = createFileRoute('/_dashboard/hosts/$inboundId/create')({
34 d636f3f Dawsh 2y ago loader: async ({ params }) => {
35 d636f3f Dawsh 2y ago const inboundPromise = fetchInbound({
36 d636f3f Dawsh 2y ago queryKey: ["inbounds", Number.parseInt(params.inboundId)]
37 d636f3f Dawsh 2y ago });
38 d636f3f Dawsh 2y ago
39 d636f3f Dawsh 2y ago return {
40 d636f3f Dawsh 2y ago inbound: defer(inboundPromise)
41 d636f3f Dawsh 2y ago }
42 d636f3f Dawsh 2y ago },
43 03b3dbc Mardin 2y ago errorComponent: () => (
44 03b3dbc Mardin 2y ago <AlertDialog open={true}>
45 03b3dbc Mardin 2y ago <AlertDialogContent>Host not found</AlertDialogContent>
46 03b3dbc Mardin 2y ago </AlertDialog>
47 03b3dbc Mardin 2y ago ),
48 03b3dbc Mardin 2y ago component: HostCreate,
49 03b3dbc Mardin 2y ago });