Skip to content

Commit 992df85

Browse files
committed
Cleanup development code
1 parent 4e85334 commit 992df85

File tree

4 files changed

+80
-54
lines changed

4 files changed

+80
-54
lines changed

src/app/components/elements/list-groups/AbstractListViewItem.tsx

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { StageAndDifficultySummaryIcons } from "../StageAndDifficultySummaryIcon
44
import { ShortcutResponse, Subject, ViewingContext} from "../../../../IsaacAppTypes";
55
import classNames from "classnames";
66
import { Button, Col, ListGroup, ListGroupItem, Row } from "reactstrap";
7-
import { AffixButton } from "../AffixButton";
87
import { Spacer } from "../Spacer";
98
import { CompletionState } from "../../../../IsaacApiTypes";
109
import { determineAudienceViews } from "../../../services/userViewingContext";
@@ -139,25 +138,3 @@ export const AbstractListViewItem = ({icon, title, subject, subtitle, breadcrumb
139138
<div> {cardBody} </div>}
140139
</ListGroupItem>;
141140
};
142-
143-
export const AbstractListView = ({items}: {items: ShortcutResponse[]}) => {
144-
return <ListGroup className="link-list list-group-links">
145-
{items.map(item =>
146-
<AbstractListViewItem
147-
key={item.title}
148-
icon={{type: "img", icon: "/assets/phy/icons/redesign/subject-physics.svg"}}
149-
title={item.title ?? ""}
150-
subtitle={item.subtitle}
151-
breadcrumb={tags.getByIdsAsHierarchy((item.tags || []) as TAG_ID[]).map(tag => tag.title)}
152-
status={item.state}
153-
url={item.url}
154-
audienceViews={determineAudienceViews(item.audience)}
155-
/>)}
156-
</ListGroup>;
157-
};
158-
159-
/*export const AbstractListViewWithProps = ({items}: {items: AbstractListViewItemProps[]}) => {
160-
return <ListGroup data-bs-theme="physics" className="link-list list-group-links">
161-
{items.map(item => <AbstractListViewItem key={item.title} {...item}/>)}
162-
</ListGroup>;
163-
};*/

src/app/components/elements/list-groups/ListView.tsx

Lines changed: 79 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -50,26 +50,28 @@ export const QuestionListViewItem = ({item, ...rest} : {item: ShortcutResponse})
5050

5151
export const ConceptListViewItem = ({item, ...rest}: {item: ShortcutResponse}) => {
5252
const itemSubject = tags.getSpecifiedTag(TAG_LEVEL.subject, item.tags as TAG_ID[])?.id as Subject;
53+
const url = `/${documentTypePathPrefix[DOCUMENT_TYPE.CONCEPT]}/${item.id}`;
5354

5455
return <AbstractListViewItem
5556
icon={{type: "hex", icon: "list-icon-concept", size: "sm"}}
5657
title={item.title ?? ""}
5758
subject={itemSubject}
5859
subtitle={item.subtitle}
59-
url={item.url}
60+
url={url}
6061
{...rest}
6162
/>;
6263
};
6364

