index.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { useExercisesQuery, ExercisesQuery } from '../../../src/gql'
  2. import { FunctionComponent } from 'react'
  3. import { TExercise } from '../../../src/training/types'
  4. import { AdminList } from '../../../src/app'
  5. import theme from '../../../src/styles/theme'
  6. const AdminExercise: FunctionComponent<{ item: TExercise; className?: string }> = ({
  7. item,
  8. className,
  9. }) => {
  10. return (
  11. <div className={className}>
  12. <div className='admin-training-title'>{item.name}</div>{' '}
  13. <div className='admin-training-description'>{item.description}</div>
  14. <div className='admin-training-info'>{item.parentExerciseInstances?.length}</div>
  15. <style jsx>{`
  16. .${className} {
  17. display: flex;
  18. }
  19. .admin-training-title {
  20. width: 15%;
  21. }
  22. .admin-training-description {
  23. width: 65%;
  24. }
  25. .admin-training-info {
  26. width: 20%;
  27. text-align: right;
  28. }
  29. button {
  30. margin: 0 0.4em;
  31. padding: 0;
  32. color: ${theme.colors.buttonBackground};
  33. background-color: transparent;
  34. }
  35. `}</style>
  36. </div>
  37. )
  38. }
  39. const AdminExercises = () => {
  40. const props = {
  41. name: 'Exercises',
  42. adminMenu: '/admin/exercise',
  43. get: useExercisesQuery,
  44. dataKey: 'exercises' as keyof ExercisesQuery,
  45. Component: AdminExercise,
  46. }
  47. return <AdminList {...props} />
  48. }
  49. export default AdminExercises