@@ -499,33 +499,43 @@ export const EditorProvider = ({ children, templateId, startFrom }: EditorProvid
499499 dispatch ( { type : 'SET_LOADING' , payload : true } ) ;
500500
501501 try {
502- // Always fetch server icons first (for icon picker and template items)
503- const iconsResult = await getDefaultIcons ( ) ;
502+ // Fetch both default icons and user icons in parallel
503+ const [ iconsResult , userIconsResult ] = await Promise . allSettled ( [
504+ getDefaultIcons ( ) ,
505+ getMyIcons ( ) ,
506+ ] ) ;
504507
505508 console . log ( '[EditorContext] Icons API full response:' , iconsResult ) ;
506509
507- // Parse icons from response
508- // client.ts already extracts 'result' field, so iconsResult.data should be Icon[]
510+ // Parse default icons from response
509511 let defaultIcons : Icon [ ] = [ ] ;
510512
511- if ( iconsResult . success && iconsResult . data ) {
512- if ( Array . isArray ( iconsResult . data ) ) {
513- defaultIcons = iconsResult . data ;
514- } else if ( typeof iconsResult . data === 'object' && 'items' in iconsResult . data ) {
513+ if ( iconsResult . status === 'fulfilled' && iconsResult . value . success && iconsResult . value . data ) {
514+ if ( Array . isArray ( iconsResult . value . data ) ) {
515+ defaultIcons = iconsResult . value . data ;
516+ } else if ( typeof iconsResult . value . data === 'object' && 'items' in iconsResult . value . data ) {
515517 // Handle paginated response format
516- defaultIcons = ( iconsResult . data as { items : Icon [ ] } ) . items ;
518+ defaultIcons = ( iconsResult . value . data as { items : Icon [ ] } ) . items ;
517519 } else {
518- console . error ( '[EditorContext] Unexpected response structure:' , iconsResult . data ) ;
520+ console . error ( '[EditorContext] Unexpected response structure:' , iconsResult . value . data ) ;
519521 }
520- } else {
521- console . error ( '[EditorContext] Icons API failed:' , iconsResult . error ) ;
522+ } else if ( iconsResult . status === 'rejected' ) {
523+ console . error ( '[EditorContext] Icons API failed:' , iconsResult . reason ) ;
522524 }
523525
524526 console . log ( '[EditorContext] Final defaultIcons count:' , defaultIcons . length ) ;
525527
526528 // Load server icons for icon picker (even if empty)
527529 dispatch ( { type : 'LOAD_DEFAULT_ICONS' , payload : defaultIcons } ) ;
528530
531+ // Load user icons for icon picker
532+ if ( userIconsResult . status === 'fulfilled' && userIconsResult . value . success && userIconsResult . value . data ) {
533+ const userIcons = Array . isArray ( userIconsResult . value . data )
534+ ? userIconsResult . value . data
535+ : ( userIconsResult . value . data as { items : Icon [ ] } ) . items || [ ] ;
536+ dispatch ( { type : 'LOAD_USER_ICONS' , payload : userIcons } ) ;
537+ }
538+
529539 // Create template based on startFrom mode
530540 if ( startFrom === 'empty' ) {
531541 // Empty template - no items, just icons for picker
0 commit comments