File tree Expand file tree Collapse file tree 2 files changed +63
-11
lines changed
Expand file tree Collapse file tree 2 files changed +63
-11
lines changed Original file line number Diff line number Diff line change @@ -2,23 +2,31 @@ import React from 'react'
22import { StatusBar } from 'expo-status-bar'
33import { NavigationContainer } from '@react-navigation/native'
44import { createStackNavigator } from '@react-navigation/stack'
5+ import { ApolloClient , InMemoryCache , ApolloProvider } from '@apollo/client'
56
67import HomeScreen from './src/HomeScreen'
78import { screenOptions } from './src/styles'
89
910const Stack = createStackNavigator ( )
1011
12+ const client = new ApolloClient ( {
13+ uri : 'https://api.graphql.guide/graphql' ,
14+ cache : new InMemoryCache ( ) ,
15+ } )
16+
1117export default function App ( ) {
1218return (
13- < NavigationContainer >
14- < Stack . Navigator initialRouteName = "Home" screenOptions = { screenOptions } >
15- < Stack . Screen
16- name = "Home"
17- component = { HomeScreen }
18- options = { { title : '📖 The GraphQL Guide' } }
19- />
20- </ Stack . Navigator >
21- < StatusBar style = "light" />
22- </ NavigationContainer >
19+ < ApolloProvider client = { client } >
20+ < NavigationContainer >
21+ < Stack . Navigator initialRouteName = "Home" screenOptions = { screenOptions } >
22+ < Stack . Screen
23+ name = "Home"
24+ component = { HomeScreen }
25+ options = { { title : '📖 The GraphQL Guide' } }
26+ />
27+ </ Stack . Navigator >
28+ < StatusBar style = "light" />
29+ </ NavigationContainer >
30+ </ ApolloProvider >
2331)
2432}
Original file line number Diff line number Diff line change 11import React from 'react'
2+ import { Text , FlatList , Pressable } from 'react-native'
3+ import { gql , useQuery } from '@apollo/client'
24
35import Loading from './Loading'
6+ import styles from './styles'
7+
8+ const CHAPTERS_QUERY = gql `
9+ query Chapters{
10+ chapters{
11+ id
12+ number
13+ title
14+ }
15+ }
16+ `
17+
18+ const ChapterItem = ( { chapter } ) => {
19+ const { number, title } = chapter
20+ let header , subheader
21+
22+ if ( number ) {
23+ header = `Chapter ${ number } `
24+ subheader = title
25+ } else {
26+ header = title
27+ }
28+
29+ return (
30+ < Pressable style = { styles . item } >
31+ < Text style = { styles . header } > { header } </ Text >
32+ { subheader && < Text style = { styles . subheader } > { subheader } </ Text > }
33+ </ Pressable >
34+ )
35+ }
436
537export default ( ) => {
6- return < Loading />
38+ const { data, loading } = useQuery ( CHAPTERS_QUERY )
39+
40+ if ( loading ) {
41+ return < Loading />
42+ }
43+
44+ return (
45+ < FlatList
46+ data = { data . chapters }
47+ renderItem = { ( { item } ) => < ChapterItem chapter = { item } /> }
48+ keyExtractor = { ( chapter ) => chapter . id . toString ( ) }
49+ />
50+ )
751}
You can’t perform that action at this time.
0 commit comments