Skip to content

Commit

Permalink
fix: fix circular dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
csm-thu committed Feb 7, 2024
1 parent 03cc5db commit 1d08c29
Show file tree
Hide file tree
Showing 19 changed files with 49 additions and 38 deletions.
2 changes: 1 addition & 1 deletion src/AppRoutes.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Navigate, Route, createBrowserRouter, RouterProvider, createRoutesFromE
import { TabLayout } from './layouts';
import Workspaces from './views/Workspaces';
import { getAllTabs } from './AppLayout';
import { UserStatusGate } from './components';
import { UserStatusGate } from './components/UserStatusGate';

const AppRoutes = () => {
const providedUrl = sessionStorage.getItem('providedUrl');
Expand Down
11 changes: 4 additions & 7 deletions src/components/ScenarioParameters/ScenarioParameters.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Cosmo Tech.
// Licensed under the MIT license.

import React, { useCallback, useContext, useEffect, useMemo } from 'react';
import React, { useCallback, useEffect, useMemo } from 'react';
import rfdc from 'rfdc';
import { useFormContext } from 'react-hook-form';
import PropTypes from 'prop-types';
Expand All @@ -15,7 +15,9 @@ import { ACL_PERMISSIONS } from '../../services/config/accessControl';
import { ScenarioParametersTabsWrapper, ScenarioActions } from './components';
import { useTranslation } from 'react-i18next';
import { useScenarioParameters } from './ScenarioParametersHook';
import { ScenarioParametersUtils, FileManagementUtils } from '../../utils';
import { ScenarioResetValuesContext } from './ScenarioParametersContext';
import { ScenarioParametersUtils } from '../../utils';
import { FileManagementUtils } from '../../utils/FileManagementUtils';

const clone = rfdc();

Expand Down Expand Up @@ -48,8 +50,6 @@ const useStyles = makeStyles((theme) => ({
},
}));

const ScenarioResetValuesContext = React.createContext();

