Skip to content

Commit 29b229a

Browse files
committed
latest
1 parent 55a0880 commit 29b229a

File tree

4 files changed

+35
-30
lines changed

4 files changed

+35
-30
lines changed

src/components/CategoriesList.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ import type { ICategories, ICategory } from "@/types";
33
44
import CategoryItem from "./CategoryItem.vue";
55
6+
defineEmits<{
7+
(e: "click", category?: ICategory): void;
8+
}>();
9+
610
const props = defineProps<{
711
categories: ICategories;
812
isOpenFilterButton: boolean;
9-
onClick: (category?: ICategory) => void;
1013
}>();
1114
</script>
1215

@@ -16,7 +19,7 @@ const props = defineProps<{
1619
v-for="category of props.categories.categories"
1720
:key="category"
1821
:category="category"
19-
@click="props.onClick"
22+
@click="(category) => $emit('click', category)"
2023
/>
2124
</ul>
2225
</template>

src/components/FilterMenu.vue

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import FilterMenuFind from "./FilterMenuFind.vue";
1010
import Select from "./SelectSort.vue";
1111
import SetPrice from "./SetPrice.vue";
1212
13-
const props = defineProps<{
14-
onClick: (category?: ICategory) => void;
15-
onSelect: (filter: SortBy) => void;
16-
onSubmit: (data: IFind) => void;
17-
onSubmitSetPrice: (data: ISetPrice) => void;
13+
defineEmits<{
14+
(e: "click", category?: ICategory): void;
15+
(e: "select", filter: SortBy): void;
16+
(e: "submit", data: IFind): void;
17+
(e: "submitSetPrice", data: ISetPrice): void;
1818
}>();
1919
2020
const isOpenFilterButton = ref<boolean>(false);
@@ -31,22 +31,34 @@ const { maxPriceByCategory, minPriceByCategory } = storeToRefs(useProductsStore(
3131
<div class="Filter__filters">
3232
<p class="Filter__p">{{ $t("Shop.Aside.catalog") }}</p>
3333
<div class="Filter__selects">
34-
<Select @select="props.onSelect" :options="sortBy.firstSortBy"></Select>
35-
<Select @select="props.onSelect" :options="sortBy.secondSortBy"></Select>
34+
<Select
35+
@select="(filter) => $emit('select', filter)"
36+
:options="sortBy.firstSortBy"
37+
></Select>
38+
<Select
39+
@select="(filter) => $emit('select', filter)"
40+
:options="sortBy.secondSortBy"
41+
></Select>
3642
</div>
3743
</div>
3844
<div class="Filter__selects-filtres" @click="isOpenFilterButton = !isOpenFilterButton">
3945
<span class="Filter__selects-filters-span">{{ $t("Shop.Aside.filtres") }}</span>
4046
</div>
4147
<div class="allFiltres" :class="{ active: isOpenFilterButton }">
4248
<div class="allFiltres__selects">
43-
<Select @select="props.onSelect" :options="sortBy.firstSortBy"></Select>
44-
<Select @select="props.onSelect" :options="sortBy.secondSortBy"></Select>
49+
<Select
50+
@select="(filter) => $emit('select', filter)"
51+
:options="sortBy.firstSortBy"
52+
></Select>
53+
<Select
54+
@select="(filter) => $emit('select', filter)"
55+
:options="sortBy.secondSortBy"
56+
></Select>
4557
</div>
4658
<div class="allFiltres__categories">
47-
<FilterMenuFind class-name="allFiltres__find" @submit="props.onSubmit" />
59+
<FilterMenuFind class-name="allFiltres__find" @submit="(data) => $emit('submit', data)" />
4860
<SetPrice
49-
@submit="props.onSubmitSetPrice"
61+
@submit="(data) => $emit('submitSetPrice', data)"
5062
class-name="allFiltres__setPrice"
5163
:max-price="maxPriceByCategory"
5264
v-if="isOpenFilterButton"
@@ -55,26 +67,26 @@ const { maxPriceByCategory, minPriceByCategory } = storeToRefs(useProductsStore(
5567
<Categories
5668
:categories="categories"
5769
:is-open-filter-button="isOpenFilterButton"
58-
@click="props.onClick"
70+
@click="(category) => $emit('click', category)"
5971
/>
6072
</div>
6173
</div>
6274
<div class="Filter__categories">
6375
<div class="Filter__categories-list">
6476
<FilterMenuFind
6577
class-name="allFiltres__find allFiltres__find_pc"
66-
@submit="props.onSubmit"
78+
@submit="(data) => $emit('submit', data)"
6779
/>
6880
<SetPrice
69-
@submit="props.onSubmitSetPrice"
81+
@submit="(data) => $emit('submitSetPrice', data)"
7082
class-name="allFiltres__setPrice allFiltres__setPrice_pc"
7183
:max-price="maxPriceByCategory"
7284
:min-price="minPriceByCategory"
7385
/>
7486
<Categories
7587
:categories="categories"
7688
:is-open-filter-button="isOpenFilterButton"
77-
@click="props.onClick"
89+
@click="(category) => $emit('click', category)"
7890
/>
7991
</div>
8092
<slot></slot>

src/components/FilterMenuFind.vue

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,10 @@ interface IFind {
99
findfield: string;
1010
}
1111
12-
interface Props {
13-
className?: string;
14-
}
15-
1612
const emit = defineEmits<{
1713
(e: "submit", data: IFind): void;
1814
}>();
1915
20-
const props = defineProps<Props>();
21-
2216
const schema = yup.object({
2317
findfield: yup.string()
2418
});
@@ -35,7 +29,7 @@ const debouncedSubmit = debounce(onSubmit, 300);
3529
</script>
3630

3731
<template>
38-
<form class="find" @submit.prevent="onSubmit" :class="props.className">
32+
<form class="find" @submit.prevent="onSubmit" :class="$attrs.className">
3933
<p class="find__search">{{ $t("Shop.Aside.Find.find") }}</p>
4034
<InputForm
4135
class-name="find__findfield"

src/components/SetPrice.vue

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,11 @@ interface ISetPrice {
1010
minPrice: number;
1111
}
1212
13-
interface Props extends ISetPrice {
14-
className?: string;
15-
}
16-
1713
const emit = defineEmits<{
1814
(e: "submit", data: ISetPrice): void;
1915
}>();
2016
21-
const props = defineProps<Props>();
17+
const props = defineProps<ISetPrice>();
2218
2319
const schema = yup.object({
2420
maxPrice: yup.number().transform((value) => (isNaN(value) ? 0 : value)),
@@ -45,7 +41,7 @@ const onSubmit = handleSubmit((data) => {
4541
</script>
4642

4743
<template>
48-
<form class="setPrice" @submit.prevent="onSubmit" :class="props.className">
44+
<form class="setPrice" @submit.prevent="onSubmit" :class="$attrs.className">
4945
<p class="setPrice__price">{{ $t("Shop.Aside.SetPrice.price") }}</p>
5046
<InputForm
5147
type="number"

0 commit comments

Comments
 (0)