diff --git a/App.js b/App.js index 66c2880..1b32b53 100644 --- a/App.js +++ b/App.js @@ -2,23 +2,31 @@ import React from 'react' import { StatusBar } from 'expo-status-bar' import { NavigationContainer } from '@react-navigation/native' import { createStackNavigator } from '@react-navigation/stack' +import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client' import HomeScreen from './src/HomeScreen' import { screenOptions } from './src/styles' const Stack = createStackNavigator() +const client = new ApolloClient({ + uri: 'https://api.graphql.guide/graphql', + cache: new InMemoryCache(), +}) + export default function App() { return ( - - - - - - + + + + + + + + ) } diff --git a/src/HomeScreen.js b/src/HomeScreen.js index 5b7a193..b816859 100644 --- a/src/HomeScreen.js +++ b/src/HomeScreen.js @@ -1,7 +1,51 @@ import React from 'react' +import { Text, FlatList, Pressable } from 'react-native' +import { gql, useQuery } from '@apollo/client' import Loading from './Loading' +import styles from './styles' + +const CHAPTERS_QUERY = gql` + query Chapters { + chapters { + id + number + title + } + } +` + +const ChapterItem = ({ chapter }) => { + const { number, title } = chapter + let header, subheader + + if (number) { + header = `Chapter ${number}` + subheader = title + } else { + header = title + } + + return ( + + {header} + {subheader && {subheader}} + + ) +} export default () => { - return + const { data, loading } = useQuery(CHAPTERS_QUERY) + + if (loading) { + return + } + + return ( + } + keyExtractor={(chapter) => chapter.id.toString()} + /> + ) }