File tree Expand file tree Collapse file tree 9 files changed +215
-222
lines changed Expand file tree Collapse file tree 9 files changed +215
-222
lines changed Original file line number Diff line number Diff line change 8
8
]
9
9
10
10
documents :
11
- - src/hooks /*.graphql
11
+ - src/** /*.graphql
12
12
generates :
13
13
src/__generated__/types.ts :
14
14
plugins :
@@ -42,6 +42,7 @@ generates:
42
42
nonOptionalTypename : true
43
43
useTypeImports : false
44
44
withHooks : true
45
+ preResolveTypes : true
45
46
./graphql.schema.json :
46
47
plugins :
47
48
- ' introspection'
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import SingleTargetOverview from '../SingleTargetOverview/SingleTargetOverview';
11
11
import SingleMissionOverview from '../SingleStudentOverview/SingleMissionOverview' ;
12
12
13
13
import TaskView from '../../Screens/TaskView/TaskView' ;
14
+ import TaskListView from '../TaskListView' ;
14
15
import { ClassMastery } from '../../Screens/ClassMastery' ;
15
16
import './Content.css' ;
16
17
@@ -45,9 +46,9 @@ export default function Content() {
45
46
< Route path = "/singleMissionOverview/:name" >
46
47
< SingleMissionOverview />
47
48
</ Route >
48
- { /* <Route path="/viewTask ">
49
- <TaskView taskId="90e0c730e56" />
50
- </Route> */ }
49
+ < Route path = "/taskList " >
50
+ < TaskListView />
51
+ </ Route >
51
52
< Route path = "/viewTask/:taskId" >
52
53
< TaskView />
53
54
</ Route >
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ const sideBarItems = [
39
39
} ,
40
40
{
41
41
name : 'Task' ,
42
- link : '/viewTask ' ,
42
+ link : '/taskList ' ,
43
43
Icon : IconPeople ,
44
44
} ,
45
45
{
Original file line number Diff line number Diff line change
1
+ .cell-taskname {
2
+ width : 25% ;
3
+ text-overflow : ellipsis;
4
+ }
5
+ .cell-instructions {
6
+ width : 65% ;
7
+ text-overflow : ellipsis;
8
+ }
9
+ .cell-view {
10
+ width : 10% ;
11
+ }
Original file line number Diff line number Diff line change
1
+ import { Link } from 'react-router-dom' ;
2
+ import { TaskListTaskFieldsFragment } from '../../__generated__/types' ;
3
+
4
+ import './TaskListTable.css' ;
5
+
6
+ type HeadProps = {
7
+ headers : Array < string > ;
8
+ } ;
9
+
10
+ type RowProps = {
11
+ data : Array < TaskListTaskFieldsFragment > ;
12
+ } ;
13
+
14
+ type TaskTableProps = HeadProps & RowProps ;
15
+
16
+ const TaskListTableHead = ( { headers } : HeadProps ) : JSX . Element => {
17
+ return (
18
+ < thead >
19
+ < tr >
20
+ { headers . map ( ( header ) => (
21
+ < th > { header } </ th >
22
+ ) ) }
23
+ </ tr >
24
+ </ thead >
25
+ ) ;
26
+ } ;
27
+
28
+ const TaskListTableBody = ( { data } : RowProps ) : JSX . Element => {
29
+ const rows = data . map ( ( task ) => {
30
+ return (
31
+ < tr key = { task . id } className = "hoverRow" >
32
+ < td className = "cell-taskname" > { task . name } </ td >
33
+ < td className = "cell-instructions" > { task . instructions } </ td >
34
+ < td className = "cell-view" >
35
+ < Link
36
+ to = { {
37
+ pathname : `/viewTask/${ task . id } ` ,
38
+ } }
39
+ >
40
+ view
41
+ </ Link >
42
+ </ td >
43
+ </ tr >
44
+ ) ;
45
+ } ) ;
46
+
47
+ return < tbody > { rows } </ tbody > ;
48
+ } ;
49
+
50
+ const TaskListTable = ( { headers : columns , data } : TaskTableProps ) : JSX . Element => {
51
+ return (
52
+ < table >
53
+ < TaskListTableHead headers = { columns } />
54
+ < TaskListTableBody data = { data } />
55
+ </ table >
56
+ ) ;
57
+ } ;
58
+
59
+ export default TaskListTable ;
Original file line number Diff line number Diff line change
1
+ import { useTaskListQuery } from '../../__generated__/types' ;
2
+ import TaskListTable from './TaskListTable' ;
3
+
4
+ function TaskList ( ) {
5
+ const { data } = useTaskListQuery ( {
6
+ variables : {
7
+ course : 'Integrated Science' ,
8
+ } ,
9
+ } ) ;
10
+
11
+ const tasks = data ?. tasksByCourse || [ ] ;
12
+ const headers = [ 'Task Name' , 'Instructions' , 'Submissions' ] ;
13
+
14
+ return (
15
+ < div className = "base-table" >
16
+ < TaskListTable headers = { headers } data = { tasks } />
17
+ </ div >
18
+ ) ;
19
+ }
20
+
21
+ export default TaskList ;
Original file line number Diff line number Diff line change
1
+ export { default } from './TaskListView' ;
Original file line number Diff line number Diff line change
1
+ query TaskList ($course : String ! ) {
2
+ tasksByCourse (course : $course ) {
3
+ ... TaskListTaskFields
4
+ }
5
+ }
6
+
7
+ fragment TaskListTaskFields on Task {
8
+ id
9
+ name
10
+ instructions
11
+ }
You can’t perform that action at this time.
0 commit comments