File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ---
2+ ' @modelscope-studio/antd ' : patch
3+ ' @modelscope-studio/frontend ' : patch
4+ ' modelscope_studio ' : patch
5+ ---
6+
7+ fix: ensure the same key and value in the tree data
Original file line number Diff line number Diff line change @@ -69,7 +69,22 @@ export const TreeSelect = sveltify<
6969 treeData ||
7070 renderItems < NonNullable < TreeSelectProps [ 'treeData' ] > [ number ] > (
7171 resolvedSlotItems ,
72- { clone : true }
72+ {
73+ clone : true ,
74+ itemPropsTransformer : ( itemProps ) => {
75+ if (
76+ itemProps . value &&
77+ itemProps . key &&
78+ itemProps . value !== itemProps . key
79+ ) {
80+ return {
81+ ...itemProps ,
82+ key : undefined ,
83+ } ;
84+ }
85+ return itemProps ;
86+ } ,
87+ }
7388 ) ,
7489 dropdownRender : slots . dropdownRender
7590 ? renderParamsSlot ( { slots, setSlotParams, key : 'dropdownRender' } )
@@ -132,6 +147,7 @@ export const TreeSelect = sveltify<
132147 treeData ,
133148 treeTitleRenderFunction ,
134149 ] ) ;
150+
135151 return (
136152 < >
137153 < div style = { { display : 'none' } } > { children } </ div >
Original file line number Diff line number Diff line change @@ -65,6 +65,19 @@ export const Tree = sveltify<
6565 resolvedSlotItems ,
6666 {
6767 clone : true ,
68+ itemPropsTransformer : ( itemProps ) => {
69+ if (
70+ itemProps . value &&
71+ itemProps . key &&
72+ itemProps . value !== itemProps . key
73+ ) {
74+ return {
75+ ...itemProps ,
76+ key : undefined ,
77+ } ;
78+ }
79+ return itemProps ;
80+ } ,
6881 }
6982 ) ,
7083 showLine : slots [ 'showLine.showLeafIcon' ]
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ export function renderItems<R>(
1212 fallback ?: ( item : any ) => R ;
1313 clone ?: boolean ;
1414 forceClone ?: boolean ;
15+ itemPropsTransformer ?: ( props : Record < string , any > ) => Record < string , any > ;
1516 } ,
1617 key ?: React . Key
1718) : undefined | R [ ] {
@@ -26,10 +27,15 @@ export function renderItems<R>(
2627 }
2728 return item ;
2829 }
29- const result = {
30- ...item . props ,
31- key : item . props ?. key ?? ( key ? `${ key } -${ i } ` : `${ i } ` ) ,
32- } ;
30+ const result = options ?. itemPropsTransformer
31+ ? options ?. itemPropsTransformer ( {
32+ ...item . props ,
33+ key : item . props ?. key ?? ( key ? `${ key } -${ i } ` : `${ i } ` ) ,
34+ } )
35+ : {
36+ ...item . props ,
37+ key : item . props ?. key ?? ( key ? `${ key } -${ i } ` : `${ i } ` ) ,
38+ } ;
3339
3440 let current = result ;
3541 Object . keys ( item . slots ) . forEach ( ( slotKey ) => {
You can’t perform that action at this time.
0 commit comments