diff --git a/packages/bruno-app/src/components/Environments/EnvironmentSettings/CreateEnvironment/index.js b/packages/bruno-app/src/components/Environments/EnvironmentSettings/CreateEnvironment/index.js index ee1b5dea8..c5130d038 100644 --- a/packages/bruno-app/src/components/Environments/EnvironmentSettings/CreateEnvironment/index.js +++ b/packages/bruno-app/src/components/Environments/EnvironmentSettings/CreateEnvironment/index.js @@ -11,7 +11,6 @@ const CreateEnvironment = ({ collection, onClose }) => { const dispatch = useDispatch(); const inputRef = useRef(); - // todo: Add this to global env too. const validateEnvironmentName = (name) => { return !collection?.environments?.some((env) => env?.name?.toLowerCase().trim() === name?.toLowerCase().trim()); }; diff --git a/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/CreateEnvironment/index.js b/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/CreateEnvironment/index.js index 3103f9b4e..3bf8af65e 100644 --- a/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/CreateEnvironment/index.js +++ b/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/CreateEnvironment/index.js @@ -2,12 +2,19 @@ import React, { useEffect, useRef } from 'react'; import toast from 'react-hot-toast'; import { useFormik } from 'formik'; import * as Yup from 'yup'; -import { useDispatch } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; import Portal from 'components/Portal'; import Modal from 'components/Modal'; import { addGlobalEnvironment } from 'providers/ReduxStore/slices/global-environments'; const CreateEnvironment = ({ onClose }) => { + const globalEnvs = useSelector((state) => state?.globalEnvironments?.globalEnvironments); + + const validateEnvironmentName = (name) => { + const trimmedName = name?.toLowerCase().trim(); + return globalEnvs.every((env) => env?.name?.toLowerCase().trim() !== trimmedName); + }; + const dispatch = useDispatch(); const inputRef = useRef(); const formik = useFormik({ @@ -17,9 +24,10 @@ const CreateEnvironment = ({ onClose }) => { }, validationSchema: Yup.object({ name: Yup.string() - .min(1, 'must be at least 1 character') - .max(50, 'must be 50 characters or less') - .required('name is required') + .min(1, 'Must be at least 1 character') + .max(50, 'Must be 50 characters or less') + .required('Name is required') + .test('duplicate-name', 'Global Environment already exists', validateEnvironmentName) }), onSubmit: (values) => { dispatch(addGlobalEnvironment({ name: values.name }))