@@ -13,10 +13,22 @@ export const load: PageServerLoad = async ({ locals }) => {
1313 const form = await superValidate ( zod ( productSchema ) ) ;
1414
1515 // Get available currencies for the form
16- const [ currencies , categories ] = await Promise . all ( [
16+ const [ currenciesResult , categoriesResult ] = await Promise . allSettled ( [
1717 commercify . currencies . list ( ) ,
1818 commercify . categories . list ( )
1919 ] ) ;
20+
21+ if ( currenciesResult . status === 'rejected' || categoriesResult . status === 'rejected' ) {
22+ console . error ( 'Failed to fetch currencies or categories' ) ;
23+ return fail ( 500 , {
24+ form,
25+ message : 'Failed to load currencies or categories. Please try again later.'
26+ } ) ;
27+ }
28+
29+ const currencies = currenciesResult . value ;
30+ const categories = categoriesResult . value ;
31+
2032 if ( ! currencies || ! categories ) {
2133 console . error ( 'Failed to fetch currencies or categories' ) ;
2234 return fail ( 500 , {
@@ -41,13 +53,11 @@ export const load: PageServerLoad = async ({ locals }) => {
4153 } ) ;
4254 }
4355
44- form . data . currency = currencies . data ! . items . find (
45- ( currency : Currency ) => currency . isDefault
46- ) ! . code ;
56+ form . data . currency = currencies . data . find ( ( currency : Currency ) => currency . isDefault ) ! . code ;
4757
4858 return {
4959 form,
50- currencies : currencies . success ? currencies . data ?. items : [ ] ,
60+ currencies : currencies . success ? currencies . data : [ ] ,
5161 categories : categories . success ? categories . data : [ ]
5262 } ;
5363 } catch ( error ) {
0 commit comments