@@ -22,9 +22,12 @@ import { StyleProvider, createCache } from "@ant-design/cssinjs";
2222import { useCurrentTheme } from "@next-core/react-runtime" ;
2323import { RowSelectMethod , type SortOrder } from "antd/es/table/interface.js" ;
2424import type { TableProps } from "antd/es/table" ;
25+ import { DownOutlined , RightOutlined } from "@ant-design/icons" ;
26+ import type { RenderExpandIconProps } from "rc-table/lib/interface.js" ;
2527import { i18n } from "@next-core/i18n" ;
2628import { useTranslation , initializeReactI18n } from "@next-core/i18n/react" ;
2729import { Trans } from "react-i18next" ;
30+ import classNames from "classnames" ;
2831import { K , NS , locales } from "./i18n.js" ;
2932import {
3033 DEFAULT_PAGE ,
@@ -297,7 +300,7 @@ export const NextTableComponent = forwardRef(function LegacyNextTableComponent(
297300 data = { data }
298301 />
299302 ) : (
300- < > { col . title } </ >
303+ < > { col . title as string } </ >
301304 ) ;
302305 } ,
303306 onCell ( record : RecordType ) {
@@ -413,9 +416,22 @@ export const NextTableComponent = forwardRef(function LegacyNextTableComponent(
413416 : theme . defaultAlgorithm ,
414417 components : {
415418 Table : {
416- headerBorderRadius : 0 ,
419+ headerBorderRadius :
420+ "var(--eo-next-table-header-border-radius)" as unknown as number ,
417421 headerSplitColor : "none" ,
418- ...( bordered ? { borderColor : "#f0f0f0" } : { } ) ,
422+ headerBg : "var(--antd-table-header-bg)" ,
423+ headerSortActiveBg : "var(--antd-table-header-sort-active-bg)" ,
424+ headerSortHoverBg : "var(--antd-table-header-sort-active-bg)" ,
425+ bodySortBg : "var(--antd-table-header-overwrite-sort-td-active-bg)" ,
426+ // cellPaddingBlock: 11,
427+ // cellPaddingInline: 12,
428+ // cellPaddingBlockMD: 8,
429+ // cellPaddingInlineMD: 12,
430+ // cellPaddingBlockSM: 4,
431+ // cellPaddingInlineSM: 12,
432+ ...( bordered
433+ ? { borderColor : "var(--theme-gray-border-color)" }
434+ : { } ) ,
419435 } ,
420436 } ,
421437 } }
@@ -462,6 +478,10 @@ export const NextTableComponent = forwardRef(function LegacyNextTableComponent(
462478 total : dataSource ?. total ,
463479 current : page ,
464480 pageSize : pageSize ,
481+ showSizeChanger : {
482+ showSearch : false ,
483+ variant : "borderless" ,
484+ } ,
465485 showTotal : ( total : number ) => {
466486 return (
467487 < div className = "pagination-wrapper" >
@@ -558,12 +578,14 @@ export const NextTableComponent = forwardRef(function LegacyNextTableComponent(
558578 : true ;
559579 } ,
560580 expandedRowRender : expandConfig . expandedRowBrick ?. useBrick
561- ? ( record , index , indent , expanded ) => {
581+ ? ( record , index , indent /* , expanded */ ) => {
562582 const data = {
563583 rowData : record ,
564584 index,
565585 indent,
566- expanded,
586+ // Do not pass `expanded`, it changes every time the row is toggled,
587+ // thus the brick will be re-rendered every time as well.
588+ // expanded,
567589 } ;
568590 return (
569591 < CacheUseBrickItem
@@ -597,7 +619,7 @@ export const NextTableComponent = forwardRef(function LegacyNextTableComponent(
597619 </ span >
598620 ) ;
599621 }
600- : undefined ,
622+ : DefaultExpandIcon ,
601623 onExpand : ( expanded , record ) => {
602624 onRowExpand ?.( { expanded, record } ) ;
603625 } ,
@@ -662,3 +684,18 @@ export const NextTableComponent = forwardRef(function LegacyNextTableComponent(
662684 </ ConfigProvider >
663685 ) ;
664686} ) ;
687+
688+ function DefaultExpandIcon ( {
689+ expanded,
690+ expandable,
691+ onExpand,
692+ record,
693+ } : RenderExpandIconProps < RecordType > ) {
694+ const IconComponent = expanded ? DownOutlined : RightOutlined ;
695+ return (
696+ < IconComponent
697+ className = { classNames ( "expand-icon" , { invisible : ! expandable } ) }
698+ onClick = { ( e ) => expandable && onExpand ( record , e ) }
699+ />
700+ ) ;
701+ }
0 commit comments