From 48c88bfff77dc3b97ec96440cc5dc5bb80f4e817 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 26 Jun 2024 13:31:33 +0200 Subject: [PATCH 1/4] Add rule to restrict from internals root --- .eslintrc.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 3afad759075e..4f549581c970 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -139,6 +139,17 @@ module.exports = { ...(ENABLE_REACT_COMPILER_PLUGIN ? { 'react-compiler/react-compiler': 'error' } : {}), // TODO move to @mui/monorepo/.eslintrc, codebase is moving away from default exports 'import/prefer-default-export': 'off', + 'import/no-restricted-paths': [ + 'error', + { + zones: [ + { + target: './packages/x-charts/src/**', + from: './packages/x-charts/src/internals/index.ts', + }, + ], + }, + ], // TODO move rule into the main repo once it has upgraded '@typescript-eslint/return-await': 'off', 'no-restricted-imports': 'off', @@ -167,7 +178,7 @@ module.exports = { // TODO move to @mui/monorepo/.eslintrc // TODO Fix props names to not conflict 'react/jsx-no-duplicate-props': [1, { ignoreCase: false }], - // TOOD move to @mui/monorepo/.eslintrc, these are false positive + // TODO move to @mui/monorepo/.eslintrc, these are false positive 'react/no-unstable-nested-components': ['error', { allowAsProps: true }], }, overrides: [ From 9f2d9996765ff90d0b39c83bb28989a6ba06e41d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 26 Jun 2024 15:03:36 +0200 Subject: [PATCH 2/4] enable for treeview and pickers --- .eslintrc.js | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 4f549581c970..f4762cac6c02 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,6 +1,19 @@ const baseline = require('@mui/monorepo/.eslintrc'); const path = require('path'); +const chartsPackages = ['x-charts', 'x-charts-pro']; + +const dataGridPackages = [ + 'x-data-grid', + 'x-data-grid-pro', + 'x-data-grid-premium', + 'x-data-grid-generator', +]; + +const datePickersPackages = ['x-date-pickers', 'x-date-pickers-pro']; + +const treeViewPackages = ['x-tree-view', 'x-tree-view-pro']; + // Enable React Compiler Plugin rules globally const ENABLE_REACT_COMPILER_PLUGIN = process.env.ENABLE_REACT_COMPILER_PLUGIN ?? false; @@ -142,12 +155,13 @@ module.exports = { 'import/no-restricted-paths': [ 'error', { - zones: [ - { - target: './packages/x-charts/src/**', - from: './packages/x-charts/src/internals/index.ts', - }, - ], + zones: [...chartsPackages, ...datePickersPackages, ...treeViewPackages].map( + (packageName) => ({ + target: `./packages/${packageName}/src/**/!(*.test.*|*.spec.*)`, + from: `./packages/${packageName}/src/internals/index.ts`, + message: `Use a more specific import instead. E.g. import { MyInternal } from '../internals/MyInternal';`, + }), + ), }, ], // TODO move rule into the main repo once it has upgraded @@ -268,18 +282,9 @@ module.exports = { ...buildPackageRestrictedImports('@mui/x-tree-view-pro', 'x-tree-view-pro', false), ...buildPackageRestrictedImports('@mui/x-license', 'x-license'), - ...addReactCompilerRule(['x-charts', 'x-charts-pro'], ENABLE_REACT_COMPILER_PLUGIN_CHARTS), - ...addReactCompilerRule( - ['x-data-grid', 'x-data-grid-pro', 'x-data-grid-premium', 'x-data-grid-generator'], - ENABLE_REACT_COMPILER_PLUGIN_DATA_GRID, - ), - ...addReactCompilerRule( - ['x-date-pickers', 'x-date-pickers-pro'], - ENABLE_REACT_COMPILER_PLUGIN_DATE_PICKERS, - ), - ...addReactCompilerRule( - ['x-tree-view', 'x-tree-view-pro'], - ENABLE_REACT_COMPILER_PLUGIN_TREE_VIEW, - ), + ...addReactCompilerRule(chartsPackages, ENABLE_REACT_COMPILER_PLUGIN_CHARTS), + ...addReactCompilerRule(dataGridPackages, ENABLE_REACT_COMPILER_PLUGIN_DATA_GRID), + ...addReactCompilerRule(datePickersPackages, ENABLE_REACT_COMPILER_PLUGIN_DATE_PICKERS), + ...addReactCompilerRule(treeViewPackages, ENABLE_REACT_COMPILER_PLUGIN_TREE_VIEW), ], }; From 4624f590c2b9386fdab9dd2e8184b67bdff3d9f5 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 26 Jun 2024 15:04:05 +0200 Subject: [PATCH 3/4] Fix issues --- .../src/DateTimePicker/DateTimePickerToolbar.tsx | 2 +- .../DesktopDateTimePicker/DesktopDateTimePicker.tsx | 13 ++++++------- .../DesktopDateTimePickerLayout.tsx | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx b/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx index c8df143a0131..c6f456437ae8 100644 --- a/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx +++ b/packages/x-date-pickers/src/DateTimePicker/DateTimePickerToolbar.tsx @@ -20,7 +20,7 @@ import { MULTI_SECTION_CLOCK_SECTION_WIDTH } from '../internals/constants/dimens import { formatMeridiem } from '../internals/utils/date-utils'; import { MakeOptional } from '../internals/models/helpers'; import { pickersToolbarTextClasses } from '../internals/components/pickersToolbarTextClasses'; -import { pickersToolbarClasses } from '../internals'; +import { pickersToolbarClasses } from '../internals/components/pickersToolbarClasses'; import { PickerValidDate } from '../models'; export interface ExportedDateTimePickerToolbarProps extends ExportedBaseToolbarProps { diff --git a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx index be5eb451549d..b9b40fd3d62f 100644 --- a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx +++ b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx @@ -28,19 +28,18 @@ import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView, } from '../timeViewRenderers'; -import { - DefaultizedProps, - UsePickerViewsProps, - VIEW_HEIGHT, - isDatePickerView, - isInternalTimeView, -} from '../internals'; + import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses, } from '../MultiSectionDigitalClock'; import { digitalClockClasses } from '../DigitalClock'; import { DesktopDateTimePickerLayout } from './DesktopDateTimePickerLayout'; +import { VIEW_HEIGHT } from '../internals/constants/dimensions'; +import { DefaultizedProps } from '../internals/models/helpers'; +import { UsePickerViewsProps } from '../internals/hooks/usePicker/usePickerViews'; +import { isInternalTimeView } from '../internals/utils/time-utils'; +import { isDatePickerView } from '../internals/utils/date-utils'; const rendererInterceptor = function rendererInterceptor< TDate extends PickerValidDate, diff --git a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx index fca2a0f44898..85b531fef636 100644 --- a/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx +++ b/packages/x-date-pickers/src/DesktopDateTimePicker/DesktopDateTimePickerLayout.tsx @@ -11,7 +11,7 @@ import { usePickerLayout, } from '../PickersLayout'; import { PickerValidDate } from '../models'; -import { DateOrTimeViewWithMeridiem } from '../internals'; +import { DateOrTimeViewWithMeridiem } from '../internals/models/common'; /** * @ignore - internal component. From 9dfaa6a6431de2000ece1989d2ce4d3bb897e8c0 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 26 Jun 2024 16:51:19 +0200 Subject: [PATCH 4/4] Trigger Build