@agentscope-ai/design 1.0.26-beta.1767840384443 → 1.0.26-beta.1767843408082

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,6 @@ import useMergedState from '@rc-component/util/lib/hooks/useMergedState';
18
18
  import { Segmented, Tabs } from 'antd';
19
19
  import classNames from 'classnames';
20
20
  import { useCallback, useMemo } from 'react';
21
- import { flushSync } from 'react-dom';
22
21
  import { useStyle } from "./index.style";
23
22
  import { jsx as _jsx } from "react/jsx-runtime";
24
23
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -41,12 +40,10 @@ var SparkTabs = function SparkTabs(props) {
41
40
  setMergedActiveKey = _useMergedState2[1];
42
41
  var Style = useStyle();
43
42
 
44
- // 缓存 onChange 回调,使用 flushSync 强制同步更新,防止卡顿时选中态丢失
43
+ // 缓存 onChange 回调
45
44
  var handleChange = useCallback(function (key) {
46
45
  var _props$onChange;
47
- flushSync(function () {
48
- setMergedActiveKey(key);
49
- });
46
+ setMergedActiveKey(key);
50
47
  (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, key);
51
48
  }, [setMergedActiveKey, props.onChange]);
52
49
 
@@ -67,24 +64,28 @@ var SparkTabs = function SparkTabs(props) {
67
64
  return classNames("".concat(sparkPrefix, "-segmented-tab-bar"), _defineProperty({}, "".concat(sparkPrefix, "-segmented-tab-bar-centered"), centered));
68
65
  }, [sparkPrefix, centered]);
69
66
 
70
- // 缓存 renderTabBar 函数
71
- var renderTabBar = useCallback(function () {
72
- return /*#__PURE__*/_jsx(Segmented, {
73
- options: segmentedOptions,
74
- onChange: handleChange,
75
- className: segmentedClassName,
76
- value: mergedActiveKey,
77
- size: props.size
67
+ // 获取当前选中 tab 的内容
68
+ var activeContent = useMemo(function () {
69
+ var _props$items2;
70
+ var activeItem = (_props$items2 = props.items) === null || _props$items2 === void 0 ? void 0 : _props$items2.find(function (item) {
71
+ return item.key === mergedActiveKey;
78
72
  });
79
- }, [segmentedOptions, handleChange, segmentedClassName, mergedActiveKey, props.size]);
73
+ return activeItem === null || activeItem === void 0 ? void 0 : activeItem.children;
74
+ }, [props.items, mergedActiveKey]);
75
+
76
+ // segmented 类型:分离 Segmented 和内容渲染,避免 renderTabBar 导致的样式问题
80
77
  if (type === 'segmented') {
81
78
  return /*#__PURE__*/_jsxs(_Fragment, {
82
- children: [/*#__PURE__*/_jsx(Style, {}), /*#__PURE__*/_jsx(Tabs, _objectSpread(_objectSpread({
83
- animated: false
84
- }, restProps), {}, {
85
- activeKey: mergedActiveKey,
86
- renderTabBar: renderTabBar
87
- }))]
79
+ children: [/*#__PURE__*/_jsx(Style, {}), /*#__PURE__*/_jsx(Segmented, {
80
+ options: segmentedOptions,
81
+ value: mergedActiveKey,
82
+ onChange: handleChange,
83
+ className: segmentedClassName,
84
+ size: props.size
85
+ }), /*#__PURE__*/_jsx("div", {
86
+ className: "".concat(sparkPrefix, "-segmented-tab-content"),
87
+ children: activeContent
88
+ })]
88
89
  });
89
90
  }
90
91
  return /*#__PURE__*/_jsxs(_Fragment, {