6465
export const EventListViewItem = ({item, ...rest}: {item: ShortcutResponse}) => {
6566
const itemSubject = tags.getSpecifiedTag(TAG_LEVEL.subject, item.tags as TAG_ID[])?.id as Subject;
67+
const url = `/${documentTypePathPrefix[DOCUMENT_TYPE.EVENT]}/${item.id}`;
6668

6769
return <AbstractListViewItem
6870
icon={{type: "hex", icon: "list-icon-events", size: "sm"}}
6971
title={item.title ?? ""}
7072
subject={itemSubject}
7173
subtitle={item.subtitle}
72-
url={item.url}
74+
url={url}
7375
{...rest}
7476
/>;
7577
};
@@ -81,7 +83,7 @@ export const QuizListViewItem = ({item, isQuizSetter, ...rest}: {item: QuizSumma
8183
<AffixButton size="md" color="solid" onClick={() => (dispatch(showQuizSettingModal(item)))} affix={{ affix: "icon-right", position: "suffix", type: "icon" }}>
8284
Set test
8385
</AffixButton> :
84-
<AffixButton size="md" color="solid" to={item.url} tag={Link} affix={{ affix: "icon-right", position: "suffix", type: "icon" }}>
86+
<AffixButton size="md" color="solid" to={`/${documentTypePathPrefix[DOCUMENT_TYPE.QUIZ]}/${item.id}`} tag={Link} affix={{ affix: "icon-right", position: "suffix", type: "icon" }}>
8587
Take the test
8688
</AffixButton>;
8789

@@ -95,19 +97,79 @@ export const QuizListViewItem = ({item, isQuizSetter, ...rest}: {item: QuizSumma
9597
/>;
9698
};
9799

100+
export const QuestionPackListViewItem = ({item, ...rest}: {item: ShortcutResponse}) => {
101+
const breadcrumb = tags.getByIdsAsHierarchy((item.tags || []) as TAG_ID[]).map(tag => tag.title);
102+
const itemSubject = tags.getSpecifiedTag(TAG_LEVEL.subject, item.tags as TAG_ID[])?.id as Subject;
103+
const url = `/gameboards#${item.id}`;
104+
105+
return <AbstractListViewItem
106+
icon={{type: "hex", icon: "list-icon-question", size: "sm"}}
107+
title={item.title ?? ""}
108+
subject={itemSubject}
109+
subtitle={item.subtitle}
110+
breadcrumb={breadcrumb}
111+
url={url}
112+
{...rest}
113+
/>;
114+
};
115+
116+
export const QuickQuizListViewItem = ({item, ...rest}: {item: ShortcutResponse}) => {
117+
const breadcrumb = tags.getByIdsAsHierarchy((item.tags || []) as TAG_ID[]).map(tag => tag.title);
118+
const audienceViews: ViewingContext[] = determineAudienceViews(item.audience);
119+
const itemSubject = tags.getSpecifiedTag(TAG_LEVEL.subject, item.tags as TAG_ID[])?.id as Subject;
120+
const url = `/gameboards#${item.id}`;
121+
122+
return <AbstractListViewItem
123+
icon={{type: "hex", icon: "list-icon-question", size: "sm"}}
124+
title={item.title ?? ""}
125+
subject={itemSubject}
126+
subtitle={item.subtitle}
127+
breadcrumb={breadcrumb}
128+
status={item.state}
129+
testTag={"Level 1" /* Quick quizzes are currently just gameboards. This tag doesn't exist yet. */}
130+
url={url}
131+
audienceViews={audienceViews}
132+
{...rest}
133+
/>;
134+
};
135+
136+
export const GenericListViewItem = ({item, ...rest}: {item: ShortcutResponse}) => {
137+
const breadcrumb = tags.getByIdsAsHierarchy((item.tags || []) as TAG_ID[]).map(tag => tag.title);
138+
const audienceViews: ViewingContext[] = determineAudienceViews(item.audience);
139+
const itemSubject = tags.getSpecifiedTag(TAG_LEVEL.subject, item.tags as TAG_ID[])?.id as Subject;
140+
const url = `/${documentTypePathPrefix[DOCUMENT_TYPE.QUESTION]}/${item.id}`;
141+
142+
return <AbstractListViewItem
143+
icon={{type: "hex", icon: "list-icon-question", size: "sm"}}
144+
title={item.title ?? ""}
145+
subject={itemSubject}
146+
subtitle={item.subtitle}
147+
breadcrumb={breadcrumb}
148+
status={item.state}
149+
url={url}
150+
audienceViews={audienceViews}
151+
{...rest}
152+
/>;
153+
};
154+
98155
export const ListViewCards = ({cards}: {cards: ListViewCardProps[]}) => {
99156
const cardGrid: JSX.Element[] = [];
100-
for (let i = 0; i < cards.length; i += 2) {
101-
if (i % 2 === 0) {
102-
cardGrid.push(<Row className="w-100 link-list list-group-links ms-0 border-0" key={i}>
103-
<Col xs={12} lg={6} className="list-view-card-border">
104-
<ListViewCard {...cards[i]}/>
105-
</Col>
106-
<Col xs={12} lg={6} className="list-view-card-border">
107-
<ListViewCard {...cards[i+1]}/>
108-
</Col>
109-
</Row>);
110-
}
157+
for (let i = 0; i < (cards.length - cards.length % 2); i += 2) {
158+
cardGrid.push(<Row className="w-100 link-list list-group-links ms-0 border-0">
159+
<Col xs={12} lg={6} className="list-view-card-border">
160+
<ListViewCard {...cards[i]}/>
161+
</Col>
162+
<Col xs={12} lg={6} className="list-view-card-border">
163+
<ListViewCard {...cards[i+1]}/>
164+
</Col>
165+
</Row>);
166+
}
167+
if (cards.length % 2 == 1) {
168+
cardGrid.push(<Row className="w-100 link-list list-group-links ms-0 border-0 justify-content-center">
169+
<Col xs={12} lg={6} className="list-view-card-border">
170+
<ListViewCard {...cards[cards.length-1]}/>
171+
</Col>
172+
</Row>);
111173
}
112174

113175
return <div className="list-view-card-container">
@@ -116,37 +178,26 @@ export const ListViewCards = ({cards}: {cards: ListViewCardProps[]}) => {
116178
};
117179

118180
export const ListView = ({items, ...rest}: {items: ShortcutResponse[], fullWidth?: boolean, isQuizSetter?: boolean}) => {
119-
120-
// Cards (e.g. the subjects on the homepage) Xxxx
121-
// Questions X
122-
// Question Packs
123-
// Quick Quizzes
124-
// Concepts
125-
// Tests x
126-
127181
return <ListGroup className="link-list list-group-links">
128182
{items.map((item, index) => {
129183
switch (item.type) {
184+
case (DOCUMENT_TYPE.GENERIC):
130185
case (SEARCH_RESULT_TYPE.SHORTCUT):
131-
return <QuestionListViewItem key={index} item={item} {...rest}/>;
186+
return <GenericListViewItem key={index} item={item} {...rest}/>;
132187
case (DOCUMENT_TYPE.QUESTION):
133188
case (DOCUMENT_TYPE.FAST_TRACK_QUESTION):
134189
return <QuestionListViewItem key={index} item={item} {...rest}/>;
135190
case (DOCUMENT_TYPE.CONCEPT):
136191
return <ConceptListViewItem key={index} item={item} {...rest}/>;
137192
case (DOCUMENT_TYPE.EVENT):
138193
return <EventListViewItem key={index} item={item} {...rest}/>;
139-
case (DOCUMENT_TYPE.TOPIC_SUMMARY):
140-
return <ConceptListViewItem key={index} item={item} {...rest}/>;
141-
case (DOCUMENT_TYPE.GENERIC):
142-
return <QuestionListViewItem key={index} item={item} {...rest}/>;
143194
case (DOCUMENT_TYPE.QUIZ):
144195
return <QuizListViewItem key={index} item={item} {...rest}/>;
145196
default:
146197
// Do not render this item if there is no matching DOCUMENT_TYPE
147198
console.error("Not able to display item as a ListViewItem: ", item);
148199
return null;
149-
}
200+
}
150201
})}
151202
</ListGroup>;
152203
};

src/app/components/pages/quizzes/SetQuizzes.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {ShowLoading} from "../../handlers/ShowLoading";
1212
import {QuizAssignmentDTO, QuizSummaryDTO, RegisteredUserDTO} from "../../../../IsaacApiTypes";
1313
import {TitleAndBreadcrumb} from "../../elements/TitleAndBreadcrumb";
1414
import {formatDate, formatISODateOnly} from "../../elements/DateString";
15-
import {AppQuizAssignment, ShortcutResponse} from "../../../../IsaacAppTypes";
15+
import {AppQuizAssignment} from "../../../../IsaacAppTypes";
1616
import {
1717
above,
1818
below, confirmThen,
@@ -44,7 +44,6 @@ interface SetQuizzesPageProps extends RouteComponentProps {
4444
user: RegisteredUserDTO;
4545
}
4646

47-
4847
interface AssignedGroup {
4948
assignment: QuizAssignmentDTO;
5049
group: string;

src/scss/phy/list-groups.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
$subject-color-50: map.get($subject-colors, 50);
5252
$subject-color-100: map.get($subject-colors, 100);
5353
$subject-color-500: map.get($subject-colors, 500);
54-
$subject-color-900: map.get($subject-colors, 900);
5554

5655
.quiz-level-1-tag {
5756
@include pill-tag($subject-color-500, $subject-color-100);

0 commit comments

Comments
 (0)