@@ -129,6 +129,10 @@ const EnvironmentList = ({ selectedEnvironment, setSelectedEnvironment, collecti
Import
+ handleSecretsClick()}>
Managing Secrets
diff --git a/packages/bruno-app/src/components/Environments/EnvironmentSettings/ImportEnvironment/index.js b/packages/bruno-app/src/components/Environments/EnvironmentSettings/ImportEnvironment/index.js
deleted file mode 100644
index e962780c5..000000000
--- a/packages/bruno-app/src/components/Environments/EnvironmentSettings/ImportEnvironment/index.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import React from 'react';
-import Portal from 'components/Portal';
-import Modal from 'components/Modal';
-import toast from 'react-hot-toast';
-import { useDispatch } from 'react-redux';
-import importPostmanEnvironment from 'utils/importers/postman-environment';
-import { importEnvironment } from 'providers/ReduxStore/slices/collections/actions';
-import { toastError } from 'utils/common/error';
-import { IconDatabaseImport } from '@tabler/icons';
-
-const ImportEnvironment = ({ collection, onClose, onEnvironmentCreated }) => {
- const dispatch = useDispatch();
-
- const handleImportPostmanEnvironment = () => {
- importPostmanEnvironment()
- .then((environments) => {
- environments
- .filter((env) =>
- env.name && env.name !== 'undefined'
- ? true
- : () => {
- toast.error('Failed to import environment: env has no name');
- return false;
- }
- )
- .map((environment) => {
- dispatch(importEnvironment(environment.name, environment.variables, collection.uid))
- .then(() => {
- toast.success('Environment imported successfully');
- })
- .catch((error) => {
- toast.error('An error occurred while importing the environment');
- console.error(error);
- });
- });
- })
- .then(() => {
- onClose();
- // Call the callback if provided
- if (onEnvironmentCreated) {
- onEnvironmentCreated();
- }
- })
- .catch((err) => toastError(err, 'Postman Import environment failed'));
- };
-
- return (
-
-
-
-
- Import your Postman environments
-
-
-
- );
-};
-
-export default ImportEnvironment;
diff --git a/packages/bruno-app/src/components/Environments/EnvironmentSettings/index.js b/packages/bruno-app/src/components/Environments/EnvironmentSettings/index.js
index 1fa61913e..419db7c41 100644
--- a/packages/bruno-app/src/components/Environments/EnvironmentSettings/index.js
+++ b/packages/bruno-app/src/components/Environments/EnvironmentSettings/index.js
@@ -3,8 +3,9 @@ import React, { useState } from 'react';
import CreateEnvironment from './CreateEnvironment';
import EnvironmentList from './EnvironmentList';
import StyledWrapper from './StyledWrapper';
-import ImportEnvironment from './ImportEnvironment';
+import ImportEnvironmentModal from 'components/Environments/Common/ImportEnvironmentModal';
import { IconFileAlert } from '@tabler/icons';
+import ExportEnvironmentModal from 'components/Environments/Common/ExportEnvironmentModal';
export const SharedButton = ({ children, className, onClick }) => {
return (
@@ -47,6 +48,7 @@ const EnvironmentSettings = ({ collection, onClose }) => {
const { environments } = collection;
const [selectedEnvironment, setSelectedEnvironment] = useState(null);
const [tab, setTab] = useState('default');
+ const [showExportModal, setShowExportModal] = useState(false);
if (!environments || !environments.length) {
return (
@@ -54,7 +56,7 @@ const EnvironmentSettings = ({ collection, onClose }) => {
{tab === 'create' ? (
setTab('default')} />
) : tab === 'import' ? (
- setTab('default')} />
+ setTab('default')} />
) : (
)}
@@ -64,16 +66,26 @@ const EnvironmentSettings = ({ collection, onClose }) => {
}
return (
-
-
-
+
+
+
+
+ {showExportModal && (
+ setShowExportModal(false)}
+ environments={collection.environments}
+ environmentType="collection"
+ />
+ )}
+
);
};
diff --git a/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/EnvironmentList/EnvironmentDetails/index.js b/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/EnvironmentList/EnvironmentDetails/index.js
index 795f8e7cc..3cabf04c2 100644
--- a/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/EnvironmentList/EnvironmentDetails/index.js
+++ b/packages/bruno-app/src/components/GlobalEnvironments/EnvironmentSettings/EnvironmentList/EnvironmentDetails/index.js
@@ -4,8 +4,9 @@ import CopyEnvironment from '../../CopyEnvironment';
import DeleteEnvironment from '../../DeleteEnvironment';
import RenameEnvironment from '../../RenameEnvironment';
import EnvironmentVariables from './EnvironmentVariables';
+import ToolHint from 'components/ToolHint/index';
-const EnvironmentDetails = ({ environment, setIsModified, collection }) => {
+const EnvironmentDetails = ({ environment, setIsModified, collection, allEnvironments }) => {
const [openEditModal, setOpenEditModal] = useState(false);
const [openDeleteModal, setOpenDeleteModal] = useState(false);
const [openCopyModal, setOpenCopyModal] = useState(false);
@@ -29,15 +30,26 @@ const EnvironmentDetails = ({ environment, setIsModified, collection }) => {
{environment.name}
-