From b80b3bc8016fb59e360c11ea1d7bf325e83cfb40 Mon Sep 17 00:00:00 2001 From: Jalish Buktawar Date: Sun, 4 Aug 2024 17:44:28 +0530 Subject: [PATCH 1/2] fixed the download-pdf option --- apps/web/app/pdf/[...pdfId]/page.tsx | 35 ++-- apps/web/app/tracks/[...trackIds]/page.tsx | 1 + apps/web/components/Blog.tsx | 22 ++- apps/web/components/LessonView.tsx | 5 + apps/web/components/PageToggle.tsx | 2 +- apps/web/components/Print.tsx | 2 +- package.json | 3 + yarn.lock | 197 +++++++++++++++++++++ 8 files changed, 243 insertions(+), 24 deletions(-) diff --git a/apps/web/app/pdf/[...pdfId]/page.tsx b/apps/web/app/pdf/[...pdfId]/page.tsx index 64fff147..e2fb09ed 100644 --- a/apps/web/app/pdf/[...pdfId]/page.tsx +++ b/apps/web/app/pdf/[...pdfId]/page.tsx @@ -8,12 +8,16 @@ import { LessonView } from "../../../components/LessonView"; const notion = new NotionAPI(); export default async function TrackComponent({ params }: { params: { pdfId: string[] } }) { + + const trackId: string = params.pdfId[0] || ""; const problemId = params.pdfId[1]; let notionRecordMaps: any[] = []; + if (trackId === "43XrfL4n0LgSnTkSB4rO") { redirect("/tracks/oAjvkeRNZThPMxZf4aX5"); } + const [problemDetails, trackDetails] = await Promise.all([getProblem(problemId || null), getTrack(trackId)]); if (!problemId) { @@ -28,20 +32,23 @@ export default async function TrackComponent({ params }: { params: { pdfId: stri } if (trackDetails && problemDetails) { return ( -
- {trackDetails?.problems.map((problem, i) => ( - - ))} - -
+ <> + +
+ {trackDetails?.problems.map((problem, i) => ( + + ))} + +
+ ); } } diff --git a/apps/web/app/tracks/[...trackIds]/page.tsx b/apps/web/app/tracks/[...trackIds]/page.tsx index f3becf8c..0dc280c9 100644 --- a/apps/web/app/tracks/[...trackIds]/page.tsx +++ b/apps/web/app/tracks/[...trackIds]/page.tsx @@ -53,6 +53,7 @@ export default async function TrackComponent({ params }: { params: { trackIds: s { const mounted = useMountStatus(); + if (isPdfRequested == undefined || !isPdfRequested) { if (!mounted) { @@ -27,12 +31,14 @@ export const Blog = ({ } return ( -
- {showAppBar && } - -
- + <> +
+ {showAppBar && } + + {showPagination &&
+ +
}
-
+ ); }; diff --git a/apps/web/components/LessonView.tsx b/apps/web/components/LessonView.tsx index 41df456b..bee6add6 100644 --- a/apps/web/components/LessonView.tsx +++ b/apps/web/components/LessonView.tsx @@ -8,6 +8,7 @@ import { getServerSession } from "next-auth"; import { authOptions } from "../lib/auth"; import { CodeProblemRenderer } from "./code/CodeProblemRenderer"; import { AppbarClient } from "./AppbarClient"; +import { forwardRef, LegacyRef } from "react"; const getSubmissions = async (problemStatementId: string) => { const session = await getServerSession(authOptions); @@ -36,6 +37,7 @@ export const LessonView = async ({ problem, track, showAppBar, + showPagination, isPdfRequested, }: { problem: Problem & { notionRecordMap: any } & { @@ -48,6 +50,7 @@ export const LessonView = async ({ }; track: Track & { problems: Problem[] }; showAppBar?: Boolean; + showPagination?:Boolean; isPdfRequested?: Boolean; }) => { const session = await getServerSession(authOptions); @@ -81,8 +84,10 @@ export const LessonView = async ({ problem={problem} track={track} showAppBar={!!showAppBar} + showPagination={!!showPagination} isPdfRequested={isPdfRequested} problemIndex={problemIndex} + /> ); } diff --git a/apps/web/components/PageToggle.tsx b/apps/web/components/PageToggle.tsx index 0b71b32b..758742a9 100644 --- a/apps/web/components/PageToggle.tsx +++ b/apps/web/components/PageToggle.tsx @@ -7,7 +7,7 @@ import Link from "next/link"; export function PageToggle({ allProblems, track }: { allProblems: Problem[]; track: Track & { problems: Problem[] } }) { const { trackIds }: { trackIds: string[] } = useParams(); - const currentTrack = trackIds.join("/"); + const currentTrack = trackIds?.join("/"); return ( diff --git a/apps/web/components/Print.tsx b/apps/web/components/Print.tsx index 88e52973..9b100b77 100644 --- a/apps/web/components/Print.tsx +++ b/apps/web/components/Print.tsx @@ -16,7 +16,7 @@ export function Print() { window.close(); }; - // Add event listener for 'afterprint' event + // // Add event listener for 'afterprint' event window.addEventListener("afterprint", closeWindow); // Print the document diff --git a/package.json b/package.json index bbed2bbb..4faf49f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,9 @@ { "name": "dailycode", "private": true, + "prisma": { + "seed": "ts-node packages\\db\\prisma\\seed.ts" + }, "scripts": { "build": "turbo build", "dev": "turbo dev", diff --git a/yarn.lock b/yarn.lock index 0e0df475..3dc6a6ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -209,6 +209,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.15": version "7.22.15" resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz" @@ -505,6 +512,11 @@ resolved "https://registry.yarnpkg.com/@icons-pack/react-simple-icons/-/react-simple-icons-9.4.1.tgz#eafbf651884a6160a2131373e205b77cd5ce18ee" integrity sha512-oDX8iE/AOyRIY0ys56+eybKSsyZODHQIPZ5mAGVxx3TszkA5l8lIxKl8HI9F801Y1CJxcySBjIk1XibrnFF0Hw== +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" @@ -1382,6 +1394,11 @@ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz" integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== +"@types/raf@^3.4.0": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.3.tgz#85f1d1d17569b28b8db45e16e996407a56b0ab04" + integrity sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw== + "@types/react-dom@^18.2.18": version "18.2.18" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz" @@ -1879,6 +1896,11 @@ asynciterator.prototype@^1.0.0: dependencies: has-symbols "^1.0.3" +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + autoprefixer@^10.4.16: version "10.4.17" resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz" @@ -1918,6 +1940,11 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -1989,6 +2016,11 @@ browserslist@^4.22.2: node-releases "^2.0.14" update-browserslist-db "^1.0.13" +btoa@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" + integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== + buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -2080,6 +2112,20 @@ caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.300015 resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz" integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== +canvg@^3.0.6: + version "3.0.10" + resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.10.tgz#8e52a2d088b6ffa23ac78970b2a9eebfae0ef4b3" + integrity sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q== + dependencies: + "@babel/runtime" "^7.12.5" + "@types/raf" "^3.4.0" + core-js "^3.8.3" + raf "^3.4.1" + regenerator-runtime "^0.13.7" + rgbcolor "^1.0.1" + stackblur-canvas "^2.0.0" + svg-pathdata "^6.0.3" + ccount@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" @@ -2278,6 +2324,11 @@ clsx@^2.1.0: resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz" integrity sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg== +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -2404,6 +2455,11 @@ core-js-pure@^3.30.2: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.35.0.tgz" integrity sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew== +core-js@^3.6.0, core-js@^3.8.3: + version "3.37.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9" + integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw== + cosmiconfig-typescript-loader@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz" @@ -2442,6 +2498,13 @@ css-in-js-utils@^3.1.0: dependencies: hyphenate-style-name "^1.0.3" +css-line-break@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0" + integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== + dependencies: + utrie "^1.0.2" + css-selector-parser@^3.0.0: version "3.0.4" resolved "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.0.4.tgz" @@ -2584,6 +2647,11 @@ del@^5.1.0: rimraf "^3.0.0" slash "^3.0.0" +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" @@ -2652,6 +2720,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dompurify@^2.2.0: + version "2.5.6" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.5.6.tgz#8402b501611eaa7fb3786072297fcbe2787f8592" + integrity sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ== + dot-case@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz" @@ -3257,6 +3330,11 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fflate@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.4.8.tgz#f90b82aefbd8ac174213abb338bd7ef848f0f5ae" + integrity sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA== + figures@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" @@ -3897,6 +3975,14 @@ html-void-elements@^3.0.0: resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz" integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== +html2canvas@^1.0.0-rc.5, html2canvas@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543" + integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA== + dependencies: + css-line-break "^2.1.0" + text-segmentation "^1.0.3" + http-cache-semantics@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" @@ -4068,6 +4154,21 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +ioredis@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.4.1.tgz#1c56b70b759f01465913887375ed809134296f40" + integrity sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + ip@^1.1.8: version "1.1.8" resolved "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz" @@ -4517,6 +4618,21 @@ jsonparse@^1.2.0: resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== +jspdf@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-2.5.1.tgz#00c85250abf5447a05f3b32ab9935ab4a56592cc" + integrity sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA== + dependencies: + "@babel/runtime" "^7.14.0" + atob "^2.1.2" + btoa "^1.2.1" + fflate "^0.4.8" + optionalDependencies: + canvg "^3.0.6" + core-js "^3.6.0" + dompurify "^2.2.0" + html2canvas "^1.0.0-rc.5" + "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: version "3.3.5" resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" @@ -4637,11 +4753,21 @@ lodash.camelcase@^4.3.0: resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + lodash.isfunction@^3.0.9: version "3.0.9" resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz" @@ -5592,6 +5718,11 @@ pdfjs-dist@2.12.313: resolved "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.12.313.tgz" integrity sha512-1x6iXO4Qnv6Eb+YFdN5JdUzt4pAkxSp3aLAYPX93eQCyg/m7QFzXVWJHJVtoW48CI8HCXju4dSkhQZwoheL5mA== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" @@ -5792,6 +5923,13 @@ quick-lru@^5.1.1: resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + rc@^1.0.1, rc@^1.1.6: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" @@ -5936,6 +6074,14 @@ react-style-singleton@^2.2.1: invariant "^2.2.4" tslib "^2.0.0" +react-to-pdf@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-to-pdf/-/react-to-pdf-1.0.1.tgz#a9a54ba9af9df4213078bf34eb2ffabb752b7263" + integrity sha512-ZsIkY6Z5gg3oBhMbWfl+tYwQ12vpPuuAzvCv+MnXchO8l08tElzRkBNAXxfbQNG/EDOHgE5EvWBlvE7ypt/y9A== + dependencies: + html2canvas "^1.4.1" + jspdf "^2.5.1" + react-universal-interface@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz" @@ -6025,6 +6171,18 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== + dependencies: + redis-errors "^1.0.0" + reflect.getprototypeof@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz" @@ -6047,6 +6205,11 @@ refractor@^4.8.0: hastscript "^7.0.0" parse-entities "^4.0.0" +regenerator-runtime@^0.13.7: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-runtime@^0.14.0: version "0.14.1" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" @@ -6260,6 +6423,11 @@ rfdc@^1.3.0: resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz" integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== +rgbcolor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d" + integrity sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw== + rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" @@ -6569,6 +6737,11 @@ stack-generator@^2.0.5: dependencies: stackframe "^1.3.4" +stackblur-canvas@^2.0.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz#af931277d0b5096df55e1f91c530043e066989b6" + integrity sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ== + stackframe@^1.3.4: version "1.3.4" resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" @@ -6591,6 +6764,11 @@ stacktrace-js@^2.0.2: stack-generator "^2.0.5" stacktrace-gps "^3.0.4" +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + state-local@^1.0.6: version "1.0.7" resolved "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz" @@ -6780,6 +6958,11 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svg-pathdata@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz#80b0e0283b652ccbafb69ad4f8f73e8d3fbf2cac" + integrity sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw== + swap-case@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz" @@ -6846,6 +7029,13 @@ text-extensions@^2.0.0: resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz" integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== +text-segmentation@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943" + integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== + dependencies: + utrie "^1.0.2" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" @@ -7346,6 +7536,13 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2: resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +utrie@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645" + integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== + dependencies: + base64-arraybuffer "^1.0.2" + uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" From 3ce743925545a95028c8e29ebf1710e65e5cd8e2 Mon Sep 17 00:00:00 2001 From: Jalish Buktawar Date: Mon, 5 Aug 2024 19:43:33 +0530 Subject: [PATCH 2/2] Fixed the Download-PDF option and also reduced the no. of changes. --- apps/web/app/pdf/[...pdfId]/page.tsx | 8 -------- apps/web/components/Blog.tsx | 18 ++++++++---------- apps/web/components/LessonView.tsx | 2 -- apps/web/components/Print.tsx | 2 +- 4 files changed, 9 insertions(+), 21 deletions(-) diff --git a/apps/web/app/pdf/[...pdfId]/page.tsx b/apps/web/app/pdf/[...pdfId]/page.tsx index e2fb09ed..39609634 100644 --- a/apps/web/app/pdf/[...pdfId]/page.tsx +++ b/apps/web/app/pdf/[...pdfId]/page.tsx @@ -8,18 +8,13 @@ import { LessonView } from "../../../components/LessonView"; const notion = new NotionAPI(); export default async function TrackComponent({ params }: { params: { pdfId: string[] } }) { - - const trackId: string = params.pdfId[0] || ""; const problemId = params.pdfId[1]; let notionRecordMaps: any[] = []; - if (trackId === "43XrfL4n0LgSnTkSB4rO") { redirect("/tracks/oAjvkeRNZThPMxZf4aX5"); } - const [problemDetails, trackDetails] = await Promise.all([getProblem(problemId || null), getTrack(trackId)]); - if (!problemId) { return ; } @@ -32,8 +27,6 @@ export default async function TrackComponent({ params }: { params: { pdfId: stri } if (trackDetails && problemDetails) { return ( - <> -
{trackDetails?.problems.map((problem, i) => (
- ); } } diff --git a/apps/web/components/Blog.tsx b/apps/web/components/Blog.tsx index a1760f39..fe75c726 100644 --- a/apps/web/components/Blog.tsx +++ b/apps/web/components/Blog.tsx @@ -4,7 +4,6 @@ import { BlogAppbar } from "./BlogAppbar"; import { NotionRenderer } from "./NotionRenderer"; import useMountStatus from "../hooks/useMountStatus"; import Pagination from "./Pagination"; -import { useRef } from "react"; export const Blog = ({ problem, @@ -22,7 +21,6 @@ export const Blog = ({ problemIndex: number; }) => { const mounted = useMountStatus(); - if (isPdfRequested == undefined || !isPdfRequested) { if (!mounted) { @@ -31,14 +29,14 @@ export const Blog = ({ } return ( - <> -
- {showAppBar && } - - {showPagination &&
+
+ {showAppBar && } + + {showPagination && ( +
-
} -
- +
+ )} +
); }; diff --git a/apps/web/components/LessonView.tsx b/apps/web/components/LessonView.tsx index bee6add6..dd905da1 100644 --- a/apps/web/components/LessonView.tsx +++ b/apps/web/components/LessonView.tsx @@ -8,7 +8,6 @@ import { getServerSession } from "next-auth"; import { authOptions } from "../lib/auth"; import { CodeProblemRenderer } from "./code/CodeProblemRenderer"; import { AppbarClient } from "./AppbarClient"; -import { forwardRef, LegacyRef } from "react"; const getSubmissions = async (problemStatementId: string) => { const session = await getServerSession(authOptions); @@ -87,7 +86,6 @@ export const LessonView = async ({ showPagination={!!showPagination} isPdfRequested={isPdfRequested} problemIndex={problemIndex} - /> ); } diff --git a/apps/web/components/Print.tsx b/apps/web/components/Print.tsx index 9b100b77..88e52973 100644 --- a/apps/web/components/Print.tsx +++ b/apps/web/components/Print.tsx @@ -16,7 +16,7 @@ export function Print() { window.close(); }; - // // Add event listener for 'afterprint' event + // Add event listener for 'afterprint' event window.addEventListener("afterprint", closeWindow); // Print the document