diff --git a/client/src/pages/printing/index.tsx b/client/src/pages/printing/index.tsx index 86694fc..a7f2586 100644 --- a/client/src/pages/printing/index.tsx +++ b/client/src/pages/printing/index.tsx @@ -6,8 +6,8 @@ import { Content } from "antd/es/layout/layout"; import { theme } from "antd"; import SpoolQRCodePrintingDialog from "./spoolQrCodePrintingDialog"; import SpoolSelectModal from "./spoolSelectModal"; -import { ISpool } from "../spools/model"; import { useNavigate, useSearchParams } from "react-router-dom"; +import { PageHeader } from "@refinedev/antd"; dayjs.extend(utc); @@ -17,39 +17,55 @@ export const Printing: React.FC = () => { const { token } = useToken(); const t = useTranslate(); const [searchParams, setSearchParams] = useSearchParams(); + const navigate = useNavigate(); const spoolIds = searchParams.getAll("spools").map(Number); const step = spoolIds.length > 0 ? 1 : 0; return ( - - {step === 0 && ( - { - setSearchParams((prev) => { - const newParams = new URLSearchParams(prev); - newParams.delete("spools"); - spools.forEach((spool) => newParams.append("spools", spool.id.toString())); - return newParams; - }); + <> + { + const returnUrl = searchParams.get("return"); + if (returnUrl) { + navigate(returnUrl, { relative: "path" }); + } else { + navigate("/spool"); + } + }} + > + - )} - {step === 1 && } - + > + {step === 0 && ( + { + setSearchParams((prev) => { + const newParams = new URLSearchParams(prev); + newParams.delete("spools"); + spools.forEach((spool) => newParams.append("spools", spool.id.toString())); + newParams.set("return", "/spool/print"); + return newParams; + }); + }} + /> + )} + {step === 1 && } + + + ); }; diff --git a/client/src/pages/printing/printing.tsx b/client/src/pages/printing/printing.tsx index d45c479..3efa1bc 100644 --- a/client/src/pages/printing/printing.tsx +++ b/client/src/pages/printing/printing.tsx @@ -1,4 +1,3 @@ -import React, { ReactNode } from "react"; import { ISpool } from "../spools/model"; import { useGetSetting, useSetSetting } from "../../utils/querySettings"; import { v4 as uuidv4 } from "uuid"; diff --git a/client/src/pages/printing/printingDialog.tsx b/client/src/pages/printing/printingDialog.tsx index 528973e..d17ea57 100644 --- a/client/src/pages/printing/printingDialog.tsx +++ b/client/src/pages/printing/printingDialog.tsx @@ -1,6 +1,5 @@ import React, { useRef } from "react"; import { - Modal, Slider, Button, Select, diff --git a/client/src/pages/printing/qrCodePrintingDialog.tsx b/client/src/pages/printing/qrCodePrintingDialog.tsx index 3112aa2..bfe8c15 100644 --- a/client/src/pages/printing/qrCodePrintingDialog.tsx +++ b/client/src/pages/printing/qrCodePrintingDialog.tsx @@ -1,5 +1,4 @@ import { Col, Form, InputNumber, QRCode, Row, Slider, Switch } from "antd"; -import { useSavedState } from "../../utils/saveload"; import PrintingDialog from "./printingDialog"; import { useTranslate } from "@refinedev/core"; import { QRCodePrintSettings } from "./printing"; diff --git a/client/src/pages/printing/spoolSelectModal.tsx b/client/src/pages/printing/spoolSelectModal.tsx index 46336e4..cde7777 100644 --- a/client/src/pages/printing/spoolSelectModal.tsx +++ b/client/src/pages/printing/spoolSelectModal.tsx @@ -1,5 +1,5 @@ import React, { useState } from "react"; -import { Modal, Table, Checkbox, Space, Row, Col, message, Button } from "antd"; +import { Table, Checkbox, Space, Row, Col, message, Button } from "antd"; import { ISpool } from "../spools/model"; import { FilteredQueryColumn, SortedColumn, SpoolIconColumn } from "../../components/column"; import { TableState } from "../../utils/saveload"; diff --git a/client/src/pages/spools/list.tsx b/client/src/pages/spools/list.tsx index fc3b6ca..21fbf6f 100644 --- a/client/src/pages/spools/list.tsx +++ b/client/src/pages/spools/list.tsx @@ -12,6 +12,7 @@ import { FilterOutlined, InboxOutlined, PlusSquareOutlined, + PrinterOutlined, ToTopOutlined, } from "@ant-design/icons"; import { @@ -253,6 +254,15 @@ export const SpoolList: React.FC = () => { ( <> + + {defaultButtons} + + )} + > {t("spool.fields.id")} {t("spool.fields.filament")}