Skip to content

Commit 922b156

Browse files
committed
fix(release): defaults back to locale when no region selected
1 parent b37f9a4 commit 922b156

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/components/views/releases/ReleasesNavbar.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ onBeforeMount(() => fetchRegions());
5757
class="type-select"
5858
:options="typesOptions"
5959
:to="parentElement"
60+
:disabled="loading"
6061
/>
6162
<NDatePicker
6263
v-model:show="open"
@@ -79,7 +80,7 @@ onBeforeMount(() => fetchRegions());
7980
class="region-select"
8081
:options="regionOptions"
8182
:loading="regionLoading"
82-
:disabled="regionLoading || !regionOptions.length"
83+
:disabled="loading || regionLoading || !regionOptions.length"
8384
:to="parentElement"
8485
filterable
8586
clearable

src/stores/data/releases.store.ts

+14-5
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,18 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
109109
if (restored?.center) clearState(new Date(restored.center));
110110
};
111111

112+
const getLocaleRegion = () => {
113+
const locale = getIntlRegion() || getNavigatorRegion();
114+
if (!regions.value?.length) return;
115+
if (locale) return regions.value.find(r => r.iso_3166_1 === locale) ?? regions.value[0];
116+
return regions.value[0];
117+
};
118+
112119
const fetchRegions = async () => {
113120
regionLoading.value = true;
114121
try {
115122
regions.value = await TraktService.providers.regions();
116-
if (!region.value) {
117-
const locale = getIntlRegion() || getNavigatorRegion();
118-
if (locale) region.value = regions.value.find(r => r.iso_3166_1 === locale);
119-
}
123+
if (!region.value) region.value = getLocaleRegion();
120124
} catch (e) {
121125
logger.error('Failed to fetch regions');
122126
NotificationService.error('Failed to fetch regions', e);
@@ -131,6 +135,11 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
131135
return;
132136
}
133137

138+
if (!region.value) {
139+
logger.warn('Region not selected');
140+
return;
141+
}
142+
134143
loading.value = true;
135144

136145
if (mode === 'start') startCalendar.value = DateUtils.previous(days.value, startCalendar.value);
@@ -223,7 +232,7 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
223232
region: computed<string | undefined>({
224233
get: () => region.value?.iso_3166_1,
225234
set: (value?: string) => {
226-
region.value = !value ? undefined : regions.value.find(r => r.iso_3166_1 === value);
235+
region.value = regions.value?.find(r => r.iso_3166_1 === value) ?? getLocaleRegion();
227236
saveState().catch(error => logger.error('Failed to save region state', error));
228237
return clearState();
229238
},

0 commit comments

Comments
 (0)