Skip to content

Commit

Permalink
printing hooked up
Browse files Browse the repository at this point in the history
  • Loading branch information
srietkerk committed Mar 7, 2024
1 parent c93a681 commit 383b6d7
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 12 deletions.
6 changes: 3 additions & 3 deletions teachertool/src/components/EvalResultDisplay.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from "react";
import { useContext } from "react";
import { useContext, useRef } from "react";
import css from "./styling/EvalResultDisplay.module.scss";
import { AppStateContext } from "../state/appStateContext";
import { CriteriaResultEntry } from "./CriteriaResultEntry";
Expand Down Expand Up @@ -27,13 +27,13 @@ const ResultsHeader: React.FC = () => {
);
};

export const EvalResultDisplay: React.FC<{}> = () => {
export const EvalResultDisplay: React.FC<{printRef: React.RefObject<HTMLDivElement>}> = ({ printRef }) => {
const { state: teacherTool } = useContext(AppStateContext);

return (
<>
{teacherTool.projectMetadata && (
<div className={css["eval-results-container"]}>
<div className={css["eval-results-container"]} ref={printRef}>
<ResultsHeader />
{Object.keys(teacherTool.evalResults ?? {}).map(criteriaInstanceId => {
return <CriteriaResultEntry criteriaId={criteriaInstanceId} key={criteriaInstanceId} />;
Expand Down
3 changes: 1 addition & 2 deletions teachertool/src/components/PrintButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@ import { Toolbar } from "./Toolbar";

interface PrintButtonProps {
printRef: React.RefObject<HTMLDivElement>;
onHandlePrint: () => void;
onHandlePrint?: () => void;
}

export const PrintButton: React.FC<PrintButtonProps> = ({ printRef, onHandlePrint }) => {
const handlePrint = useReactToPrint({
content: () => printRef.current,
onAfterPrint: onHandlePrint,
});
return <Toolbar.Button icon="fas fa-print" title={lf("Print")} onClick={handlePrint} />;
};
20 changes: 13 additions & 7 deletions teachertool/src/components/RubricWorkspace.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from "react";
import css from "./styling/RubricWorkspace.module.scss";
import { useContext } from "react";
import { useContext, useRef } from "react";
import { AppStateContext, stateAndDispatch } from "../state/appStateContext";
import { Toolbar } from "./Toolbar";
import { TabGroup, TabButton } from "./TabGroup";
Expand All @@ -17,6 +17,7 @@ import { isProjectLoaded } from "../state/helpers";
import { setAutorun } from "../transforms/setAutorun";
import { Strings, Ticks } from "../constants";
import { resetRubricAsync } from "../transforms/resetRubricAsync";
import { PrintButton } from "./PrintButton";

function handleImportRubricClicked() {
pxt.tickEvent(Ticks.ImportRubric);
Expand Down Expand Up @@ -53,7 +54,11 @@ const WorkspaceTabButtons: React.FC = () => {
);
};

const WorkspaceTabPanels: React.FC = () => {
interface WithRefProps {
printRef: React.RefObject<HTMLDivElement>;
}

const WorkspaceTabPanels: React.FC<WithRefProps> = ({ printRef }) => {
return (
<>
<TabPanel name="home">
Expand All @@ -63,7 +68,7 @@ const WorkspaceTabPanels: React.FC = () => {
<ActiveRubricDisplay />
</TabPanel>
<TabPanel name="results">
<EvalResultDisplay />
<EvalResultDisplay printRef={printRef}/>
</TabPanel>
</>
);
Expand Down Expand Up @@ -101,7 +106,7 @@ function getActionMenuItems(tab: TabName): MenuItem[] {
return items;
}

const WorkspaceToolbarButtons: React.FC = () => {
const WorkspaceToolbarButtons: React.FC<WithRefProps> = ({ printRef }) => {
const { state: teacherTool } = useContext(AppStateContext);
const { activeTab, autorun } = teacherTool;

Expand All @@ -115,7 +120,7 @@ const WorkspaceToolbarButtons: React.FC = () => {
return (
<Toolbar.ControlGroup>
{activeTab === "results" && (
<Toolbar.Button icon="fas fa-print" title={lf("Print")} onClick={() => console.log("Print")} />
<PrintButton printRef={printRef} />
)}
{/* Conditional buttons go above this line */}
<Toolbar.Toggle
Expand All @@ -136,10 +141,11 @@ const WorkspaceToolbarButtons: React.FC = () => {
};

export const RubricWorkspace: React.FC = () => {
const printRef = useRef<HTMLDivElement>(null);
return (
<div className={css.panel}>
<Toolbar left={<WorkspaceTabButtons />} right={<WorkspaceToolbarButtons />} />
<WorkspaceTabPanels />
<Toolbar left={<WorkspaceTabButtons />} right={<WorkspaceToolbarButtons printRef={printRef} />} />
<WorkspaceTabPanels printRef={printRef}/>
</div>
);
};

0 comments on commit 383b6d7

Please sign in to comment.