mirror of https://github.com/portainer/portainer
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { CellContext } from '@tanstack/react-table';
|
|
|
|
import { ContainerQuickActions } from '@/react/docker/containers/components/ContainerQuickActions';
|
|
import { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';
|
|
import { isAgentEnvironment } from '@/react/portainer/environments/utils';
|
|
import { QuickActionsState } from '@/react/docker/containers/components/ContainerQuickActions/ContainerQuickActions';
|
|
import { TaskTableQuickActions } from '@/react/docker/services/common/TaskTableQuickActions';
|
|
|
|
import { DecoratedTask } from '../types';
|
|
|
|
import { columnHelper } from './helper';
|
|
|
|
export const actions = columnHelper.display({
|
|
header: 'Actions',
|
|
cell: Cell,
|
|
});
|
|
|
|
function Cell({
|
|
row: { original: item },
|
|
}: CellContext<DecoratedTask, unknown>) {
|
|
const environmentQuery = useCurrentEnvironment();
|
|
|
|
if (!environmentQuery.data) {
|
|
return null;
|
|
}
|
|
const state: QuickActionsState = {
|
|
showQuickActionAttach: false,
|
|
showQuickActionExec: true,
|
|
showQuickActionInspect: true,
|
|
showQuickActionLogs: true,
|
|
showQuickActionStats: true,
|
|
};
|
|
const isAgent = isAgentEnvironment(environmentQuery.data.Type);
|
|
|
|
return isAgent && item.Container ? (
|
|
<ContainerQuickActions
|
|
containerId={item.Container.Id}
|
|
nodeName={item.Container.NodeName}
|
|
status={item.Container.Status}
|
|
state={state}
|
|
/>
|
|
) : (
|
|
<TaskTableQuickActions taskId={item.Id} />
|
|
);
|
|
}
|