Skip to content

Commit 1fa93ba

Browse files
committed
Merge branch 'vscode/next' of https://github.com/source-academy/frontend into vscode/next
2 parents d13ebaf + 705b31a commit 1fa93ba

File tree

3 files changed

+36
-2
lines changed

3 files changed

+36
-2
lines changed

src/commons/application/Application.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import { useDispatch } from 'react-redux';
3-
import { Outlet } from 'react-router-dom';
3+
import { Outlet, useNavigate } from 'react-router-dom';
44
import Messages, {
55
MessageType,
66
MessageTypeNames,
@@ -18,6 +18,7 @@ import VscodeActions from './actions/VscodeActions';
1818
const Application: React.FC = () => {
1919
const dispatch = useDispatch();
2020
const { isLoggedIn } = useSession();
21+
const navigate = useNavigate();
2122

2223
// Used in the mobile/PWA experience (e.g. separate handling of orientation changes on Andriod & iOS due to unique browser behaviours)
2324
const isMobile = /iPhone|iPad|Android/.test(navigator.userAgent);
@@ -123,6 +124,9 @@ const Application: React.FC = () => {
123124
case MessageTypeNames.EvalEditor:
124125
dispatch(WorkspaceActions.evalEditor(message.workspaceLocation));
125126
break;
127+
case MessageTypeNames.Navigate:
128+
navigate(message.route);
129+
break;
126130
case MessageTypeNames.McqQuestion:
127131
dispatch(
128132
WorkspaceActions.showMcqPane(

src/commons/assessment/Assessment.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ import {
2020
import { IconNames } from '@blueprintjs/icons';
2121
import classNames from 'classnames';
2222
import { sortBy } from 'lodash';
23-
import React, { useMemo, useState } from 'react';
23+
import React, { useEffect, useMemo, useState } from 'react';
2424
import { useDispatch } from 'react-redux';
2525
import { Navigate, useLoaderData, useParams } from 'react-router';
2626
import { NavLink } from 'react-router-dom';
2727
import { numberRegExp } from 'src/features/academy/AcademyTypes';
28+
import Messages, { sendToWebview } from 'src/features/vscode/messages';
2829
import classes from 'src/styles/Academy.module.scss';
2930

3031
import defaultCoverImage from '../../assets/default_cover_image.jpg';
@@ -61,6 +62,24 @@ const Assessment: React.FC = () => {
6162
const { courseId, role, assessmentOverviews: assessmentOverviewsUnfiltered } = useSession();
6263
const dispatch = useDispatch();
6364

65+
useEffect(() => {
66+
console.log('Iam in Assessment');
67+
console.log(assessmentOverviewsUnfiltered);
68+
if (assessmentOverviewsUnfiltered) {
69+
sendToWebview(
70+
Messages.NotifyAssessmentsOverview(
71+
assessmentOverviewsUnfiltered.map(oa => ({
72+
type: oa.type,
73+
closeAt: oa.closeAt,
74+
id: oa.id,
75+
isPublished: oa.isPublished,
76+
title: oa.title
77+
}))
78+
)
79+
);
80+
}
81+
}, [assessmentOverviewsUnfiltered]);
82+
6483
const toggleClosedAssessments = () => setShowClosedAssessments(!showClosedAssessments);
6584
const toggleOpenAssessments = () => setShowOpenedAssessments(!showOpenedAssessments);
6685
const toggleUpcomingAssessments = () => setShowUpcomingAssessments(!showUpcomingAssessments);

src/features/vscode/messages.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ const VscWorkspaceLocationArray = ['assessment', 'playground'];
99
export const isVscWorkspaceLocation = (s: any) => VscWorkspaceLocationArray.includes(s);
1010
export type VscWorkspaceLocation = 'assessment' | 'playground';
1111

12+
export type VscAssessmentOverview = {
13+
type: string;
14+
closeAt: string;
15+
id: number;
16+
isPublished?: boolean;
17+
title: string;
18+
};
19+
1220
// ================================================================================
1321
// Message type definitions
1422
// ================================================================================
@@ -41,6 +49,9 @@ const Messages = createMessages({
4149
EvalEditor: (workspaceLocation: VscWorkspaceLocation) => ({
4250
workspaceLocation: workspaceLocation
4351
}),
52+
NotifyAssessmentsOverview: (assessmentOverviews: VscAssessmentOverview[]) => ({
53+
assessmentOverviews
54+
}),
4455
Navigate: (route: string) => ({
4556
route
4657
}),

0 commit comments

Comments
 (0)