Advertisement
Guest User

Untitled

a guest
May 27th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. import React from 'react';
  2. import { List, Map } from 'immutable';
  3. import FormControl from '@material-ui/core/FormControl';
  4. import InputLabel from '@material-ui/core/InputLabel';
  5. import Select from '@material-ui/core/Select';
  6. import MenuItem from '@material-ui/core/MenuItem';
  7.  
  8.  
  9. const mockedStore = Map({
  10. trainingCourses: Map({
  11. trainingCoursesId1: Map({
  12. id: 'trainingCoursesId1',
  13. name: 'trainingCoursesId1',
  14. modules: List(['trainingCourse1ModuleId1', 'trainingCourse1ModuleId2', 'trainingCourse1ModuleId3']),
  15. }),
  16. trainingCoursesId2: Map({
  17. id: 'trainingCoursesId2',
  18. name: 'trainingCoursesId2',
  19. modules: List(['trainingCourse2ModuleId1']),
  20. }),
  21. }),
  22. modules: Map({
  23. trainingCourse1ModuleId1: Map({
  24. id: 'trainingCourse1ModuleId1',
  25. }),
  26. trainingCourse1ModuleId2: Map({
  27. id: 'trainingCourse1ModuleId2',
  28. }),
  29. trainingCourse1ModuleId3: Map({
  30. id: 'trainingCourse1ModuleId3',
  31. }),
  32. trainingCourse2ModuleId1: Map({
  33. id: 'trainingCourse1ModuleId3',
  34. }),
  35. }),
  36. });
  37.  
  38. class TrainingCourses extends React.Component {
  39. constructor(props) {
  40. super(props);
  41. this.state = {
  42. selectedTrainingCourse: 'trainingCoursesId1',
  43. selectedTrainingCourseModule: 'selectedTrainingCourseModuleId1',
  44. };
  45. }
  46.  
  47. selectTrainingCourse = (event) => {
  48. this.setState({ selectedTrainingCourse: event.target.value });
  49. };
  50.  
  51. selectTrainingCourseModule = (event) => {
  52. this.setState({ selectedTrainingCourseModule: event.target.value });
  53. };
  54.  
  55. render() {
  56. const trainingCourses = mockedStore.get('trainingCourses');
  57. const { selectedTrainingCourse, selectedTrainingCourseModule } = this.state;
  58. console.log(trainingCourses.getIn([selectedTrainingCourse, 'modules']));
  59. return (
  60. <div style={{ display: 'flex', height: '100%' }}>
  61. <div style={{ flexBasis: '80%' }}>
  62. Тесты
  63. </div>
  64. <div style={{ flexBasis: '20%', display: 'flex', flexDirection: 'column' }}>
  65. Фильтры
  66. <FormControl>
  67. <InputLabel htmlFor="training-courses">Учебный курс</InputLabel>
  68. <Select
  69. value={selectedTrainingCourse}
  70. onChange={this.selectTrainingCourse}
  71. inputProps={{ name: 'training-course', id: 'training-courses' }}
  72. autoWidth
  73. >
  74. <MenuItem value="">
  75. <em>None</em>
  76. </MenuItem>
  77. {trainingCourses.map((trainingCourse) => (
  78. <MenuItem value={trainingCourse.get('id')}>
  79. {trainingCourse.get('name')}
  80. </MenuItem>
  81. ))}
  82. </Select>
  83. </FormControl>
  84. {selectedTrainingCourse && (
  85. <FormControl>
  86. <InputLabel htmlFor="training-courses">Модуль</InputLabel>
  87. <Select
  88. value={selectedTrainingCourseModule}
  89. onChange={this.selectTrainingCourseModule}
  90. inputProps={{ name: 'training-course-module', id: 'training-course-modules' }}
  91. autoWidth
  92. >
  93. <MenuItem value="">
  94. <em>None</em>
  95. </MenuItem>
  96. {trainingCourses.getIn([selectedTrainingCourse, 'modules']).map((trainingCourseModule) => (
  97. <MenuItem value={trainingCourseModule}>
  98. {trainingCourseModule}
  99. </MenuItem>
  100. ))}
  101. </Select>
  102. </FormControl>
  103. )}
  104. </div>
  105. </div>
  106. );
  107. }
  108. }
  109.  
  110. export default TrainingCourses;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement