Skip to content

Commit 48ad270

Browse files
committed
fix(navbar): disable navbar selectors when loading http calls
1 parent bdf0142 commit 48ad270

File tree

5 files changed

+30
-7
lines changed

5 files changed

+30
-7
lines changed

src/components/common/navbar/NavbarPageSizeSelect.vue

+5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ const props = defineProps({
2020
type: Number,
2121
required: true,
2222
},
23+
disabled: {
24+
type: Boolean,
25+
required: false,
26+
},
2327
});
2428
2529
const emit = defineEmits<{
@@ -64,6 +68,7 @@ const pageIcon = computed(() => (pageSize.value > 200 ? IconPageDouble : IconPag
6468
class="page-select"
6569
:options="pageSizeOptions"
6670
:to="parentElement"
71+
:disabled="disabled"
6772
>
6873
<template #arrow>
6974
<NIcon :component="open ? IconChevron : pageIcon" />

src/components/views/calendar/CalendarNavbar.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ defineProps({
2323
2424
const i18n = useI18n('navbar', 'calendar');
2525
26-
const { filter, center } = useCalendarStoreRefs();
26+
const { filter, center, loading } = useCalendarStoreRefs();
2727
const { clearState } = useCalendarStore();
2828
2929
const debouncedSearch = useDebouncedSearch(filter);
@@ -57,6 +57,7 @@ const open = ref(false);
5757
class="date-picker"
5858
type="date"
5959
:to="parentElement"
60+
:disabled="loading"
6061
placement="bottom"
6162
update-value-on-close
6263
close-on-select

src/components/views/history/HistoryNavbar.vue

+8-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import { useDebouncedSearch } from '~/utils/store.utils';
1818
1919
const i18n = useI18n('navbar');
2020
21-
const { searchHistory, historyEnd, historyStart, pageSize } = useHistoryStoreRefs();
21+
const { searchHistory, historyEnd, historyStart, pageSize, loading } =
22+
useHistoryStoreRefs();
2223
const { setHistoryRange } = useHistoryStore();
2324
2425
const debouncedSearch = useDebouncedSearch(searchHistory);
@@ -66,6 +67,7 @@ const open = ref(false);
6667
close-on-select
6768
clearable
6869
:value="pickerValues"
70+
:disabled="loading"
6971
:on-clear="onDateChange"
7072
:on-confirm="onDateChange"
7173
>
@@ -84,7 +86,11 @@ const open = ref(false);
8486
<NIcon :component="IconLoop" />
8587
</template>
8688
</NInput>
87-
<NavbarPageSizeSelect v-model:page-size="pageSize" :parent-element="parentElement" />
89+
<NavbarPageSizeSelect
90+
v-model:page-size="pageSize"
91+
:parent-element="parentElement"
92+
:disabled="loading"
93+
/>
8894
<ButtonLinkExternal :href="external" :label="i18n('history', 'common', 'link')" />
8995
</NFlex>
9096
</template>

src/components/views/search/SearchNavbar.vue

+8-2
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ const searchOptions = computed<SearchOption[]>(() =>
9797
label: i18n(type, 'navbar', 'search', 'type'),
9898
value: type,
9999
icon: getIcon(type),
100-
disabled: selectedValues.value.length <= 1 && selectedValues.value.includes(type),
100+
disabled:
101+
loading.value ||
102+
(selectedValues.value.length <= 1 && selectedValues.value.includes(type)),
101103
})),
102104
);
103105
@@ -219,7 +221,11 @@ onActivated(() => {
219221
</template>
220222
</NTooltip>
221223

222-
<NavbarPageSizeSelect v-model:page-size="pageSize" :parent-element="parentElement" />
224+
<NavbarPageSizeSelect
225+
v-model:page-size="pageSize"
226+
:parent-element="parentElement"
227+
:disabled="loading"
228+
/>
223229
<ButtonLinkExternal :href="external" :label="i18n('search', 'common', 'link')" />
224230

225231
<NSwitch

src/components/views/watchlist/WatchlistNavbar.vue

+7-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { useDebouncedSearch, watchUserChange } from '~/utils/store.utils';
2121
2222
const i18n = useI18n('navbar', 'list');
2323
24-
const { pageSize, searchList } = useListStoreRefs();
24+
const { pageSize, searchList, listLoading } = useListStoreRefs();
2525
2626
const { listsLoading, lists, activeList } = useListsStoreRefs();
2727
const { fetchLists, clearState, getIcon } = useListsStore();
@@ -54,6 +54,7 @@ const listOptions = computed<ListOption[]>(() =>
5454
value: list.id,
5555
source: list,
5656
icon: getIcon(list),
57+
disabled: listLoading.value || listLoading.value,
5758
})),
5859
);
5960
@@ -128,7 +129,11 @@ const renderTag = ({ option }: { option: SelectOption }) => option.label?.toStri
128129
<NIcon :component="IconLoop" />
129130
</template>
130131
</NInput>
131-
<NavbarPageSizeSelect v-model:page-size="pageSize" :parent-element="parentElement" />
132+
<NavbarPageSizeSelect
133+
v-model:page-size="pageSize"
134+
:parent-element="parentElement"
135+
:disabled="listLoading"
136+
/>
132137
<ButtonLinkExternal :href="external" :label="i18n('list', 'common', 'link')" />
133138
</NFlex>
134139
</template>

0 commit comments

Comments
 (0)