From c7c5fa79a412f72fa12dfbbd51c683595ee9ef71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Meyer?= Date: Tue, 6 Jun 2023 15:58:57 +0200 Subject: [PATCH] fix(search): filters and design (#239) --- packages/composables/src/useListing.ts | 8 +- .../components/layout/LayoutStoreSearch.vue | 2 +- .../listing-filters/ListingFilter.vue | 45 +++++ .../listing-filters/ListingFilters.vue | 185 ++++++++++++++---- .../ListingFiltersManufacturer.vue | 89 --------- .../listing-filters/ListingFiltersPrice.vue | 129 +++++++----- .../ListingFiltersProperties.vue | 147 +++++++------- .../listing-filters/ListingFiltersRating.vue | 122 +++++++----- .../ListingFiltersShippingFree.vue | 125 +++++++----- .../vue-demo-store/i18n/en-US/general.json | 8 +- .../vue-demo-store/i18n/pl-PL/general.json | 8 +- templates/vue-demo-store/pages/search.vue | 36 ++-- 12 files changed, 549 insertions(+), 355 deletions(-) create mode 100644 templates/vue-demo-store/components/listing-filters/ListingFilter.vue delete mode 100644 templates/vue-demo-store/components/listing-filters/ListingFiltersManufacturer.vue diff --git a/packages/composables/src/useListing.ts b/packages/composables/src/useListing.ts index d28977089..ab811dba9 100644 --- a/packages/composables/src/useListing.ts +++ b/packages/composables/src/useListing.ts @@ -467,15 +467,17 @@ export function createListingComposable({ const appliedFilters = Object.assign({}, getCurrentFilters.value, filter, { query: getCurrentFilters.value.search, }); - _storeAppliedListing.value.currentFilters = appliedFilters; + if (_storeAppliedListing.value) { + _storeAppliedListing.value.currentFilters = appliedFilters; + } return search(appliedFilters); }; const resetFilters = () => { const defaultFilters = Object.assign( { - manufacturer: [], - properties: [], + manufacturer: "", + properties: "", price: { min: 0, max: 0 }, search: getCurrentFilters.value.search, }, diff --git a/templates/vue-demo-store/components/layout/LayoutStoreSearch.vue b/templates/vue-demo-store/components/layout/LayoutStoreSearch.vue index 8ae0d8da3..602311680 100644 --- a/templates/vue-demo-store/components/layout/LayoutStoreSearch.vue +++ b/templates/vue-demo-store/components/layout/LayoutStoreSearch.vue @@ -124,7 +124,7 @@ watch(enter, (value) => { {{ $t("search.see") }} {{ $t("search.all") }} {{ getTotal }} - {{ $tc("search.result", getTotal) }} + {{ $t("search.result", getTotal) }}
{{ $t("search.noResults") }}
diff --git a/templates/vue-demo-store/components/listing-filters/ListingFilter.vue b/templates/vue-demo-store/components/listing-filters/ListingFilter.vue new file mode 100644 index 000000000..55206ae64 --- /dev/null +++ b/templates/vue-demo-store/components/listing-filters/ListingFilter.vue @@ -0,0 +1,45 @@ + + diff --git a/templates/vue-demo-store/components/listing-filters/ListingFilters.vue b/templates/vue-demo-store/components/listing-filters/ListingFilters.vue index cd4cd0936..499067a6e 100644 --- a/templates/vue-demo-store/components/listing-filters/ListingFilters.vue +++ b/templates/vue-demo-store/components/listing-filters/ListingFilters.vue @@ -1,55 +1,168 @@ diff --git a/templates/vue-demo-store/components/listing-filters/ListingFiltersManufacturer.vue b/templates/vue-demo-store/components/listing-filters/ListingFiltersManufacturer.vue deleted file mode 100644 index e180a8771..000000000 --- a/templates/vue-demo-store/components/listing-filters/ListingFiltersManufacturer.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/templates/vue-demo-store/components/listing-filters/ListingFiltersPrice.vue b/templates/vue-demo-store/components/listing-filters/ListingFiltersPrice.vue index 1e33b5668..3165d9041 100644 --- a/templates/vue-demo-store/components/listing-filters/ListingFiltersPrice.vue +++ b/templates/vue-demo-store/components/listing-filters/ListingFiltersPrice.vue @@ -1,5 +1,6 @@ + diff --git a/templates/vue-demo-store/components/listing-filters/ListingFiltersProperties.vue b/templates/vue-demo-store/components/listing-filters/ListingFiltersProperties.vue index d7dc5dae1..4930be472 100644 --- a/templates/vue-demo-store/components/listing-filters/ListingFiltersProperties.vue +++ b/templates/vue-demo-store/components/listing-filters/ListingFiltersProperties.vue @@ -1,11 +1,8 @@ + diff --git a/templates/vue-demo-store/components/listing-filters/ListingFiltersRating.vue b/templates/vue-demo-store/components/listing-filters/ListingFiltersRating.vue index 994594ecc..359dcd058 100644 --- a/templates/vue-demo-store/components/listing-filters/ListingFiltersRating.vue +++ b/templates/vue-demo-store/components/listing-filters/ListingFiltersRating.vue @@ -1,5 +1,12 @@ + diff --git a/templates/vue-demo-store/components/listing-filters/ListingFiltersShippingFree.vue b/templates/vue-demo-store/components/listing-filters/ListingFiltersShippingFree.vue index 4878233e2..b504aaf30 100644 --- a/templates/vue-demo-store/components/listing-filters/ListingFiltersShippingFree.vue +++ b/templates/vue-demo-store/components/listing-filters/ListingFiltersShippingFree.vue @@ -1,68 +1,101 @@ + diff --git a/templates/vue-demo-store/i18n/en-US/general.json b/templates/vue-demo-store/i18n/en-US/general.json index 608d70ee1..796e50f59 100644 --- a/templates/vue-demo-store/i18n/en-US/general.json +++ b/templates/vue-demo-store/i18n/en-US/general.json @@ -13,11 +13,13 @@ "closeMenu": "Close menu" }, "search": { - "noResults": "No products found", "all": "all", + "filters": "Filters", + "noResults": "No products found", + "resetFilters": "Reset Filters", "result": "result | results", - "see": "see", - "resultsHeader": "Search Result" + "resultsHeader": "Search Result for", + "see": "see" }, "messages": { "error": "Something goes wrong please try again later" diff --git a/templates/vue-demo-store/i18n/pl-PL/general.json b/templates/vue-demo-store/i18n/pl-PL/general.json index 46094a3b0..dc89a0883 100644 --- a/templates/vue-demo-store/i18n/pl-PL/general.json +++ b/templates/vue-demo-store/i18n/pl-PL/general.json @@ -13,11 +13,13 @@ "closeMenu": "Zamknij menu" }, "search": { - "noResults": "Nie znaleziono produktów", "all": "wszystkie", + "filters": "Filtr", + "noResults": "Nie znaleziono produktów", + "resetFilters": "Zresetuj filtry", "result": "wynik | wyniki | wyników", - "see": "zobacz", - "resultsHeader": "Wyniki wyszukiwania" + "resultsHeader": "Wynik wyszukiwania dla", + "see": "zobacz" }, "messages": { "error": "Coś poszło nie tak, spróbuj ponownie później" diff --git a/templates/vue-demo-store/pages/search.vue b/templates/vue-demo-store/pages/search.vue index b06cc3fd7..4848ea692 100644 --- a/templates/vue-demo-store/pages/search.vue +++ b/templates/vue-demo-store/pages/search.vue @@ -66,23 +66,31 @@ export default { /> -

- {{ $t("search.resultsHeader") }} +

+ {{ $t("search.resultsHeader") }} "{{ + route.query.query + }}" {{ $t("search.noResults") }}

- - -
- -
- +