gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/hosts/tables/inbound-hosts/index.tsx · v0.3.0-alpha4
Source
1 3b7feef Mrdn 2y ago
2 3b7feef Mrdn 2y ago import {
3 3b7feef Mrdn 2y ago HostType,
4 3b7feef Mrdn 2y ago HostsDeleteConfirmationDialog,
5 3b7feef Mrdn 2y ago HostsMutationDialog,
6 3b7feef Mrdn 2y ago useHostsQuery
7 3b7feef Mrdn 2y ago } from '@marzneshin/features/hosts'
8 3b7feef Mrdn 2y ago import { InboundHostsDataTable } from './table'
9 3b7feef Mrdn 2y ago import { useState } from 'react'
10 3b7feef Mrdn 2y ago import { useInboundsQuery } from '@marzneshin/features/inbounds'
11 3b7feef Mrdn 2y ago import { columns } from './columns'
12 3b7feef Mrdn 2y ago import { HostSettingsDialog } from '../../dialogs/settings'
13 3b7feef Mrdn 2y ago
14 3b7feef Mrdn 2y ago export const InboundHostsTable = () => {
15 3b7feef Mrdn 2y ago const { data: inbounds } = useInboundsQuery()
16 3b7feef Mrdn 2y ago const [selectedInbound, setSelectedInbound] = useState<string>(String(inbounds[0]?.id))
17 3b7feef Mrdn 2y ago const { data } = useHostsQuery(Number(selectedInbound))
18 3b7feef Mrdn 2y ago
19 3b7feef Mrdn 2y ago const [mutationDialogOpen, setMutationDialogOpen] = useState<boolean>(false);
20 3b7feef Mrdn 2y ago const [deleteDialogOpen, setDeleteDialogOpen] = useState<boolean>(false);
21 3b7feef Mrdn 2y ago const [settingsDialogOpen, setSettingsDialogOpen] = useState<boolean>(false);
22 3b7feef Mrdn 2y ago const [selectedEntity, selectEntity] = useState<HostType | null>(null);
23 3b7feef Mrdn 2y ago
24 3b7feef Mrdn 2y ago const onEdit = (entity: HostType) => {
25 3b7feef Mrdn 2y ago selectEntity(entity);
26 3b7feef Mrdn 2y ago setMutationDialogOpen(true);
27 3b7feef Mrdn 2y ago };
28 3b7feef Mrdn 2y ago
29 3b7feef Mrdn 2y ago const onDelete = (entity: HostType) => {
30 3b7feef Mrdn 2y ago selectEntity(entity);
31 3b7feef Mrdn 2y ago setDeleteDialogOpen(true);
32 3b7feef Mrdn 2y ago };
33 3b7feef Mrdn 2y ago
34 3b7feef Mrdn 2y ago const onCreate = () => {
35 3b7feef Mrdn 2y ago selectEntity(null);
36 3b7feef Mrdn 2y ago setMutationDialogOpen(true);
37 3b7feef Mrdn 2y ago };
38 3b7feef Mrdn 2y ago
39 3b7feef Mrdn 2y ago const onOpen = (entity: HostType) => {
40 3b7feef Mrdn 2y ago selectEntity(entity);
41 3b7feef Mrdn 2y ago setSettingsDialogOpen(true);
42 3b7feef Mrdn 2y ago };
43 3b7feef Mrdn 2y ago
44 3b7feef Mrdn 2y ago return (
45 3b7feef Mrdn 2y ago <div>
46 3b7feef Mrdn 2y ago <HostSettingsDialog
47 3b7feef Mrdn 2y ago open={settingsDialogOpen}
48 3b7feef Mrdn 2y ago onOpenChange={setSettingsDialogOpen}
49 3b7feef Mrdn 2y ago entity={selectedEntity}
50 3b7feef Mrdn 2y ago />
51 3b7feef Mrdn 2y ago <HostsDeleteConfirmationDialog
52 3b7feef Mrdn 2y ago open={deleteDialogOpen}
53 3b7feef Mrdn 2y ago onOpenChange={setDeleteDialogOpen}
54 3b7feef Mrdn 2y ago entity={selectedEntity}
55 3b7feef Mrdn 2y ago />
56 3b7feef Mrdn 2y ago <HostsMutationDialog
57 3b7feef Mrdn 2y ago open={mutationDialogOpen}
58 3b7feef Mrdn 2y ago onOpenChange={setMutationDialogOpen}
59 3b7feef Mrdn 2y ago entity={selectedEntity}
60 3b7feef Mrdn 2y ago inboundId={Number(selectedInbound)}
61 3b7feef Mrdn 2y ago />
62 3b7feef Mrdn 2y ago <InboundHostsDataTable
63 3b7feef Mrdn 2y ago data={data}
64 3b7feef Mrdn 2y ago inbounds={inbounds}
65 3b7feef Mrdn 2y ago selectedInbound={selectedInbound}
66 3b7feef Mrdn 2y ago columns={columns({ onDelete, onOpen, onEdit })}
67 3b7feef Mrdn 2y ago filteredColumn='remark'
68 3b7feef Mrdn 2y ago setSelectedInbound={setSelectedInbound}
69 3b7feef Mrdn 2y ago onCreate={onCreate}
70 3b7feef Mrdn 2y ago onOpen={onOpen}
71 3b7feef Mrdn 2y ago />
72 3b7feef Mrdn 2y ago </div>
73 3b7feef Mrdn 2y ago )
74 3b7feef Mrdn 2y ago }