Skip to content

Commit 3f5f9a2

Browse files
committed
Prefer "Loading..." text to not rendering scheduled work dashboard
1 parent 230a892 commit 3f5f9a2

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

src/app/components/elements/TeacherDashboard.tsx

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { ChangeEvent, useState } from 'react';
22
import { selectors, useAppSelector } from '../../state';
33
import { Button, Card, Col, Row } from 'reactstrap';
44
import { Link } from 'react-router-dom';
5-
import { BookInfo, extractTeacherName, ISAAC_BOOKS, isDefined, isOverdue, isTutor, sortUpcomingAssignments, Subject, useDeviceSize } from '../../services';
5+
import { BookInfo, extractTeacherName, ISAAC_BOOKS, isOverdue, isTutor, sortUpcomingAssignments, Subject, useDeviceSize } from '../../services';
66
import { AssignmentDTO, QuizAssignmentDTO, UserSummaryDTO } from '../../../IsaacApiTypes';
77
import StyledToggle from './inputs/StyledToggle';
88
import { AssignmentCard, StudentDashboard } from './StudentDashboard';
@@ -11,6 +11,7 @@ import { Spacer } from './Spacer';
1111
import { AppGroup, UserSnapshot } from '../../../IsaacAppTypes';
1212
import { useStatefulElementRef } from './markup/portals/utils';
1313
import { ScrollShadows } from './ScrollShadows';
14+
import { ShowLoading } from '../handlers/ShowLoading';
1415

1516
interface GroupsPanelProps {
1617
groups: AppGroup[] | undefined;
@@ -44,10 +45,6 @@ interface AssignmentsPanelProps {
4445

4546
const AssignmentsPanel = ({ assignments, quizzes, groups }: AssignmentsPanelProps) => {
4647
const user = useAppSelector(selectors.user.orNull);
47-
48-
if (!isDefined(assignments) || !isDefined(quizzes)) {
49-
return <div className="dashboard-panel"/>;
50-
}
5148

5249
const upcomingAssignments = assignments?.filter(a => !isOverdue(a)); // Filter out past assignments
5350
const sortedAssignments = upcomingAssignments ? sortUpcomingAssignments(upcomingAssignments) : [];
@@ -63,15 +60,19 @@ const AssignmentsPanel = ({ assignments, quizzes, groups }: AssignmentsPanelProp
6360

6461
return <div className="dashboard-panel">
6562
<h4>View scheduled work</h4>
66-
{soonestDeadlines.length ?
67-
<div className="overflow-y-auto px-1 pt-1 mx-n1 mt-m1 mb-2">
68-
{soonestDeadlines.map((assignment, i) =>
69-
<div className={i+1 < soonestDeadlines.length ? "mb-3" : "mb-1"} key={assignment.id}>
70-
<AssignmentCard assignment={assignment} isTeacherDashboard groups={groups} />
71-
</div>)}
72-
</div>
73-
: <div className="text-center mt-lg-3">You have no assignments with upcoming due dates.</div>
74-
}
63+
<ShowLoading
64+
until={assignments && quizzes}
65+
thenRender={() => {
66+
return soonestDeadlines.length
67+
? <div className="overflow-y-auto px-1 pt-1 mx-n1 mt-m1 mb-2">
68+
{soonestDeadlines.map((assignment, i) =>
69+
<div className={i+1 < soonestDeadlines.length ? "mb-3" : "mb-1"} key={assignment.id}>
70+
<AssignmentCard assignment={assignment} isTeacherDashboard groups={groups} />
71+
</div>)}
72+
</div>
73+
: <div className="text-center mt-lg-3">You have no assignments with upcoming due dates.</div>;
74+
}}
75+
/>
7576
<Spacer/>
7677
<div className="d-flex align-items-center">
7778
<Link to="/assignment_schedule" className="d-inline text-center panel-link me-3">

0 commit comments

Comments
 (0)