const ScenarioParameters = ({ onToggleAccordion, isAccordionExpanded }) => {
const classes = useStyles();
const { t } = useTranslation();
Expand Down Expand Up @@ -201,6 +201,3 @@ ScenarioParameters.propTypes = {
};

export default ScenarioParameters;
export const useScenarioResetValues = () => {
return useContext(ScenarioResetValuesContext);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Copyright (c) Cosmo Tech.
// Licensed under the MIT license.

import React, { useContext } from 'react';

export const ScenarioResetValuesContext = React.createContext();
export const useScenarioResetValues = () => {
return useContext(ScenarioResetValuesContext);
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import CancelIcon from '@mui/icons-material/Cancel';
import { useTranslation } from 'react-i18next';
import { PermissionsGate } from '@cosmotech/ui';
import { useFormContext, useFormState } from 'react-hook-form';
import { useScenarioResetValues } from '../../../../ScenarioParameters';
import { useScenarioResetValues } from '../../../../ScenarioParametersContext';
import { useUserAppAndCurrentScenarioPermissions } from '../../../../../../hooks/SecurityHooks';
import { ACL_PERMISSIONS } from '../../../../../../services/config/accessControl';
import { TwoActionsDialogService } from '../../../../../../services/twoActionsDialog/twoActionsDialogService';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ import PropTypes from 'prop-types';
import { useSelector } from 'react-redux';
import { TableExportDialog } from './components';
import { gridLight, gridDark } from '../../../../theme/';
import { ConfigUtils, TranslationUtils, FileManagementUtils } from '../../../../utils';
import { ConfigUtils, TranslationUtils } from '../../../../utils';
import { FileManagementUtils } from '../../../../utils/FileManagementUtils';
import { useOrganizationId } from '../../../../state/hooks/OrganizationHooks.js';
import { useWorkspaceId } from '../../../../state/hooks/WorkspaceHooks.js';
import { TableUtils } from '../../../../utils/TableUtils';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import React from 'react';
import { UploadFile, UPLOAD_FILE_STATUS_KEY } from '@cosmotech/ui';
import PropTypes from 'prop-types';
import { useTranslation } from 'react-i18next';
import { ConfigUtils, TranslationUtils, FileManagementUtils } from '../../../../utils';
import { ConfigUtils, TranslationUtils } from '../../../../utils';
import { FileManagementUtils } from '../../../../utils/FileManagementUtils';
import { useOrganizationId } from '../../../../state/hooks/OrganizationHooks.js';
import { useWorkspaceId } from '../../../../state/hooks/WorkspaceHooks.js';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { ConfigUtils } from '../../../../utils/ConfigUtils';
import { VAR_TYPES_COMPONENTS_MAPPING } from '../../../../utils/scenarioParameters/VarTypesComponentsMapping';
import PropTypes from 'prop-types';
import { useStore } from 'react-redux';
import { useScenarioResetValues } from '../../ScenarioParameters';
import { useScenarioResetValues } from '../../ScenarioParametersContext';

const ScenarioParameterInput = ({ parameterData, context }) => {
const subType = ConfigUtils.getParameterAttribute(parameterData, 'subType');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import ScenarioParametersTab from './ScenarioParametersTab';
import { ScenarioParametersTabs } from '../index';
import ScenarioParametersTabs from './ScenarioParametersTabs';
import { ConfigUtils } from '../../../../utils';
// eslint-disable-next-line max-len
import { CUSTOM_PARAMETERS_GROUPS_COMPONENTS_MAPPING } from '../../../../utils/scenarioParameters/custom/ParametersGroupsComponentsMapping';
Expand Down
1 change: 0 additions & 1 deletion src/components/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

export { ScenarioParameters } from './ScenarioParameters';
export { PermissionsGate } from './PermissionsGate';
export { UserStatusGate } from './UserStatusGate';
export { default as AboutContent } from './AboutContent';
export { SessionTimeoutDialog } from './SessionTimeoutDialog';
export { TechnicalInfoContent } from './TechnicalInfoContent';
Expand Down
3 changes: 2 additions & 1 deletion src/hooks/ScenarioParametersHooks.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import { useSolution } from '../state/hooks/SolutionHooks';
import { useCurrentScenarioData, useScenarios } from '../state/hooks/ScenarioHooks';
import { useAddDatasetToStore } from '../state/hooks/DatasetHooks';
import { useCallback, useMemo } from 'react';
import { FileManagementUtils, ScenarioParametersUtils } from '../utils';
import { ScenarioParametersUtils } from '../utils';
import { FileManagementUtils } from '../utils/FileManagementUtils';
import { useFormContext } from 'react-hook-form';

const getRunTemplateParametersIds = (runTemplatesParametersIdsDict, runTemplateId) => {
Expand Down
3 changes: 2 additions & 1 deletion src/services/config/Menu.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
// Copyright (c) Cosmo Tech.
// Licensed under the MIT license.

import { AboutContent, TechnicalInfoContent } from '../../components';
import AboutContent from '../../components/AboutContent';
import { TechnicalInfoContent } from '../../components/TechnicalInfoContent';

// If you do not want to display About entry in help menu, set About to null
export const About = AboutContent;
Expand Down
5 changes: 4 additions & 1 deletion src/utils/FileManagementUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ import DatasetService from '../services/dataset/DatasetService';
import WorkspaceService from '../services/workspace/WorkspaceService';
import { AppInsights } from '../services/AppInsights';
import { DATASET_ID_VARTYPE, VALID_MIME_TYPES } from '../services/config/ApiConstants';
import { ConfigUtils, DatasetsUtils, ScenarioParametersUtils, SecurityUtils } from '.';
import applicationStore from '../state/Store.config';
import { dispatchSetApplicationErrorMessage } from '../state/dispatchers/app/ApplicationDispatcher';
import { ConfigUtils } from './ConfigUtils';
import { DatasetsUtils } from './DatasetsUtils';
import { ScenarioParametersUtils } from './scenarioParameters/ScenarioParametersUtils';
import { SecurityUtils } from './SecurityUtils';

const appInsights = AppInsights.getInstance();
const _applyUploadPreprocessToContent = (clientFileDescriptor) => {
Expand Down
2 changes: 1 addition & 1 deletion src/utils/__test__/FileManagementUtils.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Cosmo Tech.
// Licensed under the MIT license.

import { FileManagementUtils } from '../.';
import { FileManagementUtils } from '../FileManagementUtils';

describe('isFileValidFormat', () => {
test.each`
Expand Down
1 change: 0 additions & 1 deletion src/utils/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,5 @@ export { ScenariosUtils } from './ScenariosUtils';
export { ScenarioParametersUtils } from './scenarioParameters/ScenarioParametersUtils';
export { SecurityUtils } from './SecurityUtils';
export { WorkspacesUtils } from './WorkspacesUtils';
export { FileManagementUtils } from './FileManagementUtils';
export { Notifier, useSubscribeToNotifier } from './notifiers';
export { ParameterConstraintsUtils } from './ParameterConstraintsUtils';
2 changes: 1 addition & 1 deletion src/utils/scenarioParameters/ScenarioParametersUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import rfdc from 'rfdc';
import { VAR_TYPES_DEFAULT_VALUES } from './DefaultValues';
import { DATASET_ID_VARTYPE } from '../../services/config/ApiConstants';
import { ConfigUtils } from '..';
import { ConfigUtils } from '../ConfigUtils';

const clone = rfdc();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ import {
} from '@mui/material';
import { BasicEnumInput, BasicTextInput, UploadFile } from '@cosmotech/ui';
import { Controller, FormProvider, useForm } from 'react-hook-form';
import { DatasetsUtils, FileManagementUtils } from '../../../../../../utils';
import { DatasetsUtils } from '../../../../../../utils';
import { FileManagementUtils } from '../../../../../../utils/FileManagementUtils';
import { useTranslation } from 'react-i18next';
import { useCreateDataset } from '../../../../../../state/hooks/DatasetHooks';
import { DATASET_SOURCE_TYPE } from '../../../../../../services/config/ApiConstants';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Accordion, AccordionSummary, AccordionDetails, Button, Card, Grid, Pape
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
import WarningAmberOutlinedIcon from '@mui/icons-material/WarningAmberOutlined';
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
import { ScenarioPowerBiReport } from '../index';
import ScenarioPowerBiReport from '../ScenarioPowerBiReport';
import { useScenarioDashboardCard } from './ScenarioDashboardCardHook';
import { useTranslation } from 'react-i18next';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,11 @@ beforeEach(() => {
jest.resetModules();
});

jest.mock('../index', () => ({
__esModule: true,
ScenarioPowerBiReport: () => {
return <div data-testid="scenario-powerbi-report" />;
},
}));
// Mind the double arrow functions to mock the default export of a React component
jest.mock('../ScenarioPowerBiReport', () => {
const ScenarioPowerBiReport = () => <div data-testid="scenario-powerbi-report" />;
return ScenarioPowerBiReport;
});

jest.mock('./ScenarioDashboardCardHook', () => ({
useScenarioDashboardCard: jest.fn(),
Expand Down
20 changes: 10 additions & 10 deletions tests/samples/reduxState.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Copyright (c) Cosmo Tech.
// Licensed under the MIT license.

import {
DEFAULT_APPLICATION,
DEFAULT_ORGANIZATION_DATA,
DEFAULT_SCENARIOS_LIST_DATA,
DEFAULT_SOLUTION_DATA,
DEFAULT_DATASETS_LIST_DATA,
SCENARIODATA_WITH_USERS,
WORKSPACEDATA_WITH_USERS,
USER_AUTH_ADMIN,
} from '.';
// Copyright (c) Cosmo Tech.
// Licensed under the MIT license.

import { DEFAULT_APPLICATION } from './application';
import { SCENARIODATA_WITH_USERS, DEFAULT_SCENARIOS_LIST_DATA } from './scenarios';
import { WORKSPACEDATA_WITH_USERS } from './workspace';
import { USER_AUTH_ADMIN } from './auth';
import { DEFAULT_ORGANIZATION_DATA } from './organizations';
import { DEFAULT_DATASETS_LIST_DATA } from './datasets';
import { DEFAULT_SOLUTION_DATA } from './solution';

export const DEFAULT_REDUX_STATE = {
application: DEFAULT_APPLICATION,
Expand Down

0 comments on commit 1d08c29

Please sign in to comment.