trainingBlock.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import Track from '../track'
  2. import Exercise from '../exercise'
  3. const TrainingBlock = props => (
  4. <li>
  5. <h2>{props.title}</h2>
  6. <p>
  7. <span className='caption'>Duration: </span>
  8. <span className='data'>{props.duration}</span>
  9. </p>
  10. <p>
  11. <span className='caption'>Variation: </span>
  12. <span className='data'>{props.variation}</span>
  13. </p>
  14. <p>
  15. <span className='caption'>Description: </span>
  16. <span className='data'>{props.description}</span>
  17. </p>
  18. <p>
  19. {props.type ? (
  20. <>
  21. <span className='caption'>Type: </span>
  22. <span className='data'>
  23. {props.type.name}
  24. <sup>
  25. <a title={props.type.description}>[?]</a>
  26. </sup>
  27. </span>
  28. </>
  29. ) : null}
  30. </p>
  31. <section>
  32. <h2>Tracks</h2>
  33. {props.tracks ? (
  34. <ol>
  35. {props.tracks.map(track => (
  36. <Track key={track.id} {...track} />
  37. ))}
  38. </ol>
  39. ) : null}
  40. </section>
  41. <section>
  42. <h2>Exercises</h2>
  43. {props.exercises ? (
  44. <ol>
  45. {props.exercises.map(exercise => (
  46. <Exercise key={exercise.id} {...exercise} />
  47. ))}
  48. </ol>
  49. ) : null}
  50. </section>
  51. <style jsx>
  52. {`
  53. section {
  54. display: grid;
  55. }
  56. `}
  57. </style>
  58. </li>
  59. )
  60. export default TrainingBlock