File tree 4 files changed +33
-26
lines changed
4 files changed +33
-26
lines changed Original file line number Diff line number Diff line change 1
1
<template >
2
- <div class =" paginated-list" @resetPageNumber = " pageNumber = $event " >
2
+ <div class =" paginated-list" >
3
3
<div class =" row" >
4
4
<ListItem class =" col-md-3"
5
5
v-for =" repo in paginatedData"
27
27
components: {
28
28
ListItem,
29
29
},
30
- data () {
31
- return {
32
- pageNumber: 0
33
- }
34
- },
35
30
props: {
36
31
list: {
37
32
type: Array ,
38
33
required: true
39
34
},
40
- size: {
41
- type: Number ,
42
- required: false ,
43
- default: 10
44
- },
45
35
},
46
36
methods: {
47
37
nextPage () {
48
- this .pageNumber ++ ;
38
+ this .$store . commit ( ' incrementSearchPageNumber ' )
49
39
},
50
40
prevPage (){
51
- this .pageNumber -- ;
52
- }
41
+ this .$store . commit ( ' decrementSearchPageNumber ' )
42
+ },
53
43
},
54
44
computed: {
55
45
pageCount () {
64
54
if (start > len ) { start = len - this .size ; }
65
55
const end = start + this .size ;
66
56
return this .list .slice (start, end);
67
- }
57
+ },
58
+ size () {
59
+ return this .$store .state .searchListSize
60
+ },
61
+ pageNumber () {
62
+ return this .$store .state .searchPageNumber
63
+ },
68
64
}
69
65
};
70
66
</script >
Original file line number Diff line number Diff line change 20
20
},
21
21
methods: {
22
22
changeSearchPagination (event ) {
23
- const size = parseInt (event .target .value );
24
- this .$emit (' changeSearchPagination' , size)
23
+ const size = parseInt (event .target .value );
24
+ this .$store .commit (' setSearchListSize' , size);
25
+ this .$store .commit (' resetSearchPageNumber' )
25
26
}
26
27
}
27
28
}
Original file line number Diff line number Diff line change 3
3
<div >
4
4
<input type =" text" v-model =" project" class =" form-control" placeholder =" search projects..." >
5
5
<ProviderSelect />
6
- <PaginationSelect @changeSearchPagination = " size = $event " />
6
+ <PaginationSelect />
7
7
<div v-if =" $apollo.queries.gitRepos.loading" >Searching...</div >
8
8
<div v-if =" error" >{{ error }}</div >
9
9
<br />
10
10
<PaginatedList
11
11
v-if =" gitRepoResults.length > 0"
12
12
:list =" gitRepoResults"
13
- :size =" size"
14
- :pageNumber =" pageNumber"
15
- @resetPageNumber =" pageNumber = $event" />
13
+ />
16
14
</div >
17
15
</div >
18
16
30
28
return {
31
29
project: ' ' ,
32
30
error: null ,
33
- size: 10 ,
34
- pageNumber: 0 ,
35
31
}
36
32
},
37
33
components: {
50
46
}
51
47
},
52
48
result ({ data }) {
53
- this .$emit ( ' resetPageNumber ' , 0 );
49
+ this .$store . commit ( ' resetSearchPageNumber ' )
54
50
return this .gitRepoResults = data .gitRepos .items ;
55
51
},
56
52
options : () => ({ errorPolicy: ' all' }),
Original file line number Diff line number Diff line change @@ -6,15 +6,29 @@ Vue.use(Vuex)
6
6
export default new Vuex . Store ( {
7
7
state : {
8
8
provider : 'GITHUB' ,
9
- gitRepos : [ ]
9
+ gitRepos : [ ] ,
10
+ searchPageNumber : 0 ,
11
+ searchListSize : 10 ,
10
12
} ,
11
13
mutations : {
12
14
setProvider ( state , provider ) {
13
15
state . provider = provider ;
14
16
} ,
15
17
setGitRepos ( state , gitRepos ) {
16
18
state . gitRepos = gitRepos ;
17
- }
19
+ } ,
20
+ incrementSearchPageNumber ( state ) {
21
+ state . searchPageNumber ++ ;
22
+ } ,
23
+ decrementSearchPageNumber ( state ) {
24
+ state . searchPageNumber -- ;
25
+ } ,
26
+ resetSearchPageNumber ( state ) {
27
+ state . searchPageNumber = 0 ;
28
+ } ,
29
+ setSearchListSize ( state , searchListSize ) {
30
+ state . searchListSize = searchListSize ;
31
+ } ,
18
32
} ,
19
33
actions : {
20
34
You can’t perform that action at this time.
0 commit comments