Skip to content

Commit c69fc37

Browse files
committed
fix(chart): fix tab name update issue
1 parent f4648f7 commit c69fc37

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

frontend/src/app/components/FormGenerator/Basic/BasicUnControlledTabPanel.tsx

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,26 @@ const BasicUnControlledTabPanel: FC<ItemLayoutProps<ChartStyleConfig>> = memo(
166166
onEdit={handleEdit}
167167
>
168168
{myData.rows?.map((p, index) => {
169+
const rowKey = p.key;
169170
return (
170171
<StyledTabPanel
171-
key={p.key}
172+
key={rowKey}
172173
tab={
173174
<EditableTabHeader
174175
editable={editable}
175176
label={p.label}
176-
onChange={value => {
177-
const newAncerstors = [index];
178-
handleDataChange(newAncerstors, {
179-
...p,
180-
...{ label: value },
181-
});
177+
rowKey={rowKey}
178+
onChange={(key, value) => {
179+
const updatedRowIndex = myData.rows?.findIndex(
180+
r => r.key === key,
181+
);
182+
if (updatedRowIndex !== undefined && updatedRowIndex > -1) {
183+
const newAncestors = [updatedRowIndex];
184+
handleDataChange(newAncestors, {
185+
...p,
186+
...{ label: value },
187+
});
188+
}
182189
}}
183190
/>
184191
}
@@ -195,9 +202,10 @@ const BasicUnControlledTabPanel: FC<ItemLayoutProps<ChartStyleConfig>> = memo(
195202

196203
const EditableTabHeader: FC<{
197204
label: string;
205+
rowKey: string;
198206
editable?: Boolean;
199-
onChange: (value: string) => void;
200-
}> = memo(({ label, editable = true, onChange }) => {
207+
onChange: (key: string, value: string) => void;
208+
}> = memo(({ label, rowKey, editable = true, onChange }) => {
201209
const [isEditing, setIsEditing] = useState(false);
202210

203211
const render = () => {
@@ -211,7 +219,7 @@ const EditableTabHeader: FC<{
211219
onSearch={value => {
212220
if (!!value) {
213221
setIsEditing(false);
214-
onChange(value);
222+
onChange(rowKey, value);
215223
}
216224
}}
217225
/>

0 commit comments

Comments
 (0)