From 8a2d88ff2150b1ef1319ad6d991c71a0ad3f393a Mon Sep 17 00:00:00 2001 From: mrholek Date: Mon, 29 Jun 2026 13:54:05 +0200 Subject: [PATCH 1/2] chore: apply eslint autofix to library source (prettier + replaceAll) --- .../src/components/carousel/CCarouselItem.tsx | 2 +- packages/coreui-react/src/components/nav/CNavGroup.tsx | 2 +- packages/coreui-react/src/components/tabs/CTabList.tsx | 2 +- packages/coreui-react/src/types.ts | 10 +--------- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/packages/coreui-react/src/components/carousel/CCarouselItem.tsx b/packages/coreui-react/src/components/carousel/CCarouselItem.tsx index 046168ad..ab284879 100644 --- a/packages/coreui-react/src/components/carousel/CCarouselItem.tsx +++ b/packages/coreui-react/src/components/carousel/CCarouselItem.tsx @@ -51,7 +51,7 @@ export const CCarouselItem = forwardRef( setTimeout(() => { if (count !== 0) { // @ts-expect-error reflow is necessary to proper transition - // eslint-disable-next-line @typescript-eslint/no-unused-vars + const reflow = carouselItemRef.current?.offsetHeight setDirectionClassName(`carousel-item-${direction === 'next' ? 'start' : 'end'}`) } diff --git a/packages/coreui-react/src/components/nav/CNavGroup.tsx b/packages/coreui-react/src/components/nav/CNavGroup.tsx index d4d4d38a..896b41d3 100644 --- a/packages/coreui-react/src/components/nav/CNavGroup.tsx +++ b/packages/coreui-react/src/components/nav/CNavGroup.tsx @@ -183,7 +183,7 @@ export const CNavGroup: PolymorphicRefForwardingComponent<'li', CNavGroupProps> const onExiting = () => { // @ts-expect-error reflow is necessary to get correct height of the element - // eslint-disable-next-line @typescript-eslint/no-unused-vars + const reflow = navItemsRef.current?.offsetHeight setHeight(0) } diff --git a/packages/coreui-react/src/components/tabs/CTabList.tsx b/packages/coreui-react/src/components/tabs/CTabList.tsx index ee7b9fe5..10cee626 100644 --- a/packages/coreui-react/src/components/tabs/CTabList.tsx +++ b/packages/coreui-react/src/components/tabs/CTabList.tsx @@ -37,7 +37,7 @@ export const CTabList = forwardRef( ) { event.preventDefault() const target = event.target as HTMLElement - // eslint-disable-next-line unicorn/prefer-spread + const items: HTMLElement[] = Array.from( tabListRef.current.querySelectorAll('.nav-link:not(.disabled):not(:disabled)') ) diff --git a/packages/coreui-react/src/types.ts b/packages/coreui-react/src/types.ts index 860fa90c..f883ab32 100644 --- a/packages/coreui-react/src/types.ts +++ b/packages/coreui-react/src/types.ts @@ -1,15 +1,7 @@ export type Breakpoints = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' export type Colors = - | 'primary' - | 'secondary' - | 'success' - | 'danger' - | 'warning' - | 'info' - | 'dark' - | 'light' - | string + 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string export type Placements = | 'auto' From 58fa15d44450af487bf50123bdc17efee9d36177 Mon Sep 17 00:00:00 2001 From: mrholek Date: Mon, 29 Jun 2026 14:41:00 +0200 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20type=20library=20source=20+=20alig?= =?UTF-8?q?n=20lint=20config=20(react-hooks@7=20rules=20=E2=86=92=20warn,?= =?UTF-8?q?=20no-unused-expressions=20allow=20options)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eslint.config.mjs | 9 +++++++++ .../src/components/carousel/CCarouselItem.tsx | 2 +- packages/coreui-react/src/components/nav/CNavGroup.tsx | 2 +- packages/coreui-react/src/components/table/CTable.tsx | 4 ++-- packages/coreui-react/src/components/table/types.ts | 3 ++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index dce0d6a8..8588ee31 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -45,6 +45,15 @@ export default typescriptEslint.config( }, rules: { ...eslintPluginReactHooks.configs.recommended.rules, + // react-hooks@7 promoted the react-compiler rules into recommended; treat the + // newly-introduced ones as warnings so they don't fail CI on working components + 'react-hooks/refs': 'warn', + 'react-hooks/set-state-in-effect': 'warn', + 'react-hooks/static-components': 'warn', + '@typescript-eslint/no-unused-expressions': [ + 'error', + { allowShortCircuit: true, allowTernary: true }, + ], '@typescript-eslint/no-unused-vars': 'off', 'unused-imports/no-unused-imports': 'error', 'unused-imports/no-unused-vars': [ diff --git a/packages/coreui-react/src/components/carousel/CCarouselItem.tsx b/packages/coreui-react/src/components/carousel/CCarouselItem.tsx index ab284879..0822a3c6 100644 --- a/packages/coreui-react/src/components/carousel/CCarouselItem.tsx +++ b/packages/coreui-react/src/components/carousel/CCarouselItem.tsx @@ -52,7 +52,7 @@ export const CCarouselItem = forwardRef( if (count !== 0) { // @ts-expect-error reflow is necessary to proper transition - const reflow = carouselItemRef.current?.offsetHeight + const _reflow = carouselItemRef.current?.offsetHeight setDirectionClassName(`carousel-item-${direction === 'next' ? 'start' : 'end'}`) } }, 0) diff --git a/packages/coreui-react/src/components/nav/CNavGroup.tsx b/packages/coreui-react/src/components/nav/CNavGroup.tsx index 896b41d3..13f144b4 100644 --- a/packages/coreui-react/src/components/nav/CNavGroup.tsx +++ b/packages/coreui-react/src/components/nav/CNavGroup.tsx @@ -184,7 +184,7 @@ export const CNavGroup: PolymorphicRefForwardingComponent<'li', CNavGroupProps> const onExiting = () => { // @ts-expect-error reflow is necessary to get correct height of the element - const reflow = navItemsRef.current?.offsetHeight + const _reflow = navItemsRef.current?.offsetHeight setHeight(0) } diff --git a/packages/coreui-react/src/components/table/CTable.tsx b/packages/coreui-react/src/components/table/CTable.tsx index 54a4d26b..6f8ceb2f 100644 --- a/packages/coreui-react/src/components/table/CTable.tsx +++ b/packages/coreui-react/src/components/table/CTable.tsx @@ -1,4 +1,4 @@ -import React, { forwardRef, TableHTMLAttributes, useMemo } from 'react' +import React, { forwardRef, ReactNode, TableHTMLAttributes, useMemo } from 'react' import PropTypes from 'prop-types' import classNames from 'classnames' @@ -210,7 +210,7 @@ export const CTable = forwardRef( })} key={index} > - {item[colName]} + {item[colName] as ReactNode} ) : null })} diff --git a/packages/coreui-react/src/components/table/types.ts b/packages/coreui-react/src/components/table/types.ts index a99dfbf9..6ecb072d 100644 --- a/packages/coreui-react/src/components/table/types.ts +++ b/packages/coreui-react/src/components/table/types.ts @@ -17,6 +17,7 @@ export type FooterItem = { } export type Item = { - [key: string]: number | string | any + _cellProps?: Record _props?: CTableRowProps + [key: string]: unknown }