diff --git a/client/src/features/admin/SessionEnvironmentFormContent.tsx b/client/src/features/admin/SessionEnvironmentFormContent.tsx
index dcd230f424..b37adf83f2 100644
--- a/client/src/features/admin/SessionEnvironmentFormContent.tsx
+++ b/client/src/features/admin/SessionEnvironmentFormContent.tsx
@@ -19,6 +19,8 @@
import cx from "classnames";
import { Control, Controller, FieldErrors } from "react-hook-form";
import { Input, Label } from "reactstrap";
+
+import { CONTAINER_IMAGE_PATTERN } from "../sessionsV2/session.constants";
import SessionEnvironmentAdvancedFields from "./SessionEnvironmentAdvancedFields";
export interface SessionEnvironmentForm {
@@ -105,9 +107,18 @@ export default function SessionEnvironmentFormContent({
{...field}
/>
)}
- rules={{ required: true }}
+ rules={{
+ required: "Please provide a container image.",
+ pattern: {
+ value: CONTAINER_IMAGE_PATTERN,
+ message: "Please provide a valid container image.",
+ },
+ }}
/>
-
Please provide a container image
+
+ {errors.container_image?.message ??
+ "Please provide a valid container image."}
+
>
diff --git a/client/src/features/sessionsV2/components/SessionForm/CustomEnvironmentFields.tsx b/client/src/features/sessionsV2/components/SessionForm/CustomEnvironmentFields.tsx
index a143d22672..6ea4c389aa 100644
--- a/client/src/features/sessionsV2/components/SessionForm/CustomEnvironmentFields.tsx
+++ b/client/src/features/sessionsV2/components/SessionForm/CustomEnvironmentFields.tsx
@@ -17,13 +17,15 @@
*/
import cx from "classnames";
-import { useState, useCallback } from "react";
+import { useCallback, useState } from "react";
import { Controller } from "react-hook-form";
-import { Label, Input, Collapse } from "reactstrap";
+import { Collapse, Input, Label } from "reactstrap";
+
import ChevronFlippedIcon from "../../../../components/icons/ChevronFlippedIcon";
-import { EnvironmentFieldsProps } from "./EnvironmentField";
-import { AdvancedSettingsFields } from "./AdvancedSettingsFields";
+import { CONTAINER_IMAGE_PATTERN } from "../../session.constants";
import { SessionLauncherForm } from "../../sessionsV2.types";
+import { AdvancedSettingsFields } from "./AdvancedSettingsFields";
+import { EnvironmentFieldsProps } from "./EnvironmentField";
export function CustomEnvironmentFields({
watch,
@@ -65,9 +67,21 @@ export function CustomEnvironmentFields({
{...field}
/>
)}
- rules={{ required: watchEnvironmentKind === "CUSTOM" }}
+ rules={{
+ required: {
+ value: watchEnvironmentKind === "CUSTOM",
+ message: "Please provide a container image.",
+ },
+ pattern: {
+ value: CONTAINER_IMAGE_PATTERN,
+ message: "Please provide a valid container image.",
+ },
+ }}
/>
- Please provide a container image
+
+ {errors.container_image?.message ??
+ "Please provide a valid container image."}
+
(
)}
+ rules={{
+ required: {
+ value: environmentKind === "CUSTOM",
+ message: "Please provide a container image.",
+ },
+ pattern: {
+ value: CONTAINER_IMAGE_PATTERN,
+ message: "Please provide a valid container image.",
+ },
+ }}
/>
- Please provide a container image
+
+ {errors.container_image?.message ??
+ "Please provide a valid container image."}
+