From d0b3328f26c7f7e0671e39bff78286ac4432f5fc Mon Sep 17 00:00:00 2001 From: Yusuf Musleh Date: Fri, 24 May 2024 16:49:26 +0300 Subject: [PATCH] feat: Import new taxonomy dialog flow (#1017) This PR updates the existing import tags wizard to also handle importing new taxonomies. --- src/taxonomy/TaxonomyListPage.jsx | 37 ++-- src/taxonomy/TaxonomyListPage.test.jsx | 12 +- src/taxonomy/data/apiHooks.js | 2 +- src/taxonomy/import-tags/ImportTagsWizard.jsx | 192 ++++++++++++++++-- .../import-tags/ImportTagsWizard.test.jsx | 140 +++++++++++-- src/taxonomy/import-tags/index.js | 2 +- src/taxonomy/import-tags/messages.js | 31 +++ src/taxonomy/import-tags/utils.js | 110 ---------- src/taxonomy/taxonomy-menu/TaxonomyMenu.jsx | 1 + 9 files changed, 352 insertions(+), 175 deletions(-) delete mode 100644 src/taxonomy/import-tags/utils.js diff --git a/src/taxonomy/TaxonomyListPage.jsx b/src/taxonomy/TaxonomyListPage.jsx index c78c31422..6c6623614 100644 --- a/src/taxonomy/TaxonomyListPage.jsx +++ b/src/taxonomy/TaxonomyListPage.jsx @@ -1,5 +1,5 @@ // @ts-check -import React, { useCallback, useContext, useState } from 'react'; +import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Button, @@ -12,6 +12,7 @@ import { Tooltip, SelectMenu, MenuItem, + useToggle, } from '@openedx/paragon'; import { Add, @@ -25,33 +26,24 @@ import { useOrganizationListData } from '../generic/data/apiHooks'; import SubHeader from '../generic/sub-header/SubHeader'; import getPageHeadTitle from '../generic/utils'; import { ALL_TAXONOMIES, apiUrls, UNASSIGNED } from './data/api'; -import { useImportNewTaxonomy, useTaxonomyList } from './data/apiHooks'; -import { importTaxonomy } from './import-tags'; +import { useTaxonomyList } from './data/apiHooks'; +import { ImportTagsWizard } from './import-tags'; import messages from './messages'; import TaxonomyCard from './taxonomy-card'; -import { TaxonomyContext } from './common/context'; const TaxonomyListHeaderButtons = ({ canAddTaxonomy }) => { const intl = useIntl(); - const importMutation = useImportNewTaxonomy(); - const { setToastMessage } = useContext(TaxonomyContext); - const showImportInProgressAlert = useCallback(() => { - /* istanbul ignore next */ - if (setToastMessage) { - setToastMessage(intl.formatMessage(messages.importInProgressAlertDescription)); - } - }, [setToastMessage]); - - const closeImportInProgressAlert = useCallback(() => { - /* istanbul ignore next */ - if (setToastMessage) { - setToastMessage(null); - } - }, [setToastMessage]); + const [isImportModalOpen, importModalOpen, importModalClose] = useToggle(false); return ( <> + {isImportModalOpen && ( + + )} { + { + reimport + && ( + + ) + } + + + + + + + { + reimport + && ( + + ) + }