@@ -76,6 +76,7 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
76
76
const endCalendar = ref < Date > ( DateUtils . weeks . next ( weeks . value , center . value ) ) ;
77
77
78
78
const regionLoading = ref ( true ) ;
79
+ const regionLoadingPromise = ref < Promise < TmdbConfigurationCounty [ ] > > ( ) ;
79
80
const regions = ref < TmdbConfigurationCounty [ ] > ( [ ] ) ;
80
81
const region = ref < TmdbConfigurationCounty | undefined > ( ) ;
81
82
const releaseType = ref < TmdbMovieReleaseTypes > ( TmdbMovieReleaseType . Theatrical ) ;
@@ -119,13 +120,15 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
119
120
const fetchRegions = async ( ) => {
120
121
regionLoading . value = true ;
121
122
try {
122
- regions . value = await TraktService . providers . regions ( ) ;
123
+ regionLoadingPromise . value = TraktService . providers . regions ( ) ;
124
+ regions . value = await regionLoadingPromise . value ;
123
125
if ( ! region . value ) region . value = getLocaleRegion ( ) ;
124
126
} catch ( e ) {
125
127
Logger . error ( 'Failed to fetch regions' ) ;
126
128
NotificationService . error ( 'Failed to fetch regions' , e ) ;
127
129
} finally {
128
130
regionLoading . value = false ;
131
+ regionLoadingPromise . value = undefined ;
129
132
}
130
133
} ;
131
134
@@ -135,8 +138,13 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
135
138
return ;
136
139
}
137
140
141
+ if ( regionLoading . value && regionLoadingPromise . value ) {
142
+ Logger . warn ( 'Waiting for region to load...' ) ;
143
+ await regionLoadingPromise . value ;
144
+ }
145
+
138
146
if ( ! region . value ) {
139
- Logger . warn ( 'Region not selected' ) ;
147
+ Logger . warn ( 'Region not selected' , { region : region . value , regions : [ ... regions . value ] , regionLoading : regionLoading . value } ) ;
140
148
return ;
141
149
}
142
150
0 commit comments