index.tsx 980 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import Link from 'next/link'
  2. import { useTrainingsQuery } from '../../../src/gql'
  3. const TrainingsList = () => {
  4. const { data, error, loading } = useTrainingsQuery()
  5. return (
  6. <section>
  7. {error && <p>Error loading trainings...</p>}
  8. {loading && <p>Loading data...</p>}
  9. {data && data.trainings.length > 0 ? (
  10. <ul>
  11. {data?.trainings.map(training => (
  12. <li key={training.id}>
  13. <button type='button'>Delete</button>
  14. <Link href='training/[id]' as={`training/${training.id}`}>
  15. <a>{training.title}</a>
  16. </Link>
  17. </li>
  18. ))}
  19. </ul>
  20. ) : (
  21. <p>No trainings found.</p>
  22. )}
  23. <Link href='training/create'>
  24. <a>Create training</a>
  25. </Link>
  26. <style jsx>{`
  27. li {
  28. list-style: none;
  29. }
  30. ul {
  31. padding: 0;
  32. }
  33. `}</style>
  34. </section>
  35. )
  36. }
  37. export default TrainingsList