Skip to content

Commit 5a2ba9b

Browse files
committed
Use ref for search
1 parent 0887c3f commit 5a2ba9b

File tree

3 files changed

+10
-12
lines changed

3 files changed

+10
-12
lines changed

src/search/Search.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,13 @@
3535
</template>
3636

3737
<script>
38-
import { ref, computed } from 'vue';
38+
import { computed } from 'vue';
3939
import useSearch from './useSearch';
4040
import useFilters from './useFilters';
4141
import usePagination from './usePagination';
4242
4343
export default {
4444
setup(props) {
45-
const searchTerm = ref('');
4645
const { searchResults, search } = useSearch(props.searchTerm);
4746
4847
const {
@@ -64,7 +63,6 @@ export default {
6463
const resultCount = computed(() => filteredResults.value.length);
6564
6665
return {
67-
searchTerm,
6866
pagedResults,
6967
search,
7068
filters,

src/search/useFilters.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { reactive, computed, onMounted } from 'vue';
1+
import { ref, computed, onMounted } from 'vue';
22

3-
function filterResults(parts, filters) {
4-
return parts.filter((part) => filters.every(
3+
function filterResults(results, filters) {
4+
return results.value.filter((part) => filters.value.every(
55
(filter) => {
66
const filterField = Object.keys(filter)[0];
77
const filterValue = filter[filterField];
@@ -11,10 +11,10 @@ function filterResults(parts, filters) {
1111
}
1212

1313
export default function useFilters(searchResults) {
14-
const filters = reactive([]);
14+
const filters = ref([]);
1515

16-
const applyFilters = (filter) => filters.push(filter);
17-
const clearFilters = () => filters.splice(0, filters.length);
16+
const applyFilters = (filter) => filters.value.push(filter);
17+
const clearFilters = () => { filters.value = []; };
1818

1919
onMounted(() => console.log('Mounted: useFilters'));
2020

src/search/useSearch.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { reactive, onMounted } from 'vue';
1+
import { ref, onMounted } from 'vue';
22
import parts from '../data/parts';
33

44
const allParts = [...parts.heads, ...parts.arms, ...parts.torsos, ...parts.bases];
55

66
export default function useSearch(originalSearchTerm) {
7-
const results = reactive([]);
7+
const results = ref([]);
88

99
const searchInventory = (searchTerm) => {
1010
let searchResults;
@@ -17,7 +17,7 @@ export default function useSearch(originalSearchTerm) {
1717
(part) => part.title.toLowerCase().includes(lowerTerm),
1818
);
1919
}
20-
results.splice(0, results.length, ...searchResults);
20+
results.value = [...searchResults];
2121
};
2222

2323
searchInventory(originalSearchTerm);

0 commit comments

Comments
 (0)