import { ActionIcon, Drawer, Tooltip } from '@mantine/core'; import { useHotkeys } from '@mantine/hooks'; import { IconBrandDocker } from '@tabler/icons-react'; import axios from 'axios'; import Docker from 'dockerode'; import { useTranslation } from 'next-i18next'; import { useEffect, useState } from 'react'; import { useQuery } from '@tanstack/react-query'; import { useCardStyles } from '../../components/layout/useCardStyles'; import { useConfigContext } from '../../config/provider'; import ContainerActionBar from './ContainerActionBar'; import DockerTable from './DockerTable'; export default function DockerMenuButton(props: any) { const [opened, setOpened] = useState(false); const [selection, setSelection] = useState([]); const { config } = useConfigContext(); const { classes } = useCardStyles(true); const dockerEnabled = config?.settings.customization.layout.enabledDocker || false; const { data, isLoading, refetch } = useQuery({ queryKey: ['containers'], queryFn: async () => { const containers = await axios.get('/api/docker/containers'); return containers.data; }, enabled: dockerEnabled, }); useHotkeys([['mod+B', () => setOpened(!opened)]]); const { t } = useTranslation('modules/docker'); useEffect(() => { refetch(); }, [config?.settings]); const reload = () => { refetch(); setSelection([]); }; return ( <> setOpened(false)} padding="xl" position="right" size="100%" title={} transitionProps={{ transition: 'pop', }} styles={{ content: { display: 'flex', flexDirection: 'column', }, body: { minHeight: 0, }, }} > setOpened(true)} > ); }