@@ -26,7 +26,6 @@ import {
2626 UpdateResourceRecordResult ,
2727 DeleteResourceRecordResult ,
2828 AdminForthMenuContributionProvider ,
29- AdminForthMenuTransformProvider ,
3029} from './types/Back.js' ;
3130import {
3231 AdminForthFilterOperators ,
@@ -134,7 +133,6 @@ class AdminForth implements IAdminForth {
134133 pluginsById : Record < string , AdminForthPlugin > = { } ;
135134 private menuContributions : AdminForthMenuContribution [ ] = [ ] ;
136135 private menuContributionProviders : AdminForthMenuContributionProvider [ ] = [ ] ;
137- private menuTransformProviders : AdminForthMenuTransformProvider [ ] = [ ] ;
138136 configValidator : IConfigValidator ;
139137 restApi : AdminForthRestAPI ;
140138
@@ -148,34 +146,28 @@ class AdminForth implements IAdminForth {
148146 this . menuContributionProviders . push ( provider ) ;
149147 }
150148
151- registerMenuTransformProvider ( provider : AdminForthMenuTransformProvider ) : void {
152- this . menuTransformProviders . push ( provider ) ;
153- }
154-
155149 getMenuContributions ( ) : AdminForthMenuContribution [ ] {
156150 return [ ...this . menuContributions ] ;
157151 }
158152
159153 async getMenuWithContributions ( adminUser ?: AdminUser , menu : AdminForthConfigMenuItem [ ] = this . config . menu ) : Promise < AdminForthConfigMenuItem [ ] > {
160154 const generateItemId = ( item : AdminForthConfigMenuItem ) =>
161155 md5hash ( `menu-item-${ item . label } -${ item . resourceId || '' } -${ item . path || '' } ` ) ;
162- const cloneMenuItem = ( item : AdminForthConfigMenuItem ) : AdminForthConfigMenuItem => ( {
163- ...item ,
164- children : item . children ?. map ( cloneMenuItem ) ,
165- } ) ;
166- const resolveMenuItemIds = ( items : AdminForthConfigMenuItem [ ] ) : AdminForthConfigMenuItem [ ] => items . map ( ( item ) => ( {
167- ...item ,
168- itemId : item . itemId || generateItemId ( item ) ,
169- children : item . children ? resolveMenuItemIds ( item . children ) : item . children ,
170- } ) ) ;
171156 const matchesTarget = ( item : AdminForthConfigMenuItem , target : AdminForthMenuTarget ) =>
172157 typeof target === 'string'
173158 ? item . itemId === target
174159 : ( target . itemId !== undefined && item . itemId === target . itemId )
175160 || ( target . resourceId !== undefined && item . resourceId === target . resourceId )
176161 || ( target . path !== undefined && item . path === target . path ) ;
177162
178- const resolvedMenu : AdminForthConfigMenuItem [ ] = resolveMenuItemIds ( menu ) ;
163+ const resolvedMenu : AdminForthConfigMenuItem [ ] = menu . map ( ( item ) => ( {
164+ ...item ,
165+ itemId : item . itemId || generateItemId ( item ) ,
166+ children : item . children ?. map ( ( child ) => ( {
167+ ...child ,
168+ itemId : child . itemId || generateItemId ( child ) ,
169+ } ) ) ,
170+ } ) ) ;
179171 const usedItemIds = new Set ( resolvedMenu . map ( ( item ) => item . itemId ) ) ;
180172
181173 const providerContributions = await Promise . all (
@@ -211,17 +203,7 @@ class AdminForth implements IAdminForth {
211203 }
212204 }
213205
214- let transformedMenu = resolvedMenu ;
215-
216- for ( const provider of this . menuTransformProviders ) {
217- transformedMenu = resolveMenuItemIds ( await provider ( {
218- adminUser,
219- adminforth : this ,
220- menu : transformedMenu . map ( cloneMenuItem ) ,
221- } ) ) ;
222- }
223-
224- return transformedMenu ;
206+ return resolvedMenu ;
225207 }
226208
227209 async refreshMenu ( adminUser : AdminUser ) {
0 commit comments