diff --git a/.changeset/great-pants-create.md b/.changeset/great-pants-create.md new file mode 100644 index 00000000000..5d029e7e2b8 --- /dev/null +++ b/.changeset/great-pants-create.md @@ -0,0 +1,11 @@ +--- +"@comet/admin-generator": major +"@comet/admin": major +"@comet/brevo-admin": major +"@comet/cms-admin": major +"@comet/eslint-config": major +--- + +Bump MUI X Data Grid peer dependency to v8 + +See the migration guide for information on how to upgrade. diff --git a/demo/admin/package.json b/demo/admin/package.json index ecd37e5ca03..21af8c10375 100644 --- a/demo/admin/package.json +++ b/demo/admin/package.json @@ -38,8 +38,8 @@ "@fontsource-variable/roboto-flex": "^5.2.8", "@mui/material": "^7.3.7", "@mui/system": "^7.3.7", - "@mui/x-data-grid": "^7.29.12", - "@mui/x-data-grid-pro": "^7.29.12", + "@mui/x-data-grid": "^8.27.5", + "@mui/x-data-grid-pro": "^8.27.5", "@mui/x-date-pickers": "^7.29.4", "@mui/x-license": "^7.29.1", "change-case": "^5.4.4", diff --git a/demo/admin/src/news/blocks/NewsListBlock.tsx b/demo/admin/src/news/blocks/NewsListBlock.tsx index 652f21f144f..364e40c6724 100644 --- a/demo/admin/src/news/blocks/NewsListBlock.tsx +++ b/demo/admin/src/news/blocks/NewsListBlock.tsx @@ -66,10 +66,11 @@ export const NewsListBlock: BlockInterface { - updateState({ ids: newSelection as string[] }); + updateState({ ids: Array.from(newSelection.ids) as string[] }); }} + disableRowSelectionExcludeModel /> ); diff --git a/demo/admin/src/news/generated/NewsGrid.tsx b/demo/admin/src/news/generated/NewsGrid.tsx index c6261b9d006..9f7a6d9d1c0 100644 --- a/demo/admin/src/news/generated/NewsGrid.tsx +++ b/demo/admin/src/news/generated/NewsGrid.tsx @@ -30,7 +30,7 @@ import { IconButton } from "@mui/material"; import { DataGridPro } from "@mui/x-data-grid-pro"; import { DataGridProProps } from "@mui/x-data-grid-pro"; import { GridSlotsComponent } from "@mui/x-data-grid-pro"; -import { GridToolbarQuickFilter } from "@mui/x-data-grid-pro"; +import { GridToolbarQuickFilter } from "@comet/admin"; import { useMemo } from "react"; import { NewsContentBlock } from "../blocks/NewsContentBlock"; import { DamImageBlock } from "@comet/cms-admin"; @@ -197,6 +197,7 @@ export function NewsGrid() { toolbar: NewsGridToolbar as GridSlotsComponent["toolbar"], }} onRowClick={handleRowClick} + showToolbar /> ); } diff --git a/demo/admin/src/products/ManufacturerFilter.tsx b/demo/admin/src/products/ManufacturerFilter.tsx index 33132d8559b..40edbb4ea13 100644 --- a/demo/admin/src/products/ManufacturerFilter.tsx +++ b/demo/admin/src/products/ManufacturerFilter.tsx @@ -2,7 +2,7 @@ import { gql, useQuery } from "@apollo/client"; import { ClearInputAdornment } from "@comet/admin"; import Autocomplete from "@mui/material/Autocomplete"; import { type GridFilterInputValueProps, type GridFilterOperator, useGridRootProps } from "@mui/x-data-grid-pro"; -import { useCallback, useState } from "react"; +import { type ChangeEvent, useCallback, useState } from "react"; import { useIntl } from "react-intl"; import { useDebounce } from "use-debounce"; @@ -72,8 +72,8 @@ function ManufacturerFilter({ item, applyValue, apiRef }: GridFilterInputValuePr { + value={search} + onChange={(event: ChangeEvent) => { setSearch(event.target.value); }} label={apiRef.current.getLocaleText("filterPanelInputLabel")} diff --git a/demo/admin/src/products/ManufacturersGrid.tsx b/demo/admin/src/products/ManufacturersGrid.tsx index 9f4f70aaf63..bfed2866eea 100644 --- a/demo/admin/src/products/ManufacturersGrid.tsx +++ b/demo/admin/src/products/ManufacturersGrid.tsx @@ -7,6 +7,7 @@ import { FillSpace, type GridColDef, GridFilterButton, + GridToolbarQuickFilter, muiGridFilterToGql, muiGridSortToGql, StackLink, @@ -17,7 +18,7 @@ import { } from "@comet/admin"; import { Add as AddIcon, Edit, Info } from "@comet/admin-icons"; import { IconButton } from "@mui/material"; -import { DataGridPro, GridColumnHeaderTitle, GridToolbarQuickFilter } from "@mui/x-data-grid-pro"; +import { DataGridPro, GridColumnHeaderTitle } from "@mui/x-data-grid-pro"; import { type GQLDeleteManufacturerMutation, type GQLDeleteManufacturerMutationVariables, @@ -161,6 +162,7 @@ export function ManufacturersGrid() { slots={{ toolbar: ManufacturersGridToolbar, }} + showToolbar /> ); } diff --git a/demo/admin/src/products/ProductCategoryFilter.tsx b/demo/admin/src/products/ProductCategoryFilter.tsx index b548024a24c..3cdace0f4d9 100644 --- a/demo/admin/src/products/ProductCategoryFilter.tsx +++ b/demo/admin/src/products/ProductCategoryFilter.tsx @@ -2,7 +2,7 @@ import { gql, useQuery } from "@apollo/client"; import { ClearInputAdornment } from "@comet/admin"; import Autocomplete from "@mui/material/Autocomplete"; import { type GridFilterInputValueProps, type GridFilterOperator, useGridRootProps } from "@mui/x-data-grid-pro"; -import { useCallback, useState } from "react"; +import { type ChangeEvent, useCallback, useState } from "react"; import { useIntl } from "react-intl"; import { useDebounce } from "use-debounce"; @@ -73,8 +73,8 @@ function ProductCategoryFilter({ item, applyValue, apiRef }: GridFilterInputValu {...params} autoComplete="off" placeholder={intl.formatMessage({ id: "productCategory.placeholder", defaultMessage: "Choose a Product Category" })} - value={search ? search : null} - onChange={(event) => { + value={search} + onChange={(event: ChangeEvent) => { setSearch(event.target.value); }} label={apiRef.current.getLocaleText("filterPanelInputLabel")} diff --git a/demo/admin/src/products/ProductVariantsGrid.tsx b/demo/admin/src/products/ProductVariantsGrid.tsx index b5fe02613c3..89dfc5d9146 100644 --- a/demo/admin/src/products/ProductVariantsGrid.tsx +++ b/demo/admin/src/products/ProductVariantsGrid.tsx @@ -5,6 +5,7 @@ import { FillSpace, type GridColDef, GridFilterButton, + GridToolbarQuickFilter, muiGridFilterToGql, muiGridSortToGql, StackLink, @@ -14,7 +15,7 @@ import { } from "@comet/admin"; import { Add as AddIcon, Edit } from "@comet/admin-icons"; import { IconButton } from "@mui/material"; -import { DataGridPro, GridToolbarQuickFilter } from "@mui/x-data-grid-pro"; +import { DataGridPro } from "@mui/x-data-grid-pro"; import { FormattedMessage } from "react-intl"; import { @@ -124,6 +125,7 @@ export function ProductVariantsGrid({ productId }: { productId: string }) { slots={{ toolbar: ProductVariantsGridToolbar, }} + showToolbar /> ); } diff --git a/demo/admin/src/products/ProductsGrid.tsx b/demo/admin/src/products/ProductsGrid.tsx index b926628b06f..4be3cc700df 100644 --- a/demo/admin/src/products/ProductsGrid.tsx +++ b/demo/admin/src/products/ProductsGrid.tsx @@ -14,6 +14,7 @@ import { type GridColDef, GridColumnsButton, GridFilterButton, + GridToolbarQuickFilter, messages, muiGridFilterToGql, muiGridSortToGql, @@ -32,7 +33,6 @@ import { GridFilterInputSingleSelect, type GridRowSelectionModel, type GridSlotsComponent, - GridToolbarQuickFilter, } from "@mui/x-data-grid-pro"; import { ProductCategoryFilterOperators } from "@src/products/ProductCategoryFilter"; import { useMemo, useState } from "react"; @@ -81,7 +81,7 @@ function ProductsGridToolbar({ exportApi, selectionModel }: ProductsGridToolbarP label: "Publish", icon: , onClick: () => { - for (const id of selectionModel) { + for (const id of Array.from(selectionModel.ids)) { client.mutate({ mutation: updateProductStatusMutation, variables: { id: id as string, status: "Published" }, @@ -97,7 +97,7 @@ function ProductsGridToolbar({ exportApi, selectionModel }: ProductsGridToolbarP label: "Unpublish", icon: , onClick: () => { - for (const id of selectionModel) { + for (const id of Array.from(selectionModel.ids)) { client.mutate({ mutation: updateProductStatusMutation, variables: { id: id as string, status: "Unpublished" }, @@ -110,7 +110,7 @@ function ProductsGridToolbar({ exportApi, selectionModel }: ProductsGridToolbarP }, }, ]} - selectionSize={selectionModel.length} + selectionSize={selectionModel.ids.size} />