gitscope
https://dev.kronoz.win/r/marzneshin.git
app/dashboard/src/pages/hosts/container.tsx · v0.2.0
Source
1 6aab6f0 Mrdn 2y ago import { InboundsHostsFilters } from './filters'
2 6aab6f0 Mrdn 2y ago import { InboundsSidebar } from './inbounds-sidebar'
3 6aab6f0 Mrdn 2y ago import { HostsTable } from './table'
4 16e5ea1 Mrdn 2y ago import { queryIds } from 'constants/query-ids';
5 16e5ea1 Mrdn 2y ago import { useQuery } from '@tanstack/react-query';
6 16e5ea1 Mrdn 2y ago import { fetchInbounds, fetchInboundHosts, useInbounds } from 'stores';
7 8d27a8d Mrdn 2y ago import { Grid, GridItem, } from '@chakra-ui/react';
8 fca98f0 Mrdn 2y ago import { useTranslation } from 'react-i18next';
9 fca98f0 Mrdn 2y ago import { Callout } from 'components/callout';
10 6aab6f0 Mrdn 2y ago
11 6aab6f0 Mrdn 2y ago export const InboundsHostsManager = () => {
12 8d27a8d Mrdn 2y ago const { selectedInbound } = useInbounds();
13 16e5ea1 Mrdn 2y ago
14 16e5ea1 Mrdn 2y ago const { data: inbounds } = useQuery({
15 16e5ea1 Mrdn 2y ago queryKey: [queryIds.inbounds],
16 16e5ea1 Mrdn 2y ago initialData: [],
17 16e5ea1 Mrdn 2y ago queryFn: () => {
18 16e5ea1 Mrdn 2y ago return fetchInbounds();
19 16e5ea1 Mrdn 2y ago }
20 16e5ea1 Mrdn 2y ago });
21 16e5ea1 Mrdn 2y ago
22 16e5ea1 Mrdn 2y ago const { data: hosts } = useQuery({
23 16e5ea1 Mrdn 2y ago queryKey: [queryIds.hosts, selectedInbound?.id],
24 16e5ea1 Mrdn 2y ago initialData: [],
25 16e5ea1 Mrdn 2y ago queryFn: () => {
26 16e5ea1 Mrdn 2y ago return fetchInboundHosts(selectedInbound?.id);
27 16e5ea1 Mrdn 2y ago }
28 16e5ea1 Mrdn 2y ago });
29 16e5ea1 Mrdn 2y ago
30 fca98f0 Mrdn 2y ago const { t } = useTranslation('noInboundsCallout');
31 fca98f0 Mrdn 2y ago
32 fca98f0 Mrdn 2y ago return inbounds.length === 0 ?
33 fca98f0 Mrdn 2y ago <Callout header={t('noInboundsCallout.header')} body={t('noInboundsCallout.body')} />
34 fca98f0 Mrdn 2y ago : (
35 fca98f0 Mrdn 2y ago <>
36 fca98f0 Mrdn 2y ago <InboundsHostsFilters />
37 fca98f0 Mrdn 2y ago <Grid
38 fca98f0 Mrdn 2y ago templateColumns='repeat(4, 1fr)'
39 fca98f0 Mrdn 2y ago gap="3"
40 fca98f0 Mrdn 2y ago h="10rem"
41 fca98f0 Mrdn 2y ago >
42 fca98f0 Mrdn 2y ago <GridItem colSpan={1}>
43 fca98f0 Mrdn 2y ago <InboundsSidebar inbounds={inbounds} />
44 fca98f0 Mrdn 2y ago </GridItem>
45 fca98f0 Mrdn 2y ago <GridItem colSpan={3}>
46 fca98f0 Mrdn 2y ago <HostsTable hosts={hosts} />
47 fca98f0 Mrdn 2y ago </GridItem>
48 fca98f0 Mrdn 2y ago </Grid>
49 fca98f0 Mrdn 2y ago </>
50 fca98f0 Mrdn 2y ago
51 fca98f0 Mrdn 2y ago )
52 6aab6f0 Mrdn 2y ago }