This repository was archived by the owner on May 27, 2019. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +850
-503
lines changed
Expand file tree Collapse file tree 4 files changed +850
-503
lines changed Original file line number Diff line number Diff line change 99 "build" : " cross-env NODE_ENV=production webpack --progress --hide-modules"
1010 },
1111 "dependencies" : {
12+ "qs" : " ^6.5.0" ,
1213 "vue" : " ^2.2.1" ,
13- "vue-router" : " ^2.4.0" ,
1414 "vue-instantsearch" : " *" ,
15- "instantsearch-store " : " * "
15+ "vue-router " : " ^2.6.0 "
1616 },
1717 "devDependencies" : {
1818 "babel-core" : " ^6.0.0" ,
Original file line number Diff line number Diff line change 11<template >
2- <ais-index :search-store =" searchStore" :query =" query" >
2+ <ais-index :search-store =" searchStore" >
3+
34 <ais-input placeholder =" Search for a product..." />
5+
6+ <ais-price-range attribute-name =" price" ></ais-price-range >
7+
8+ <ais-refinement-list attribute-name =" colors" ></ais-refinement-list >
9+
10+ <ais-tree-menu :attributes =" ['category', 'sub_category']" >
11+ <h3 slot =" header" >Browse by</h3 >
12+ </ais-tree-menu >
13+
414 <ais-results >
515 <template scope="{ result }">
616 <h2 >{{ result.name }}</h2 >
@@ -20,22 +30,28 @@ searchStore.indexName = 'ikea';
2030
2131export default {
2232 props: {
23- query : {
24- type: String ,
33+ queryParameters : {
34+ type: Object ,
2535 default: ' ' ,
2636 },
2737 },
38+ created () {
39+ this .searchStore .queryParameters = this .queryParameters ;
40+ },
2841 data () {
2942 return {
3043 searchStore,
3144 };
3245 },
3346 watch: {
34- ' searchStore.query' (value) {
47+ ' searchStore.queryParameters' (parameters) {
48+ const query = parameters;
49+ delete query .index ;
50+
3551 this .$router .push ({
36- name: ' search' ,
37- query : { q : value } ,
38- });
52+ name: ' search' ,
53+ query ,
54+ });
3955 },
4056 },
4157};
Original file line number Diff line number Diff line change @@ -3,20 +3,30 @@ import VueRouter from 'vue-router';
33import InstantSearch from 'vue-instantsearch' ;
44import App from './App.vue' ;
55import Search from './Search.vue' ;
6+ import qs from 'qs' ;
67
78Vue . use ( InstantSearch ) ;
89Vue . use ( VueRouter ) ;
910
11+
1012const router = new VueRouter ( {
1113 routes : [
1214 {
1315 name : 'search' ,
1416 path : '/search' ,
1517 component : Search ,
16- props : route => ( { query : route . query . q } ) ,
18+ props : route => ( { queryParameters : route . query } ) ,
1719 } ,
1820 { path : '/' , redirect : '/search' } ,
1921 ] ,
22+ parseQuery ( query ) {
23+ return qs . parse ( query ) ;
24+ } ,
25+ stringifyQuery ( query ) {
26+ var result = qs . stringify ( query ) ;
27+
28+ return result ? ( '?' + result ) : '' ;
29+ }
2030} ) ;
2131
2232new Vue ( {
You can’t perform that action at this time.
0 commit comments