@@ -2,10 +2,10 @@ import React from 'react';
2
2
import { Query } from 'react-apollo' ;
3
3
import { optionalChaining } from '../helpers' ;
4
4
import gql from 'graphql-tag' ;
5
- import { User } from 'src/graphqlTypes' ;
5
+ import { CurrentUserQuery , User } from 'src/graphqlTypes' ;
6
6
7
7
type ChildrenRenderProps = {
8
- user ?: User | boolean ;
8
+ user ?: Pick < User , 'id' | 'name' | 'avatarUrl' | 'githubHandle' > | boolean ;
9
9
loading ?: boolean ;
10
10
} ;
11
11
type WithCurrentUserProps = {
@@ -14,20 +14,21 @@ type WithCurrentUserProps = {
14
14
15
15
const WithCurrentUser : React . FunctionComponent < WithCurrentUserProps > = ( {
16
16
children,
17
- } ) => (
18
- < Query query = { CURRENT_USER } >
19
- { ( { data, error, loading } ) => {
20
- if ( loading ) {
21
- return children ( { loading } ) ;
22
- }
23
- if ( optionalChaining ( ( ) => data . viewer . user ) ) {
24
- return children ( { user : data . viewer . user } ) ;
25
- } else {
17
+ } ) => {
18
+ return (
19
+ < Query < CurrentUserQuery > query = { CURRENT_USER } >
20
+ { ( { data, loading } ) => {
21
+ if ( loading ) {
22
+ return children ( { loading } ) ;
23
+ }
24
+ if ( optionalChaining ( ( ) => data ! . viewer ! . user ) ) {
25
+ return children ( { user : data ! . viewer ! . user } ) ;
26
+ }
26
27
return children ( { user : false } ) ;
27
- }
28
- } }
29
- < / Q u e r y >
30
- ) ;
28
+ } }
29
+ </ Query >
30
+ )
31
+ } ;
31
32
32
33
export const CURRENT_USER = gql `
33
34
query currentUser {
@@ -36,11 +37,11 @@ export const CURRENT_USER = gql`
36
37
user {
37
38
id
38
39
name
39
- avatarUrl
40
- githubHandle
41
- }
40
+ avatarUrl
41
+ githubHandle
42
42
}
43
43
}
44
+ }
44
45
` ;
45
46
46
47
export default WithCurrentUser ;
0 commit comments