1
1
import * as React from 'react' ;
2
- import { Heading , Text , Card , Flex , Box } from './shared/base' ;
3
- import { getTutorialOverviewSlug } from '../utils/getTutorialSlug' ;
2
+ import { Heading , Text , Card , Flex , Box } from '.. /shared/base' ;
3
+ import { getTutorialOverviewSlug } from '../../ utils/getTutorialSlug' ;
4
4
import { Link } from 'gatsby' ;
5
5
import { Query } from 'react-apollo' ;
6
- import gql from 'graphql-tag' ;
7
6
import UpvoteMutation from './UpvoteMutation' ;
8
7
import BookmarkMutation from './BookmarkMutation' ;
8
+ import Percentage from '../shared/Percentage' ;
9
+ import { getTutorialbyGatsbyID } from '../../utils/queries' ;
9
10
10
11
type TutorialListingProps = {
11
12
tutorial : Tutorial ;
@@ -27,25 +28,9 @@ const TutorialListing: React.FunctionComponent<TutorialListingProps> = ({
27
28
tutorial,
28
29
} ) => {
29
30
const gatsbyID = tutorial . frontmatter . id ;
31
+ let tutorialPath = getTutorialOverviewSlug ( tutorial . fileAbsolutePath ) ;
30
32
return (
31
- < Query
32
- query = { gql `
33
- query gatsbyTutorialQuery($gatsbyID: String!) {
34
- gatsbyTutorialQuery(gatsbyID: $gatsbyID) {
35
- id
36
- name
37
- upvotes
38
- numberOfStudents
39
- viewerUserTutorial {
40
- id
41
- upvoted
42
- bookmarked
43
- }
44
- }
45
- }
46
- ` }
47
- variables = { { gatsbyID : gatsbyID } }
48
- >
33
+ < Query query = { getTutorialbyGatsbyID } variables = { { gatsbyID : gatsbyID } } >
49
34
{ ( { data } ) => {
50
35
return (
51
36
< Card
@@ -58,16 +43,17 @@ const TutorialListing: React.FunctionComponent<TutorialListingProps> = ({
58
43
>
59
44
< Flex alignItems = "center" justifyContent = "center" >
60
45
< Box width = { 1 / 12 } >
61
- { data . gatsbyTutorialQuery && (
62
- < UpvoteMutation tutorial = { data . gatsbyTutorialQuery } />
63
- ) }
64
- { data . gatsbyTutorialQuery && (
65
- < BookmarkMutation tutorial = { data . gatsbyTutorialQuery } />
46
+ { data . getTutorialbyGatsbyID && (
47
+ < div >
48
+ < UpvoteMutation tutorial = { data . getTutorialbyGatsbyID } />
49
+ < BookmarkMutation tutorial = { data . getTutorialbyGatsbyID } />
50
+ < Percentage tutorial = { data . getTutorialbyGatsbyID } />
51
+ </ div >
66
52
) }
67
53
</ Box >
68
54
69
55
< Box width = { 11 / 12 } >
70
- < Link to = { getTutorialOverviewSlug ( tutorial . fileAbsolutePath ) } >
56
+ < Link to = { tutorialPath } >
71
57
< Heading > { tutorial . frontmatter . tutorialTitle } </ Heading >
72
58
</ Link >
73
59
< Text > { tutorial . frontmatter . description } </ Text >
0 commit comments