diff --git a/client/src/features/sessionsV2/ShowSessionPage.tsx b/client/src/features/sessionsV2/ShowSessionPage.tsx
index 8b0db17673..dc64336f0c 100644
--- a/client/src/features/sessionsV2/ShowSessionPage.tsx
+++ b/client/src/features/sessionsV2/ShowSessionPage.tsx
@@ -18,33 +18,59 @@
import cx from "classnames";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
-import { ArrowLeft, Journals, PauseCircle, Trash } from "react-bootstrap-icons";
+import {
+ ArrowLeft,
+ Box,
+ Briefcase,
+ Clock,
+ Cloud,
+ ExclamationTriangle,
+ FileEarmarkText,
+ PauseCircle,
+ Trash,
+} from "react-bootstrap-icons";
import {
Link,
generatePath,
useNavigate,
useParams,
} from "react-router-dom-v5-compat";
-import { Button, UncontrolledTooltip } from "reactstrap";
+import {
+ Button,
+ Modal,
+ ModalBody,
+ ModalHeader,
+ UncontrolledTooltip,
+} from "reactstrap";
+import RenkuFrogIcon from "../../components/icons/RenkuIcon";
import { User } from "../../model/renkuModels.types";
-import { SESSION_TABS } from "../../notebooks/Notebooks.present";
+import { ABSOLUTE_ROUTES } from "../../routing/routes.constants";
import useLegacySelector from "../../utils/customHooks/useLegacySelector.hook";
import useWindowSize from "../../utils/helpers/UseWindowsSize";
-import ResourcesSessionModal from "../session/components/ResourcesSessionModal";
+import { resetFavicon, setFavicon } from "../display";
import SessionHibernated from "../session/components/SessionHibernated";
import SessionJupyter from "../session/components/SessionJupyter";
import SessionUnavailable from "../session/components/SessionUnavailable";
import StartSessionProgressBar from "../session/components/StartSessionProgressBar";
import { useGetSessionsQuery } from "../session/sessions.api";
import PauseOrDeleteSessionModal from "./PauseOrDeleteSessionModal";
+import { getSessionFavicon } from "./session.utils";
-import RenkuFrogIcon from "../../components/icons/RenkuIcon";
-import { ABSOLUTE_ROUTES } from "../../routing/routes.constants";
+import { skipToken } from "@reduxjs/toolkit/query";
+import { Loader } from "../../components/Loader";
+import { EnvironmentLogs } from "../../components/Logs";
+import { TimeCaption } from "../../components/TimeCaption";
+import { CommandCopy } from "../../components/commandCopy/CommandCopy";
+import { NotebooksHelper } from "../../notebooks";
+import { NotebookAnnotations } from "../../notebooks/components/session.types";
import useAppDispatch from "../../utils/customHooks/useAppDispatch.hook";
-import { resetFavicon, setFavicon } from "../display";
-import { getSessionFavicon } from "./session.utils";
+import { displaySlice } from "../display";
+import { useGetProjectsByNamespaceAndSlugQuery } from "../projectsV2/api/projectV2.enhanced-api";
+import { SessionRowResourceRequests } from "../session/components/SessionsList";
import styles from "../session/components/ShowSession.module.scss";
+import { Session } from "../session/sessions.types";
+import { useGetProjectSessionLaunchersQuery } from "./sessionsV2.api";
export default function ShowSessionPage() {
const dispatch = useAppDispatch();
@@ -84,22 +110,11 @@ export default function ShowSessionPage() {
const [isTheSessionReady, setIsTheSessionReady] = useState(false);
- const [showModalResourcesData, setShowModalResourcesData] = useState(false);
- const toggleModalResources = useCallback(
- () => setShowModalResourcesData((show) => !show),
- []
- );
- const [activeResourcesTab, setActiveResourcesTab] = useState
(
- SESSION_TABS.commands
- );
- const toggleToResourcesLogs = useCallback(() => {
- setActiveResourcesTab(SESSION_TABS.logs);
- toggleModalResources();
- }, [toggleModalResources]);
- const toggleResources = useCallback(() => {
- setActiveResourcesTab(SESSION_TABS.commands);
- toggleModalResources();
- }, [toggleModalResources]);
+ const toggleModalLogs = useCallback(() => {
+ dispatch(
+ displaySlice.actions.toggleSessionLogsModal({ targetServer: sessionName })
+ );
+ }, [dispatch, sessionName]);
const [showModalPauseOrDeleteSession, setShowModalPauseOrDeleteSession] =
useState(false);
@@ -146,15 +161,6 @@ export default function ShowSessionPage() {
}, [backUrl, navigate, thisSession?.status.state]);
// Modals
- const resourcesModal = (
-
- );
const pauseOrDeleteSessionModal = (
);
+ const logs = thisSession && (
+
+ );
const content =
!isLoading && thisSession == null ? (
@@ -177,7 +189,7 @@ export default function ShowSessionPage() {
)}
);
@@ -221,11 +233,12 @@ export default function ShowSessionPage() {
"d-flex",
"flex-grow-0",
"gap-3",
- "px-3"
+ "px-3",
+ "text-truncate"
)}
>
{backButton}
-
+
@@ -236,11 +249,17 @@ export default function ShowSessionPage() {
"d-flex",
"flex-grow-1",
"justify-content-between",
- "py-2"
+ "text-truncate"
)}
>
-