Skip to content

Commit e5031ab

Browse files
committed
added downloadable file
1 parent cec0681 commit e5031ab

File tree

3 files changed

+140
-3
lines changed

3 files changed

+140
-3
lines changed

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
"cors": "^2.8.5",
1919
"express": "^4.16.4",
2020
"imagemin-mozjpeg": "^9.0.0",
21+
"jspdf": "^2.4.0",
22+
"jspdf-autotable": "^3.5.20",
2123
"moxios": "^0.4.0",
2224
"next": "10.0.1",
2325
"next-compose-plugins": "^2.2.1",

pages/confirmation/index.jsx

+21-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,26 @@ const CheckOut = ({ cartTotal }) => {
2323
return <></>;
2424
}
2525

26+
function generatePDF() {
27+
const doc = new jsPDF()
28+
doc.text('BrowserStack Demo', 14, 20)
29+
doc.autoTable({
30+
head: [['Brand', 'Type', 'Quantity', 'Price']],
31+
body:
32+
cartProducts.map(({availableSizes, title, quantity, price}) => {
33+
return [
34+
availableSizes[0],
35+
title,
36+
quantity,
37+
'$' + parseFloat(price).toFixed(2) + '.00'
38+
]
39+
}),
40+
startY: 25,
41+
})
42+
doc.text('Total price: $' + parseFloat(confirmationTotal.totalPrice).toFixed(2), 14, doc.lastAutoTable.finalY + 10)
43+
doc.save('confirmation.pdf')
44+
}
45+
2646
return (
2747
<>
2848
<Head>
@@ -51,7 +71,7 @@ const CheckOut = ({ cartTotal }) => {
5171
<legend id="confirmation-message" className="form-legend optimizedCheckout-headingSecondary" data-test="shipping-address-heading">Your Order has been successfully placed.</legend>
5272
</div>
5373
<div>
54-
Your order number is <strong>{Math.floor(Math.random() * 100) + 1}</strong>
74+
Your order number is <strong>{Math.floor(Math.random() * 100) + 1}</strong>. Download <a className="underline cursor-pointer" onClick={generatePDF}>here</a> an overview of the ordered items.
5575
</div>
5676
</div>
5777
</div>

yarn.lock

+117-2
Original file line numberDiff line numberDiff line change
@@ -1063,6 +1063,13 @@
10631063
dependencies:
10641064
regenerator-runtime "^0.13.4"
10651065

1066+
"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0":
1067+
version "7.15.4"
1068+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
1069+
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
1070+
dependencies:
1071+
regenerator-runtime "^0.13.4"
1072+
10661073
"@babel/template@^7.10.4", "@babel/template@^7.7.4":
10671074
version "7.12.7"
10681075
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
@@ -1405,6 +1412,11 @@
14051412
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
14061413
integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
14071414

1415+
"@types/raf@^3.4.0":
1416+
version "3.4.0"
1417+
resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.0.tgz#2b72cbd55405e071f1c4d29992638e022b20acc2"
1418+
integrity sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==
1419+
14081420
"@types/react-transition-group@^4.2.0":
14091421
version "4.4.0"
14101422
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d"
@@ -2060,6 +2072,16 @@ balanced-match@^1.0.0:
20602072
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
20612073
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
20622074

2075+
base64-arraybuffer@^0.2.0:
2076+
version "0.2.0"
2077+
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45"
2078+
integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==
2079+
2080+
base64-arraybuffer@^1.0.1:
2081+
version "1.0.1"
2082+
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz#87bd13525626db4a9838e00a508c2b73efcf348c"
2083+
integrity sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==
2084+
20632085
base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1:
20642086
version "1.5.1"
20652087
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
@@ -2566,6 +2588,20 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001093, can
25662588
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001164.tgz#5bbfd64ca605d43132f13cc7fdabb17c3036bfdc"
25672589
integrity sha512-G+A/tkf4bu0dSp9+duNiXc7bGds35DioCyC6vgK2m/rjA4Krpy5WeZgZyfH2f0wj2kI6yAWWucyap6oOwmY1mg==
25682590

2591+
canvg@^3.0.6:
2592+
version "3.0.9"
2593+
resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.9.tgz#9ba095f158b94b97ca2c9c1c40785b11dc08df6d"
2594+
integrity sha512-rDXcnRPuz4QHoCilMeoTxql+fvGqNAxp+qV/KHD8rOiJSAfVjFclbdUNHD2Uqfthr+VMg17bD2bVuk6F07oLGw==
2595+
dependencies:
2596+
"@babel/runtime" "^7.12.5"
2597+
"@types/raf" "^3.4.0"
2598+
core-js "^3.8.3"
2599+
raf "^3.4.1"
2600+
regenerator-runtime "^0.13.7"
2601+
rgbcolor "^1.0.1"
2602+
stackblur-canvas "^2.0.0"
2603+
svg-pathdata "^6.0.3"
2604+
25692605
caseless@~0.12.0:
25702606
version "0.12.0"
25712607
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -3035,6 +3071,11 @@ core-js@^2.4.0:
30353071
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
30363072
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
30373073

3074+
core-js@^3.6.0, core-js@^3.8.3:
3075+
version "3.18.2"
3076+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.2.tgz#63a551e8a29f305cd4123754846e65896619ba5b"
3077+
integrity sha512-zNhPOUoSgoizoSQFdX1MeZO16ORRb9FFQLts8gSYbZU5FcgXhp24iMWMxnOQo5uIaIG7/6FA/IqJPwev1o9ZXQ==
3078+
30383079
core-util-is@1.0.2, core-util-is@~1.0.0:
30393080
version "1.0.2"
30403081
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -3211,6 +3252,13 @@ css-has-pseudo@^0.10.0:
32113252
postcss "^7.0.6"
32123253
postcss-selector-parser "^5.0.0-rc.4"
32133254

3255+
css-line-break@2.0.1:
3256+
version "2.0.1"
3257+
resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.0.1.tgz#3dc74c2ed5eb64211480281932475790243e7338"
3258+
integrity sha512-gwKYIMUn7xodIcb346wgUhE2Dt5O1Kmrc16PWi8sL4FTfyDj8P5095rzH7+O8CTZudJr+uw2GCI/hwEkDJFI2w==
3259+
dependencies:
3260+
base64-arraybuffer "^0.2.0"
3261+
32143262
css-loader@1.0.0:
32153263
version "1.0.0"
32163264
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56"
@@ -3773,7 +3821,7 @@ domhandler@^3.0.0, domhandler@^3.3.0:
37733821
dependencies:
37743822
domelementtype "^2.0.1"
37753823

3776-
dompurify@^2.2.9:
3824+
dompurify@^2.2.0, dompurify@^2.2.9:
37773825
version "2.3.3"
37783826
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.3.tgz#c1af3eb88be47324432964d8abc75cf4b98d634c"
37793827
integrity sha512-dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg==
@@ -4337,6 +4385,11 @@ fd-slicer@~1.1.0:
43374385
dependencies:
43384386
pend "~1.2.0"
43394387

4388+
fflate@^0.4.8:
4389+
version "0.4.8"
4390+
resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.4.8.tgz#f90b82aefbd8ac174213abb338bd7ef848f0f5ae"
4391+
integrity sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==
4392+
43404393
figgy-pudding@^3.5.1:
43414394
version "3.5.2"
43424395
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
@@ -5063,6 +5116,14 @@ html-tags@^3.1.0:
50635116
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
50645117
integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
50655118

5119+
html2canvas@^1.0.0-rc.5:
5120+
version "1.3.2"
5121+
resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.3.2.tgz#951cc8388a3ce939fdac02131007ee28124afc27"
5122+
integrity sha512-4+zqv87/a1LsaCrINV69wVLGG8GBZcYBboz1JPWEgiXcWoD9kroLzccsBRU/L9UlfV2MAZ+3J92U9IQPVMDeSQ==
5123+
dependencies:
5124+
css-line-break "2.0.1"
5125+
text-segmentation "^1.0.2"
5126+
50665127
htmlparser2@4.1.0:
50675128
version "4.1.0"
50685129
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78"
@@ -5810,6 +5871,26 @@ jsonfile@^4.0.0:
58105871
optionalDependencies:
58115872
graceful-fs "^4.1.6"
58125873

5874+
jspdf-autotable@^3.5.20:
5875+
version "3.5.20"
5876+
resolved "https://registry.yarnpkg.com/jspdf-autotable/-/jspdf-autotable-3.5.20.tgz#9bd702a09d7f9a839e1c320ca4ac5675cd4edd78"
5877+
integrity sha512-FX43+hZQG9WXhD87oY4FsiaunA3d3FGeYFTx93LM+VXqBXIutuE3jmp1vK8oCVVUHohuOsi3Bp4/Li5Nko8EjA==
5878+
5879+
jspdf@^2.4.0:
5880+
version "2.4.0"
5881+
resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-2.4.0.tgz#53d6d2acc63203b0b3688949597dd11a633b1db5"
5882+
integrity sha512-nsZ92YfbNG/EimR1yqmOkxf2D4iJRypBsw7pvP1aPiIEnoGITaLl6XDR/GYA36/R29vMZSBedpEhBCzutSGytA==
5883+
dependencies:
5884+
"@babel/runtime" "^7.14.0"
5885+
atob "^2.1.2"
5886+
btoa "^1.2.1"
5887+
fflate "^0.4.8"
5888+
optionalDependencies:
5889+
canvg "^3.0.6"
5890+
core-js "^3.6.0"
5891+
dompurify "^2.2.0"
5892+
html2canvas "^1.0.0-rc.5"
5893+
58135894
jsprim@^1.2.2:
58145895
version "1.4.1"
58155896
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -8527,7 +8608,7 @@ querystringify@^2.1.1:
85278608
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
85288609
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
85298610

8530-
raf@^3.1.0:
8611+
raf@^3.1.0, raf@^3.4.1:
85318612
version "3.4.1"
85328613
resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
85338614
integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
@@ -8889,6 +8970,11 @@ regenerator-runtime@^0.13.4:
88898970
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
88908971
integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
88918972

8973+
regenerator-runtime@^0.13.7:
8974+
version "0.13.9"
8975+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
8976+
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
8977+
88928978
regenerator-transform@^0.14.2:
88938979
version "0.14.5"
88948980
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
@@ -9093,6 +9179,11 @@ rgba-regex@^1.0.0:
90939179
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
90949180
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
90959181

9182+
rgbcolor@^1.0.1:
9183+
version "1.0.1"
9184+
resolved "https://registry.yarnpkg.com/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d"
9185+
integrity sha1-1lBezbMEplldom+ktDMHMGd1lF0=
9186+
90969187
rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3:
90979188
version "2.7.1"
90989189
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
@@ -9672,6 +9763,11 @@ stable@^0.1.8:
96729763
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
96739764
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
96749765

9766+
stackblur-canvas@^2.0.0:
9767+
version "2.5.0"
9768+
resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.5.0.tgz#aa87bbed1560fdcd3138fff344fc6a1c413ebac4"
9769+
integrity sha512-EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ==
9770+
96759771
stacktrace-parser@0.1.10:
96769772
version "0.1.10"
96779773
resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
@@ -9962,6 +10058,11 @@ supports-color@^7.1.0:
996210058
dependencies:
996310059
has-flag "^4.0.0"
996410060

10061+
svg-pathdata@^6.0.3:
10062+
version "6.0.3"
10063+
resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz#80b0e0283b652ccbafb69ad4f8f73e8d3fbf2cac"
10064+
integrity sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==
10065+
996510066
svgo@^1.0.0:
996610067
version "1.3.2"
996710068
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
@@ -10201,6 +10302,13 @@ terser@^4.1.2:
1020110302
source-map "~0.6.1"
1020210303
source-map-support "~0.5.12"
1020310304

10305+
text-segmentation@^1.0.2:
10306+
version "1.0.2"
10307+
resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.2.tgz#1f828fa14aa101c114ded1bda35ba7dcc17c9858"
10308+
integrity sha512-uTqvLxdBrVnx/CFQOtnf8tfzSXFm+1Qxau7Xi54j4OPTZokuDOX8qncQzrg2G8ZicAMOM8TgzFAYTb+AqNO4Cw==
10309+
dependencies:
10310+
utrie "^1.0.1"
10311+
1020410312
through2@^2.0.0:
1020510313
version "2.0.5"
1020610314
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
@@ -10605,6 +10713,13 @@ utils-merge@1.0.1:
1060510713
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1060610714
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
1060710715

10716+
utrie@^1.0.1:
10717+
version "1.0.1"
10718+
resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.1.tgz#e155235ebcbddc89ae09261ab6e773ce61401b2f"
10719+
integrity sha512-JPaDXF3vzgZxfeEwutdGzlrNoVFL5UvZcbO6Qo9D4GoahrieUPoMU8GCpVpR7MQqcKhmShIh8VlbEN3PLM3EBg==
10720+
dependencies:
10721+
base64-arraybuffer "^1.0.1"
10722+
1060810723
uuid@^3.0.1, uuid@^3.3.2:
1060910724
version "3.4.0"
1061010725
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"

0 commit comments

Comments
 (0)