diff --git a/packages/insomnia/src/ui/components/dropdowns/workspace-dropdown.tsx b/packages/insomnia/src/ui/components/dropdowns/workspace-dropdown.tsx index 7389bc9998..1049eb3db5 100644 --- a/packages/insomnia/src/ui/components/dropdowns/workspace-dropdown.tsx +++ b/packages/insomnia/src/ui/components/dropdowns/workspace-dropdown.tsx @@ -1,5 +1,5 @@ import type { IconName } from '@fortawesome/fontawesome-svg-core'; -import React, { type FC, type ReactNode, useCallback, useState } from 'react'; +import React, { type FC, type ReactNode, useCallback, useEffect, useState } from 'react'; import { Button, Collection, Dialog, Header, Heading, Menu, MenuItem, MenuTrigger, Modal, ModalOverlay, Popover, Section } from 'react-aria-components'; import { useFetcher, useParams, useRouteLoaderData } from 'react-router-dom'; @@ -51,6 +51,11 @@ export const WorkspaceDropdown: FC = () => { const [actionPlugins, setActionPlugins] = useState([]); const [loadingActions, setLoadingActions] = useState>({}); + // after duplicate workspace, close the modal + useEffect(() => { + setIsDuplicateModalOpen(false); + }, [workspaceId]); + const { access, generateTests, diff --git a/packages/insomnia/src/ui/components/modals/workspace-duplicate-modal.tsx b/packages/insomnia/src/ui/components/modals/workspace-duplicate-modal.tsx index 166a0f9955..0b18c0481a 100644 --- a/packages/insomnia/src/ui/components/modals/workspace-duplicate-modal.tsx +++ b/packages/insomnia/src/ui/components/modals/workspace-duplicate-modal.tsx @@ -1,6 +1,6 @@ import React, { type FC, useEffect, useRef } from 'react'; import { OverlayContainer } from 'react-aria'; -import { useFetcher, useParams } from 'react-router-dom'; +import { useFetcher, useNavigation, useParams } from 'react-router-dom'; import { getWorkspaceLabel } from '../../../common/get-workspace-label'; import { strings } from '../../../common/strings'; @@ -10,6 +10,7 @@ import { Modal, type ModalHandle, type ModalProps } from '../base/modal'; import { ModalBody } from '../base/modal-body'; import { ModalFooter } from '../base/modal-footer'; import { ModalHeader } from '../base/modal-header'; +import { Icon } from '../icon'; interface WorkspaceDuplicateModalProps extends ModalProps { workspace: Workspace; @@ -20,6 +21,7 @@ export const WorkspaceDuplicateModal: FC = ({ work const { organizationId } = useParams<{organizationId: string}>(); const { Form } = useFetcher(); const modalRef = useRef(null); + const navigation = useNavigation(); useEffect(() => { modalRef.current?.show(); }, []); @@ -57,8 +59,8 @@ export const WorkspaceDuplicateModal: FC = ({ work -