diff options
author | MikunoNaka <bokuwakanojogahoshii@yahoo.com> | 2021-07-12 10:42:05 +0530 |
---|---|---|
committer | MikunoNaka <bokuwakanojogahoshii@yahoo.com> | 2021-07-12 10:42:05 +0530 |
commit | 10dbff87243b91fb4e50a86f1ec4cc30d5c63dc0 (patch) | |
tree | 85b40fce49df4102100500ffc69fb7eab1005542 /src/components/Menu | |
parent | 9d941b5d99621bc98df0be3002aa7121f98e7a56 (diff) |
implemented sleek way to handle generating PDFs
Diffstat (limited to 'src/components/Menu')
-rw-r--r-- | src/components/Menu/Menu.scss | 11 | ||||
-rw-r--r-- | src/components/Menu/SubmitMenu.tsx | 39 |
2 files changed, 50 insertions, 0 deletions
diff --git a/src/components/Menu/Menu.scss b/src/components/Menu/Menu.scss index cf9f7aa..93d6c5e 100644 --- a/src/components/Menu/Menu.scss +++ b/src/components/Menu/Menu.scss @@ -23,3 +23,14 @@ .InvoiceInfoMenu { width: 60%; } + +.PDFViewer { + height: 95%; + width: 95%; + + position: fixed; + top: 0; bottom: 0; + left: 0; right: 0; + margin: auto; + z-index: 3; +} diff --git a/src/components/Menu/SubmitMenu.tsx b/src/components/Menu/SubmitMenu.tsx new file mode 100644 index 0000000..599b181 --- /dev/null +++ b/src/components/Menu/SubmitMenu.tsx @@ -0,0 +1,39 @@ +/* + * OpenBills - Self hosted browser app to generate and keep track of simple invoices + * Version - 0 + * Licensed under the MIT license - https://opensource.org/licenses/MIT + * + * Copyright (c) 2021 Vidhu Kant Sharma +*/ + +import React, { useState, Dispatch, SetStateAction } from "react"; +import { PDFViewer } from '@react-pdf/renderer'; +import PrintableDoc from "./../Print/PrintableDoc"; + +interface Props { + setVisibility: Dispatch<SetStateAction<boolean>> // this component's visibility +} + +const TransportForm: React.FC<Props> = (props) => { + const [showPDF, setShowPDF] = useState<boolean>(false); + const hideSelf = () => + props.setVisibility(false); + + const closeOnBGClicked = (event: any) => + event.target.className === "floatingMenuBG" && hideSelf(); + + return ( + <div className={"floatingMenuBG"} onClick={closeOnBGClicked}> + {showPDF && + <PDFViewer className={"PDFViewer"}> + <PrintableDoc/> + </PDFViewer> + } + <div className={"smallFloatingMenu TransportForm"} /*onSubmit={handleSubmit}*/> + <button onClick={() => setShowPDF(true)}>Generate PDF</button> + </div> + </div> + ); +} + +export default TransportForm; |