Skip to content

Commit a06b99f

Browse files
fix: empty facet handling
1 parent 4f7a62e commit a06b99f

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

client-app/shared/cart/composables/useCartPickupLocations.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,18 +77,39 @@ export function _useCartPickupLocations() {
7777
if (termFacetCounties) {
7878
filterOptionsCountries.value = termFacetToCommonFacet(termFacetCounties);
7979
filterOptionsCountries.value.label = t("common.labels.country");
80+
} else {
81+
filterOptionsCountries.value = {
82+
type: "terms",
83+
paramName: COUNTRY_NAME_FACET,
84+
values: [],
85+
label: t("common.labels.country"),
86+
};
8087
}
8188

8289
const termFacetRegions = data.term_facets?.find((f) => f.name === REGION_NAME_FACET);
8390
if (termFacetRegions) {
8491
filterOptionsRegions.value = termFacetToCommonFacet(termFacetRegions);
8592
filterOptionsRegions.value.label = t("common.labels.region");
93+
} else {
94+
filterOptionsRegions.value = {
95+
type: "terms",
96+
paramName: REGION_NAME_FACET,
97+
values: [],
98+
label: t("common.labels.region"),
99+
};
86100
}
87101

88102
const termFacetCities = data.term_facets?.find((f) => f.name === CITY_FACET);
89103
if (termFacetCities) {
90104
filterOptionsCities.value = termFacetToCommonFacet(termFacetCities);
91105
filterOptionsCities.value.label = t("common.labels.city");
106+
} else {
107+
filterOptionsCities.value = {
108+
type: "terms",
109+
paramName: CITY_FACET,
110+
values: [],
111+
label: t("common.labels.city"),
112+
};
92113
}
93114
} catch (e) {
94115
Logger.error(`${useCartPickupLocations.name}.${fetchPickupLocations.name}`, e);

client-app/shared/catalog/components/facet-filter.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
</VcMenuItem>
5353

5454
<div v-if="isAnchorAdded" ref="fadeVisibilityAnchor"></div>
55+
5556
<div v-if="hasFade" class="facet-filter-widget__fade"></div>
5657
</div>
5758
</template>
@@ -81,6 +82,7 @@
8182
<!-- Dropdown mode -->
8283
<VcDropdownMenu
8384
v-if="mode === 'dropdown'"
85+
:disabled="disabled"
8486
:offset-options="4"
8587
class="facet-filter-dropdown"
8688
z-index="10"
@@ -179,6 +181,7 @@ interface IEmits {
179181
interface IProps {
180182
facet: FacetItemType;
181183
loading?: boolean;
184+
disabled?: boolean;
182185
mode: "dropdown" | "collapsable";
183186
filter?: SearchProductFilterResult;
184187
}

client-app/shared/checkout/components/select-address-filter.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
v-if="filterOptionsCountries"
66
:facet="filterOptionsCountries"
77
:filter="filterCountries"
8+
:disabled="!filterOptionsCountries.values?.length"
89
mode="dropdown"
910
@update:filter="applyFilter"
1011
/>
@@ -13,6 +14,7 @@
1314
v-if="filterOptionsRegions"
1415
:facet="filterOptionsRegions"
1516
:filter="filterRegions"
17+
:disabled="!filterOptionsRegions.values?.length"
1618
mode="dropdown"
1719
@update:filter="applyFilter"
1820
/>
@@ -21,6 +23,7 @@
2123
v-if="filterOptionsCities"
2224
:facet="filterOptionsCities"
2325
:filter="filterCities"
26+
:disabled="!filterOptionsCities.values?.length"
2427
mode="dropdown"
2528
@update:filter="applyFilter"
2629
/>

0 commit comments

Comments
 (0)