{sessionIdFromParams ? (
diff --git a/src/components/organisms/deployments/sessions/table/tableList.tsx b/src/components/organisms/deployments/sessions/table/tableList.tsx
index 826b929a41..1afb75b4a3 100644
--- a/src/components/organisms/deployments/sessions/table/tableList.tsx
+++ b/src/components/organisms/deployments/sessions/table/tableList.tsx
@@ -17,6 +17,8 @@ export const SessionsTableList = ({
onSessionRemoved,
sessions,
openSession,
+ hideSourceColumn,
+ hideActionsColumn,
}: SessionsTableListProps) => {
const { sessionId } = useParams();
const { openModal } = useModalStore();
@@ -35,8 +37,10 @@ export const SessionsTableList = ({
selectedSessionId: sessionId,
sessions,
showDeleteModal,
+ hideSourceColumn,
+ hideActionsColumn,
}),
- [sessions, sessionId, openSession, showDeleteModal, onSessionRemoved]
+ [sessions, sessionId, openSession, showDeleteModal, onSessionRemoved, hideSourceColumn, hideActionsColumn]
);
const rowRenderer: ListRowRenderer = ({ index, key, style }) => (
diff --git a/src/components/organisms/deployments/sessions/table/tableRow.tsx b/src/components/organisms/deployments/sessions/table/tableRow.tsx
index 4897675368..38891cc6df 100644
--- a/src/components/organisms/deployments/sessions/table/tableRow.tsx
+++ b/src/components/organisms/deployments/sessions/table/tableRow.tsx
@@ -7,14 +7,14 @@ import { SessionState } from "@enums";
import { SessionsTableRowProps } from "@interfaces/components";
import { LoggerService, SessionsService } from "@services";
import { dateTimeFormat, namespaces } from "@src/constants";
-import { cn } from "@utilities";
+import { cn, getSessionTriggerType } from "@utilities";
import { useToastStore } from "@store";
import { IconButton, Loader, Td, Tr } from "@components/atoms";
-import { SessionsTableState } from "@components/organisms/deployments";
+import { SessionsTableState, SessionInfoPopover } from "@components/organisms/deployments";
-import { ActionStoppedIcon, TrashIcon } from "@assets/image/icons";
+import { ActionStoppedIcon, TrashIcon, WebhookIcon, ClockIcon, PlayIcon, LinkIcon } from "@assets/image/icons";
const areEqual = (
prevProps: { data: SessionsTableRowProps; index: number },
@@ -26,6 +26,8 @@ const areEqual = (
return (
prevProps.index === nextProps.index &&
prevProps.data.selectedSessionId === nextProps.data.selectedSessionId &&
+ prevProps.data.hideSourceColumn === nextProps.data.hideSourceColumn &&
+ prevProps.data.hideActionsColumn === nextProps.data.hideActionsColumn &&
prevSession === nextSession
);
};
@@ -35,19 +37,46 @@ export const SessionsTableRow = memo(
const { t: tErrors } = useTranslation("errors");
const { t } = useTranslation("deployments", { keyPrefix: "sessions" });
const addToast = useToastStore((state) => state.addToast);
- const { onSessionRemoved, openSession, selectedSessionId, sessions, showDeleteModal } = data;
+ const {
+ onSessionRemoved,
+ openSession,
+ selectedSessionId,
+ sessions,
+ showDeleteModal,
+ hideSourceColumn,
+ hideActionsColumn,
+ } = data;
const session = sessions[index];
const [isStopping, setIsStopping] = useState(false);
if (!session) {
return null;
}
+ const triggerType = getSessionTriggerType(session.memo);
const sessionRowClass = (id: string) =>
- cn("group flex cursor-pointer items-center hover:bg-gray-1300", {
+ cn("group flex cursor-pointer items-center fill-white hover:bg-gray-1300", {
"bg-black": id === selectedSessionId,
});
+ const renderTriggerIcon = () => {
+ const iconClassName = cn("size-4 shrink-0", {
+ "fill-white stroke-white": triggerType === "manual",
+ });
+ switch (triggerType) {
+ case "webhook":
+ return
;
+ case "schedule":
+ return
;
+ case "connection":
+ return
;
+ case "manual":
+ return
;
+ default:
+ return null;
+ }
+ };
+
const handleDeleteClick = (event: React.MouseEvent
) => {
event.stopPropagation();
showDeleteModal(session.sessionId);
@@ -90,35 +119,70 @@ export const SessionsTableRow = memo(
onClick={() => openSession(session.sessionId)}
style={{ ...style }}
>
- {dayjs(session.createdAt).format(dateTimeFormat)} |
-
-
-
+ |
+
+ {dayjs(session.createdAt).format(dateTimeFormat)}
+
+ {hideSourceColumn ? (
+
+ renderTriggerIcon()
+
+ ) : null}
+
|
-
- {sessionTriggerName}
+ |
+
|
-
-
-
+
+ {renderTriggerIcon()}
+
+
- {isStopping ? (
-
- ) : (
-
- )}
-
-
-
-
-
-
- |
+ {sessionTriggerName}
+
+
+ )}
+
+ {!hideActionsColumn ? (
+