diff --git a/workspaces/frontend/src/app/pages/Workspaces/Details/WorkspaceActivity.tsx b/workspaces/frontend/src/app/pages/Workspaces/Details/WorkspaceActivity.tsx new file mode 100644 index 00000000..0dfa404e --- /dev/null +++ b/workspaces/frontend/src/app/pages/Workspaces/Details/WorkspaceActivity.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import { + DescriptionList, + DescriptionListTerm, + DescriptionListGroup, + DescriptionListDescription, +} from '@patternfly/react-core'; +import { Workspace } from '~/shared/types'; + +type WorkspaceDetailsActivityProps = { + workspace: Workspace; +}; + +// Helper function to format UNIX timestamps +const formatTimestamp = (timestamp: number): string => { + if (!timestamp || timestamp === 0) { + return '-'; // Return a dash if timestamp is not set + } + const date = new Date(timestamp * 1000); // Convert to milliseconds + return date.toLocaleString(); // Format as a readable string +}; + +export const WorkspaceDetailsActivity: React.FunctionComponent = ({ + workspace, +}) => ( + + + Last Activity + + {formatTimestamp(workspace.status.activity.lastActivity)} + + + + Last Update + + {formatTimestamp(workspace.status.activity.lastUpdate)} + + + + Pause Time + + {formatTimestamp(workspace.status.pauseTime)} + + + + Pending Restart + + {workspace.status.pendingRestart ? 'Yes' : 'No'} + + + +); diff --git a/workspaces/frontend/src/app/pages/Workspaces/Details/WorkspaceDetails.tsx b/workspaces/frontend/src/app/pages/Workspaces/Details/WorkspaceDetails.tsx index c71a34be..b25e00e1 100644 --- a/workspaces/frontend/src/app/pages/Workspaces/Details/WorkspaceDetails.tsx +++ b/workspaces/frontend/src/app/pages/Workspaces/Details/WorkspaceDetails.tsx @@ -15,6 +15,7 @@ import { import { Workspace } from '~/shared/types'; import { WorkspaceDetailsOverview } from '~/app/pages/Workspaces/Details/WorkspaceDetailsOverview'; import { WorkspaceDetailsActions } from '~/app/pages/Workspaces/Details/WorkspaceDetailsActions'; +import { WorkspaceDetailsActivity } from '~/app/pages/Workspaces/Details/WorkspaceActivity'; type WorkspaceDetailsProps = { workspace: Workspace; @@ -58,7 +59,7 @@ export const WorkspaceDetails: React.FunctionComponent = Activity} aria-label="Activity"> - Activity + Logs} aria-label="Logs">