1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-23 15:29:42 +02:00

refactor(docker/services): convert service tasks table to react [EE-4674] (#10188)

This commit is contained in:
Chaim Lev-Ari 2023-09-07 15:19:03 +01:00 committed by GitHub
parent c47a804c97
commit c3d266931f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 421 additions and 322 deletions

View file

@ -9,7 +9,7 @@ import { Link } from '@@/Link';
import styles from './ContainerQuickActions.module.css';
interface QuickActionsState {
export interface QuickActionsState {
showQuickActionAttach: boolean;
showQuickActionExec: boolean;
showQuickActionInspect: boolean;
@ -17,31 +17,25 @@ interface QuickActionsState {
showQuickActionStats: boolean;
}
interface Props {
taskId?: string;
containerId?: string;
nodeName: string;
state: QuickActionsState;
status: ContainerStatus;
}
export function ContainerQuickActions({
taskId,
status,
containerId,
nodeName,
state,
status,
}: Props) {
if (taskId) {
return <TaskQuickActions taskId={taskId} state={state} />;
}
const isActive = [
ContainerStatus.Starting,
ContainerStatus.Running,
ContainerStatus.Healthy,
ContainerStatus.Unhealthy,
].includes(status);
}: {
containerId: string;
nodeName: string;
status: ContainerStatus;
state: QuickActionsState;
}) {
const isActive =
!!status &&
[
ContainerStatus.Starting,
ContainerStatus.Running,
ContainerStatus.Healthy,
ContainerStatus.Unhealthy,
].includes(status);
return (
<div className={clsx('space-x-1', styles.root)}>
@ -107,34 +101,3 @@ export function ContainerQuickActions({
</div>
);
}
interface TaskProps {
taskId: string;
state: QuickActionsState;
}
function TaskQuickActions({ taskId, state }: TaskProps) {
return (
<div className={clsx('space-x-1', styles.root)}>
{state.showQuickActionLogs && (
<Authorized authorizations="DockerTaskLogs">
<Link
to="docker.tasks.task.logs"
params={{ id: taskId }}
title="Logs"
>
<Icon icon={FileText} className="space-right" />
</Link>
</Authorized>
)}
{state.showQuickActionInspect && (
<Authorized authorizations="DockerTaskInspect">
<Link to="docker.tasks.task" params={{ id: taskId }} title="Inspect">
<Icon icon={Info} className="space-right" />
</Link>
</Authorized>
)}
</div>
);
}