|
1 | | -import React from "react"; |
| 1 | +import React, {useState, useMemo} from "react"; |
2 | 2 |
|
3 | 3 | import {useDymoCheckService, useDymoFetchPrinters} from "../../../src"; |
| 4 | +import {generateXmlExample} from "../../../src/utils/dymo"; |
| 5 | +import DymoLabelPreview from "./DymoLabelPreview"; |
4 | 6 |
|
5 | 7 |
|
6 | 8 | export default function DymoAPIExample() { |
7 | | - const [msg, statusDymoService] = useDymoCheckService(); |
8 | | - const [printers, statusDymoLoadPrinters] = useDymoFetchPrinters(statusDymoService); |
| 9 | + const statusDymoService = useDymoCheckService(); |
| 10 | + const [name, setName] = useState("Antonio Peña Batista"); |
| 11 | + const [address, setAddress] = useState("Headquarters 1120 N Street Sacramento"); |
| 12 | + const {statusDymoFetchPrinters, printers} = useDymoFetchPrinters(statusDymoService); |
9 | 13 |
|
10 | | - if (statusDymoService === "loading") { |
11 | | - return <h1>Checking DYMO service...</h1>; |
12 | | - } |
13 | | - else if (statusDymoService === "error") { |
14 | | - return <h1 style={{color: "red"}}>{msg}</h1>; |
15 | | - } |
16 | | - else if (statusDymoService === "success") { |
17 | | - return ( |
18 | | - <div> |
19 | | - <h3 style={{color: "green"}}>DYMO service is running in your PC.</h3> |
20 | | - {statusDymoLoadPrinters === "loading" && <h4>Loading printers..</h4>} |
21 | | - {statusDymoLoadPrinters === "success" && ( |
22 | | - <React.Fragment> |
23 | | - <h4>Printers:</h4> |
24 | | - <ul> |
25 | | - {printers.map(printer => ( |
26 | | - <li key={printer.name}>{printer.name}</li> |
27 | | - ))} |
28 | | - </ul> |
29 | | - </React.Fragment> |
30 | | - )} |
31 | | - </div> |
32 | | - ); |
33 | | - } |
34 | | - else { |
35 | | - return null; |
36 | | - } |
| 14 | + const xmlMemo = useMemo(() => generateXmlExample(name, address), [address, name]); |
| 15 | + |
| 16 | + return ( |
| 17 | + <div> |
| 18 | + {statusDymoService !== "success" ? ( |
| 19 | + <h1>Checking DYMO service...</h1> |
| 20 | + ) : ( |
| 21 | + <React.Fragment> |
| 22 | + <h3 style={{color: "green"}}>DYMO service is running in your PC.</h3> |
| 23 | + <input value={name} title="Name" onChange={e => setName(e.target.value)}/> |
| 24 | + <br/> |
| 25 | + <input value={address} title="Address" onChange={e => setAddress(e.target.value)}/> |
| 26 | + </React.Fragment> |
| 27 | + )} |
| 28 | + <DymoLabelPreview |
| 29 | + xml={xmlMemo} |
| 30 | + statusDymoService={statusDymoService} |
| 31 | + loadingComponent={<h4>Loading Preview...</h4>} |
| 32 | + errorComponent={<h4>Error..</h4>}/> |
| 33 | + {statusDymoFetchPrinters === "loading" && <h4>Loading printers..</h4>} |
| 34 | + {statusDymoFetchPrinters === "success" && ( |
| 35 | + <React.Fragment> |
| 36 | + <h4>Printers:</h4> |
| 37 | + <ul> |
| 38 | + {printers.map(printer => ( |
| 39 | + <li key={printer.name}>{printer.name}</li> |
| 40 | + ))} |
| 41 | + </ul> |
| 42 | + </React.Fragment> |
| 43 | + )} |
| 44 | + </div> |
| 45 | + ); |
37 | 46 | } |
0 commit comments