Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(app-platform): upgrade platform tools to use vite and react 18 #3380

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
![React 18](https://img.shields.io/badge/react-18-blue)
This project was bootstrapped with [DHIS2 Application Platform](https://github.com/dhis2/app-platform).

## Available Scripts
Expand Down
2 changes: 1 addition & 1 deletion config/testSetup.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Adapter from '@cfaester/enzyme-adapter-react-18'
import { configure } from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
import React from 'react'

// https://stackoverflow.com/questions/58070996/how-to-fix-the-warning-uselayouteffect-does-nothing-on-the-server
Expand Down
4 changes: 2 additions & 2 deletions d2.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ const config = {
},

entryPoints: {
app: './src/AppWrapper.js',
plugin: './src/PluginWrapper.js',
app: './src/AppWrapper.jsx',
plugin: './src/PluginWrapper.jsx',
},

coreApp: true,
Expand Down
17 changes: 8 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,23 @@
"postinstall": "patch-package"
},
"devDependencies": {
"@dhis2/cli-app-scripts": "^11.7.5",
"@dhis2/cli-style": "^10.7.5",
"@cfaester/enzyme-adapter-react-18": "^0.8.0",
"@dhis2/cli-app-scripts": "^12.3.0",
"@dhis2/cli-style": "^10.7.6",
"@dhis2/cypress-commands": "^10.0.6",
"@dhis2/cypress-plugins": "^10.0.6",
"@semantic-release/changelog": "^6",
"@semantic-release/exec": "^6",
"@semantic-release/git": "^10",
"@testing-library/react": "^12.1.5",
"@testing-library/dom": "^10.4.0",
"@testing-library/react": "^16.2.0",
"cypress": "^13.17.0",
"cypress-tags": "^1.2.2",
"cypress-wait-until": "^1.7.2",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.8",
"enzyme-to-json": "^3.6.2",
"eslint-plugin-cypress": "^2.15.1",
"identity-obj-proxy": "^3.0.0",
"patch-package": "^6.5.1",
"redux-devtools": "^3.7.0",
"redux-mock-store": "^1.5.5",
Expand All @@ -42,13 +44,12 @@
},
"dependencies": {
"@dhis2/analytics": "^26.8.4",
"@dhis2/app-runtime": "^3.11.2",
"@dhis2/app-runtime": "^3.13.1",
"@dhis2/app-runtime-adapter-d2": "^1.1.0",
"@dhis2/app-service-datastore": "^1.0.0-beta.3",
"@dhis2/maps-gl": "^4.0.1",
"@dhis2/ui": "^9.13.0",
"@dhis2/ui": "^10.1.11",
"@krakenjs/post-robot": "^11.0.0",
"@testing-library/react-hooks": "^8.0.1",
"abortcontroller-polyfill": "^1.7.5",
"array-move": "^4.0.0",
"classnames": "^2.3.2",
Expand All @@ -69,8 +70,6 @@
"loglevel": "^1.8.1",
"prop-types": "^15.8.1",
"query-string": "^8.1.0",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"react-redux": "^8.1.2",
"react-sortable-hoc": "^1.11.0",
"react-virtualized": "^9.22.5",
Expand Down
6 changes: 3 additions & 3 deletions src/AppWrapper.js → src/AppWrapper.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import log from 'loglevel'
import queryString from 'query-string'
import React from 'react'
import { Provider as ReduxProvider } from 'react-redux'
import App from './components/app/App.js'
import OrgUnitsProvider from './components/OrgUnitsProvider.js'
import WindowDimensionsProvider from './components/WindowDimensionsProvider.js'
import App from './components/app/App.jsx'
import OrgUnitsProvider from './components/OrgUnitsProvider.jsx'
import WindowDimensionsProvider from './components/WindowDimensionsProvider.jsx'
import store from './store/index.js'
import { USER_DATASTORE_NAMESPACE } from './util/analyticalObject.js'
import { appQueries, providerDataTransformation } from './util/app.js'
Expand Down
2 changes: 1 addition & 1 deletion src/PluginWrapper.js → src/PluginWrapper.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import postRobot from '@krakenjs/post-robot'
import { debounce } from 'lodash/fp'
import PropTypes from 'prop-types'
import React, { useEffect, useLayoutEffect, useState } from 'react'
import { Plugin } from './components/plugin/Plugin.js'
import { Plugin } from './components/plugin/Plugin.jsx'
import { getPWAInstallationStatus } from './util/getPWAInstallationStatus.js'

const LoadingMask = () => {
Expand Down
File renamed without changes.
18 changes: 9 additions & 9 deletions src/components/app/App.js → src/components/app/App.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import cx from 'classnames'
import React, { useState } from 'react'
import { useSelector } from 'react-redux'
import BottomPanel from '../datatable/BottomPanel.js'
import DownloadModeMenu from '../download/DownloadMenubar.js'
import DownloadSettings from '../download/DownloadSettings.js'
import LayersPanel from '../layers/LayersPanel.js'
import LayersLoader from '../loaders/LayersLoader.js'
import MapPosition from '../map/MapPosition.js'
import AppMenu from './AppMenu.js'
import DetailsPanel from './DetailsPanel.js'
import ModalContainer from './ModalContainer.js'
import BottomPanel from '../datatable/BottomPanel.jsx'
import DownloadModeMenu from '../download/DownloadMenubar.jsx'
import DownloadSettings from '../download/DownloadSettings.jsx'
import LayersPanel from '../layers/LayersPanel.jsx'
import LayersLoader from '../loaders/LayersLoader.jsx'
import MapPosition from '../map/MapPosition.jsx'
import AppMenu from './AppMenu.jsx'
import DetailsPanel from './DetailsPanel.jsx'
import ModalContainer from './ModalContainer.jsx'
import './App.css'
import styles from './styles/App.module.css'
import { useLoadDataStore } from './useLoadDataStore.js'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Toolbar, HoverMenuBar } from '@dhis2/analytics'
import PropTypes from 'prop-types'
import React from 'react'
import DownloadButton from '../download/DownloadButton.js'
import InterpretationsToggle from '../interpretations/InterpretationsToggle.js'
import AddLayerButton from '../layers/overlays/AddLayerButton.js'
import FileMenu from './FileMenu.js'
import DownloadButton from '../download/DownloadButton.jsx'
import InterpretationsToggle from '../interpretations/InterpretationsToggle.jsx'
import AddLayerButton from '../layers/overlays/AddLayerButton.jsx'
import FileMenu from './FileMenu.jsx'

const AppMenu = ({ onFileMenuAction }) => (
<Toolbar>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import cx from 'classnames'
import PropTypes from 'prop-types'
import React from 'react'
import { useSelector } from 'react-redux'
import FeatureProfile from '../feature/FeatureProfile.js'
import Interpretations from '../interpretations/Interpretations.js'
import OrgUnitProfile from '../orgunits/OrgUnitProfile.js'
import FeatureProfile from '../feature/FeatureProfile.jsx'
import Interpretations from '../interpretations/Interpretations.jsx'
import OrgUnitProfile from '../orgunits/OrgUnitProfile.jsx'
import styles from './styles/DetailsPanel.module.css'

const DetailsPanel = ({ interpretationsRenderCount }) => {
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import React from 'react'
import { useSelector } from 'react-redux'
import LayerEdit from '../edit/LayerEdit.js'
import ContextMenu from '../map/ContextMenu.js'
import OpenAsMapDialog from '../openAs/OpenAsMapDialog.js'
import LayerEdit from '../edit/LayerEdit.jsx'
import ContextMenu from '../map/ContextMenu.jsx'
import OpenAsMapDialog from '../openAs/OpenAsMapDialog.jsx'

const ModalContainer = () => {
const analyticalObject = useSelector((state) => state.analyticalObject)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,28 @@ import { render } from '@testing-library/react'
import React from 'react'
import { Provider } from 'react-redux'
import configureMockStore from 'redux-mock-store'
import DetailsPanel from '../DetailsPanel.js'
import DetailsPanel from '../DetailsPanel.jsx'

const mockStore = configureMockStore()

jest.mock(
'../../interpretations/Interpretations.js',
'../../interpretations/Interpretations.jsx',
() =>
function MockInterpretations() {
return <div>Interpretations</div>
}
)

jest.mock(
'../../orgunits/OrgUnitProfile.js',
'../../orgunits/OrgUnitProfile.jsx',
() =>
function MockOrgUnitProfile() {
return <div>Org Unit Profile</div>
}
)

jest.mock(
'../../feature/FeatureProfile.js',
'../../feature/FeatureProfile.jsx',
() =>
function MockFeatureProfile() {
return <div>Feature Profile</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import {
CLASSIFICATION_EQUAL_INTERVALS,
CLASSIFICATION_SINGLE_COLOR,
} from '../../constants/layers.js'
import Classification from './Classification.js'
import LegendSetSelect from './LegendSetSelect.js'
import LegendTypeSelect from './LegendTypeSelect.js'
import SingleColor from './SingleColor.js'
import Classification from './Classification.jsx'
import LegendSetSelect from './LegendSetSelect.jsx'
import LegendTypeSelect from './LegendTypeSelect.jsx'
import SingleColor from './SingleColor.jsx'

// Wrapper component for selecting legend style used for numeric map styles
const NumericLegendStyle = (props) => {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
getColorScale,
getColorPalette,
} from '../../util/colors.js'
import ColorScale from './ColorScale.js'
import ColorScale from './ColorScale.jsx'
import styles from './styles/ColorScaleSelect.module.css'

const ColorScaleSelect = ({ palette, width, onChange, className }) => {
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import {
LABEL_FONT_COLOR,
} from '../../constants/layers.js'
import { cssColor } from '../../util/colors.js'
import ColorButton from './ColorButton.js'
import NumberField from './NumberField.js'
import ColorButton from './ColorButton.jsx'
import NumberField from './NumberField.jsx'
import styles from './styles/FontStyle.module.css'

const FontStyle = ({
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Radio as UiRadio } from '@dhis2/ui'
import PropTypes from 'prop-types'
import React, { useContext } from 'react'
import { RadioContext } from './RadioGroup.js'
import { RadioContext } from './RadioGroup.jsx'

const Radio = ({ value, disabled, dense = true, dataTest, label }) => {
const { radio, onChange } = useContext(RadioContext)
Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion src/components/core/Tab.js → src/components/core/Tab.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Tab as UiTab } from '@dhis2/ui'
import PropTypes from 'prop-types'
import React, { useContext } from 'react'
import { TabContext } from './Tabs.js'
import { TabContext } from './Tabs.jsx'

const Tab = ({ value, dataTest, children }) => {
const { tab, onChange } = useContext(TabContext)
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { shallow } from 'enzyme'
import React from 'react'
import Drawer from '../Drawer.js'
import Drawer from '../Drawer.jsx'

describe('Drawer', () => {
const renderWithProps = (props) => shallow(<Drawer {...props} />)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { shallow } from 'enzyme'
import React from 'react'
import ListItem from '../ListItem.js'
import ListItem from '../ListItem.jsx'

describe('Drawer', () => {
it('should not render if children is missing', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
} from '@dhis2/ui'
import { shallow } from 'enzyme'
import React from 'react'
import SelectField from '../SelectField.js'
import SelectField from '../SelectField.jsx'

const items = [
{
Expand Down
File renamed without changes.
38 changes: 19 additions & 19 deletions src/components/core/index.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import Checkbox from './Checkbox.js'
import ColorButton from './ColorButton.js'
import ColorPicker from './ColorPicker.js'
import ColorScale from './ColorScale.js'
import ColorScaleSelect from './ColorScaleSelect.js'
import Checkbox from './Checkbox.jsx'
import ColorButton from './ColorButton.jsx'
import ColorPicker from './ColorPicker.jsx'
import ColorScale from './ColorScale.jsx'
import ColorScaleSelect from './ColorScaleSelect.jsx'
import ConditionalWrapper from './ConditionalWrapper.js'
import DatePicker from './DatePicker.js'
import FontStyle from './FontStyle.js'
import Help from './Help.js'
import IconButton from './IconButton.js'
import ImageSelect from './ImageSelect.js'
import LabelDisplayOptions from './LabelDisplayOptions.js'
import MenuButton from './MenuButton.js'
import NumberField from './NumberField.js'
import Radio from './Radio.js'
import RadioGroup from './RadioGroup.js'
import SelectField from './SelectField.js'
import Tab from './Tab.js'
import Tabs from './Tabs.js'
import TextField from './TextField.js'
import DatePicker from './DatePicker.jsx'
import FontStyle from './FontStyle.jsx'
import Help from './Help.jsx'
import IconButton from './IconButton.jsx'
import ImageSelect from './ImageSelect.jsx'
import LabelDisplayOptions from './LabelDisplayOptions.jsx'
import MenuButton from './MenuButton.jsx'
import NumberField from './NumberField.jsx'
import Radio from './Radio.jsx'
import RadioGroup from './RadioGroup.jsx'
import SelectField from './SelectField.jsx'
import Tab from './Tab.jsx'
import Tabs from './Tabs.jsx'
import TextField from './TextField.jsx'

export {
Checkbox,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import React, { useEffect } from 'react'
import { useDispatch } from 'react-redux'
import { setBooleanStyle } from '../../actions/layerEdit.js'
import { qualitativeColors } from '../../constants/colors.js'
import OptionStyle from '../optionSet/OptionStyle.js'
import OptionStyle from '../optionSet/OptionStyle.jsx'

const style = {
marginTop: 20,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import {
numberValueTypes,
booleanValueTypes,
} from '../../constants/valueTypes.js'
import NumericLegendStyle from '../classification/NumericLegendStyle.js'
import OptionSetStyle from '../optionSet/OptionSetStyle.js'
import BooleanStyle from './BooleanStyle.js'
import NumericLegendStyle from '../classification/NumericLegendStyle.jsx'
import OptionSetStyle from '../optionSet/OptionSetStyle.jsx'
import BooleanStyle from './BooleanStyle.jsx'

const DataItemStyle = ({ dataItem, style }) => {
if (!dataItem) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useSelector, useDispatch } from 'react-redux'
import { setStyleDataItem } from '../../actions/layerEdit.js'
import { useEventDataItems } from '../../hooks/useEventDataItems.js'
import { SelectField } from '../core/index.js'
import DataItemStyle from './DataItemStyle.js'
import DataItemStyle from './DataItemStyle.jsx'

const excludeTypes = [
'DATE',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
changeFilter,
} from '../../../actions/layerEdit.js'
import { useEventDataItems } from '../../../hooks/useEventDataItems.js'
import FilterRow from './FilterRow.js'
import FilterRow from './FilterRow.jsx'
import styles from './styles/FilterGroup.module.css'

const excludeTypes = ['FILE_RESOURCE', 'ORGANISATION_UNIT', 'COORDINATE']
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import i18n from '@dhis2/d2-i18n'
import PropTypes from 'prop-types'
import React from 'react'
import { SelectField } from '../../core/index.js'
import RemoveFilter from '../../filter/RemoveFilter.js'
import FilterSelect from './FilterSelect.js'
import RemoveFilter from '../../filter/RemoveFilter.jsx'
import FilterSelect from './FilterSelect.jsx'
import styles from './styles/FilterRow.module.css'

const FilterRow = ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
Checkbox,
DatePicker,
} from '../../core/index.js'
import OptionSetSelect from '../../optionSet/OptionSetSelect.js'
import OptionSetSelect from '../../optionSet/OptionSetSelect.jsx'
import styles from './styles/FilterSelect.module.css'

const getOperators = (valueType, optionSetId) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import {
LAYERS_PANEL_WIDTH,
RIGHT_PANEL_WIDTH,
} from '../../constants/layout.js'
import { useWindowDimensions } from '../WindowDimensionsProvider.js'
import DataTable from './DataTable.js'
import ErrorBoundary from './ErrorBoundary.js'
import ResizeHandle from './ResizeHandle.js'
import { useWindowDimensions } from '../WindowDimensionsProvider.jsx'
import DataTable from './DataTable.jsx'
import ErrorBoundary from './ErrorBoundary.jsx'
import ResizeHandle from './ResizeHandle.jsx'
import styles from './styles/BottomPanel.module.css'

// Container for DataTable
Expand Down
Loading
Loading