index.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React from 'react';
  2. import {BrowserProtocol, queryMiddleware} from 'farce';
  3. import {createFarceRouter, createRender, Route, makeRouteConfig} from 'found';
  4. import {Resolver} from 'found-relay';
  5. import {graphql} from 'react-relay';
  6. import {hot} from 'react-hot-loader/root';
  7. import ApplicationLayout from './components/layout/ApplicationLayout';
  8. import graphqlEnvironment from './graphqlEnvironment';
  9. import NotFound from './components/pages/NotFound';
  10. import TestComponent from './components/TestComponent';
  11. import PokemonIndex from './components/pages/pokemon/Index';
  12. import PokemonCreate from './components/pages/pokemon/Create';
  13. import Signup from './components/pages/Signup';
  14. import Login from './components/pages/Login';
  15. function App(): React.ReactElement {
  16. const routeConfig = makeRouteConfig(
  17. <Route Component={ApplicationLayout} path='/'>
  18. <Route Component={TestComponent} />
  19. <Route
  20. Component={PokemonIndex}
  21. path='pokemon'
  22. query={graphql`
  23. query src_PokemonIndex_Query {
  24. pokemonConnection {
  25. edges {
  26. node {
  27. id
  28. ...Show_pokemon
  29. }
  30. }
  31. }
  32. }
  33. `}
  34. />
  35. <Route Component={PokemonCreate} path='pokemon/create' />
  36. <Route Component={Login} path='login' />
  37. <Route Component={Signup} path='signup' />
  38. <Route Component={NotFound} path='*' />
  39. </Route>
  40. );
  41. const Router = createFarceRouter({
  42. historyProtocol: new BrowserProtocol(),
  43. historyMiddlewares: [queryMiddleware],
  44. routeConfig,
  45. render: createRender({}),
  46. });
  47. return <Router resolver={new Resolver(graphqlEnvironment)} />;
  48. }
  49. export default hot(App);