From 686db990acf6d9a43289b290d03b26f11a478e00 Mon Sep 17 00:00:00 2001 From: "tomosa.sarkar" Date: Thu, 4 Sep 2025 17:29:52 +0530 Subject: [PATCH] feat : Home page password Expiry message feat : Statement Download --- TODO.md | 11 +- package-lock.json | 222 ++++++++++++++++++ package.json | 1 + public/logo.jpg | Bin 0 -> 78237 bytes .../account_statement/accountStatement.tsx | 62 ++++- src/app/(main)/home/page.tsx | 26 +- src/app/(main)/layout.tsx | 18 +- .../settings/change_login_password/page.tsx | 7 +- .../settings/change_txn_password/page.tsx | 7 +- .../(main)/settings/set_txn_password/page.tsx | 7 +- src/app/ForgetPassword/page.tsx | 3 +- src/app/SetPassword/page.tsx | 4 +- src/app/SetTxn/page.tsx | 4 +- .../statement_download/CsvGenerator.tsx | 60 +++++ .../statement_download/PdfGenerator.tsx | 95 ++++++++ src/app/login/page.tsx | 4 +- 16 files changed, 491 insertions(+), 40 deletions(-) create mode 100644 public/logo.jpg create mode 100644 src/app/_components/statement_download/CsvGenerator.tsx create mode 100644 src/app/_components/statement_download/PdfGenerator.tsx diff --git a/TODO.md b/TODO.md index 830d877..1051ef8 100644 --- a/TODO.md +++ b/TODO.md @@ -1,21 +1,22 @@ # Todo ### Security -- Back and front click on browser ( <- ->) logout. -- Cross from browser logout -- Taking Url and try to login -Logout +- >Back and front click on browser ( <- ->) logout. +- >Cross from browser logout +- >Taking Url and try to login -Logout ### Feature - Password Expiry Logic - login -> check password Expiry -> Change password -> login screen - Logout popup : - Are you sure want to logout? -- Home page password Expiry message +- >Home page password Expiry message - Set userId and login with userID - Limit of transaction daily -- Statement Download +- >Statement Download - In Every OTP page "Resend button" & 5 min timing of expiry. - OTP binding with actual mobile number. - IN settings page NOTE position Fixing. + diff --git a/package-lock.json b/package-lock.json index f5be102..92f79de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "date-fns": "^3.6.0", "dayjs": "^1.11.11", "embla-carousel-react": "^8.6.0", + "html2pdf.js": "^0.12.0", "ib": "file:", "IB": "file:", "iron-session": "^8.0.1", @@ -1349,6 +1350,12 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/pako": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", + "license": "MIT" + }, "node_modules/@types/pg": { "version": "8.15.5", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.15.5.tgz", @@ -1368,6 +1375,13 @@ "devOptional": true, "license": "MIT" }, + "node_modules/@types/raf": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.3.tgz", + "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/react": { "version": "18.3.24", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.24.tgz", @@ -1395,6 +1409,13 @@ "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "license": "MIT" }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, "node_modules/@types/validator": { "version": "13.15.2", "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.2.tgz", @@ -2205,6 +2226,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2387,6 +2417,26 @@ ], "license": "CC-BY-4.0" }, + "node_modules/canvg": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.11.tgz", + "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", + "license": "MIT", + "optional": true, + "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" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/casbin": { "version": "5.38.0", "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.38.0.tgz", @@ -2622,6 +2672,18 @@ "node": ">= 0.6" } }, + "node_modules/core-js": { + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", + "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2636,6 +2698,15 @@ "node": ">= 8" } }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -3055,6 +3126,16 @@ "domelementtype": "1" } }, + "node_modules/dompurify": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -3973,6 +4054,17 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-png": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/fast-png/-/fast-png-6.4.0.tgz", + "integrity": "sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==", + "license": "MIT", + "dependencies": { + "@types/pako": "^2.0.3", + "iobuffer": "^5.3.2", + "pako": "^2.1.0" + } + }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -3989,6 +4081,12 @@ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "license": "MIT" }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -4518,6 +4616,29 @@ "node": ">= 0.4" } }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/html2pdf.js": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/html2pdf.js/-/html2pdf.js-0.12.0.tgz", + "integrity": "sha512-UiaAxJpkNiintpAKZ94V0GTmwDSootT78f5AHw5nUjDXo+RHsJJ0aVhoccrxdWiM7Lx2cJ929ca7mAnbSt13gw==", + "license": "MIT", + "dependencies": { + "html2canvas": "^1.0.0", + "jspdf": "^3.0.0" + } + }, "node_modules/htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", @@ -4645,6 +4766,12 @@ "node": ">= 0.10" } }, + "node_modules/iobuffer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-5.4.0.tgz", + "integrity": "sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==", + "license": "MIT" + }, "node_modules/iron-session": { "version": "8.0.4", "resolved": "https://registry.npmjs.org/iron-session/-/iron-session-8.0.4.tgz", @@ -5215,6 +5342,23 @@ "json5": "lib/cli.js" } }, + "node_modules/jspdf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-3.0.2.tgz", + "integrity": "sha512-G0fQDJ5fAm6UW78HG6lNXyq09l0PrA1rpNY5i+ly17Zb1fMMFSmS+3lw4cnrAPGyouv2Y0ylujbY2Ieq3DSlKA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.9", + "fast-png": "^6.2.0", + "fflate": "^0.8.1" + }, + "optionalDependencies": { + "canvg": "^3.0.11", + "core-js": "^3.6.0", + "dompurify": "^3.2.4", + "html2canvas": "^1.0.0-rc.5" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -6032,6 +6176,12 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6106,6 +6256,13 @@ "node": ">=8" } }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT", + "optional": true + }, "node_modules/pg": { "version": "8.16.3", "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", @@ -6495,6 +6652,16 @@ ], "license": "MIT" }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "optional": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -6807,6 +6974,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT", + "optional": true + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -6888,6 +7062,16 @@ "node": ">=0.10.0" } }, + "node_modules/rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", + "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", + "optional": true, + "engines": { + "node": ">= 0.8.15" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -7380,6 +7564,16 @@ "node": "*" } }, + "node_modules/stackblur-canvas": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", + "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.14" + } + }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -7717,6 +7911,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/sylvester": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/sylvester/-/sylvester-0.0.12.tgz", @@ -7746,6 +7950,15 @@ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "license": "MIT" }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -8355,6 +8568,15 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, "node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", diff --git a/package.json b/package.json index 783ea3a..8f40dfc 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "date-fns": "^3.6.0", "dayjs": "^1.11.11", "embla-carousel-react": "^8.6.0", + "html2pdf.js": "^0.12.0", "ib": "file:", "IB": "file:", "iron-session": "^8.0.1", diff --git a/public/logo.jpg b/public/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9aa529c7cf70ce5cbe6051aa5fea70f8712554de GIT binary patch literal 78237 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

    (^#k{ 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 literal 0 HcmV?d00001 diff --git a/src/app/(main)/accounts/account_statement/accountStatement.tsx b/src/app/(main)/accounts/account_statement/accountStatement.tsx index 21b8ff5..3a9033b 100644 --- a/src/app/(main)/accounts/account_statement/accountStatement.tsx +++ b/src/app/(main)/accounts/account_statement/accountStatement.tsx @@ -1,18 +1,17 @@ "use client"; -import { Paper, Select, Title, Button, Text, Grid, ScrollArea, Table, Divider, Center, Loader, Stack } from "@mantine/core"; +import { Paper, Select, Title, Button, Text, Grid, ScrollArea, Table, Divider, Center, Loader, Stack, Group } from "@mantine/core"; import { DateInput } from '@mantine/dates'; -import { useEffect, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { useSearchParams } from "next/navigation"; import { notifications } from "@mantine/notifications"; import dayjs from 'dayjs'; -import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'; -import isSameOrBefore from 'dayjs/plugin/isSameOrBefore'; -import customParseFormat from 'dayjs/plugin/customParseFormat'; -dayjs.extend(isSameOrAfter); -dayjs.extend(isSameOrBefore); -dayjs.extend(customParseFormat); +import { IconFileSpreadsheet, IconFileText, IconFileTypePdf } from "@tabler/icons-react"; +import { generatePDF } from "@/app/_components/statement_download/PdfGenerator"; +import { generateCSV } from "@/app/_components/statement_download/CsvGenerator"; export default function AccountStatementPage() { + + const pdfRef = useRef(null); const [accountOptions, setAccountOptions] = useState<{ value: string; label: string }[]>([]); const [selectedAccNo, setSelectedAccNo] = useState(null); const [startDate, setStartDate] = useState(null); @@ -21,6 +20,7 @@ export default function AccountStatementPage() { const searchParams = useSearchParams(); const passedAccNo = searchParams.get("accNo"); const [loading, setLoading] = useState(false); + const [availableBalance, setAvailableBalance] = useState(null); useEffect(() => { const saved = sessionStorage.getItem("accountData"); @@ -31,6 +31,8 @@ export default function AccountStatementPage() { value: acc.stAccountNo, })); setAccountOptions(options); + + if (passedAccNo) { setSelectedAccNo(passedAccNo); //Automatically fetch last 5 transactions if accNo is passed @@ -122,6 +124,15 @@ export default function AccountStatementPage() { const data = await response.json(); if (response.ok && Array.isArray(data)) { setTransactions(data.reverse()); + // SHowing Available balance + const saved = sessionStorage.getItem("accountData"); + if (saved) { + const parsed = JSON.parse(saved); + const acc = parsed.find((a: any) => a.stAccountNo === selectedAccNo); + if (acc) { + setAvailableBalance(acc.stAvailableBalance); + } + } } } catch { notifications.show({ @@ -177,10 +188,43 @@ export default function AccountStatementPage() { Account Transactions - Account No : {selectedAccNo} + +

    + Account No : {selectedAccNo} + {availableBalance && ( + + Available Balance : ₹ {parseFloat(availableBalance).toLocaleString("en-IN", { + minimumFractionDigits: 2, + })} + + )} +
    + + + Download : + {/* console.log("Download PDF")} /> */} + + generatePDF(selectedAccNo || "", availableBalance || "0", transactions) + } + /> + + generateCSV(selectedAccNo || "NA", availableBalance || "0.00", transactions) + } + /> + + + + {loading ? ( +
    diff --git a/src/app/(main)/home/page.tsx b/src/app/(main)/home/page.tsx index 79a8161..986bb0d 100644 --- a/src/app/(main)/home/page.tsx +++ b/src/app/(main)/home/page.tsx @@ -6,6 +6,7 @@ import { IconBuildingBank, IconEye, IconLink } from '@tabler/icons-react'; import { useRouter } from "next/navigation"; import { Providers } from "../../providers"; import { notifications } from '@mantine/notifications'; +import dayjs from 'dayjs'; interface accountData { stAccountNo: string; @@ -26,6 +27,7 @@ export default function Home() { const [selectedLN, setSelectedLN] = useState(loanAccounts[0]?.stAccountNo || ""); const selectedLNData = loanAccounts.find(acc => acc.stAccountNo === selectedLN); const [showBalance, setShowBalance] = useState(false); + const PassExpiryRemains =(dayjs(localStorage.getItem("pswExpiryDate"))).diff(dayjs(),"day") // If back and forward button is clicked useEffect(() => { @@ -34,19 +36,25 @@ export default function Home() { localStorage.removeItem("access_token"); sessionStorage.removeItem("access_token"); localStorage.removeItem("remitter_name"); + localStorage.removeItem("pswExpiryDate"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login"); }; - const handleBeforeUnload = () => { - // logout on tab close / refresh - localStorage.removeItem("access_token"); - sessionStorage.removeItem("access_token"); - localStorage.removeItem("remitter_name"); - }; + // const handleBeforeUnload = () => { + // // logout on tab close / refresh + // localStorage.removeItem("access_token"); + // sessionStorage.removeItem("access_token"); + // localStorage.removeItem("remitter_name"); + // localStorage.removeItem("pswExpiryDate"); + // localStorage.clear(); + // sessionStorage.clear(); + // }; window.addEventListener("popstate", handlePopState); - window.addEventListener("beforeunload", handleBeforeUnload); + // window.addEventListener("beforeunload", handleBeforeUnload); return () => { window.removeEventListener("popstate", handlePopState); - window.addEventListener("beforeunload", handleBeforeUnload); + // window.addEventListener("beforeunload", handleBeforeUnload); }; }, []); @@ -229,7 +237,7 @@ export default function Home() { ** Book Balance includes uncleared effect. ** Click on the "Show Balance"to display balance for the Deposit and Loan account. - ** Your Password will expire in 85 days. + ** Your Password will expire in {PassExpiryRemains} days. diff --git a/src/app/(main)/layout.tsx b/src/app/(main)/layout.tsx index 20cd861..925704d 100644 --- a/src/app/(main)/layout.tsx +++ b/src/app/(main)/layout.tsx @@ -20,6 +20,9 @@ export default function RootLayout({ children }: { children: React.ReactNode }) localStorage.removeItem("access_token"); sessionStorage.removeItem("access_token"); localStorage.removeItem("remitter_name"); + localStorage.removeItem("pswExpiryDate"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login"); } @@ -79,15 +82,18 @@ export default function RootLayout({ children }: { children: React.ReactNode }) }; const handleBeforeUnload = (e: BeforeUnloadEvent) => { // logout on tab close / refresh - localStorage.removeItem("access_token"); - sessionStorage.removeItem("access_token"); - localStorage.removeItem("remitter_name"); + // localStorage.removeItem("access_token"); + // sessionStorage.removeItem("access_token"); + // localStorage.removeItem("remitter_name"); + // localStorage.removeItem("pswExpiryDate"); + // localStorage.clear(); + // sessionStorage.clear(); }; window.addEventListener("popstate", handlePopState); - window.addEventListener("beforeunload", handleBeforeUnload); + // window.addEventListener("beforeunload", handleBeforeUnload); return () => { window.removeEventListener("popstate", handlePopState); - window.addEventListener("beforeunload", handleBeforeUnload); + // window.addEventListener("beforeunload", handleBeforeUnload); }; }, []); @@ -120,6 +126,8 @@ export default function RootLayout({ children }: { children: React.ReactNode }) else if (response.status === 401 || data.message === 'invalid or expired token') { // console.log(data); localStorage.removeItem("access_token"); + localStorage.clear(); + sessionStorage.clear(); router.push('/login'); } else { diff --git a/src/app/(main)/settings/change_login_password/page.tsx b/src/app/(main)/settings/change_login_password/page.tsx index 8e000a7..710724d 100644 --- a/src/app/(main)/settings/change_login_password/page.tsx +++ b/src/app/(main)/settings/change_login_password/page.tsx @@ -133,6 +133,8 @@ export default function ChangePassword() { if (response.status === 401) { localStorage.removeItem("access_token"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login"); return; } @@ -284,8 +286,9 @@ export default function ChangePassword() { - - Note: Your new Login password must be 8–15 characters long and contain at least one number and one special character. + + Note : {""} + Your new Login password must be 8–15 characters long and contain at least one number and one special character. ); diff --git a/src/app/(main)/settings/change_txn_password/page.tsx b/src/app/(main)/settings/change_txn_password/page.tsx index b59d7d5..9a68ba4 100644 --- a/src/app/(main)/settings/change_txn_password/page.tsx +++ b/src/app/(main)/settings/change_txn_password/page.tsx @@ -134,6 +134,8 @@ export default function ChangePassword() { if (response.status === 401) { localStorage.removeItem("access_token"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login"); return; } @@ -285,8 +287,9 @@ export default function ChangePassword() { - - Note: Your new Transaction password must be 8–15 characters long and contain at least one number and one special character. + + Note : {""} + Your new Login password must be 8–15 characters long and contain at least one number and one special character. diff --git a/src/app/(main)/settings/set_txn_password/page.tsx b/src/app/(main)/settings/set_txn_password/page.tsx index 82d87af..76c4ee8 100644 --- a/src/app/(main)/settings/set_txn_password/page.tsx +++ b/src/app/(main)/settings/set_txn_password/page.tsx @@ -150,6 +150,8 @@ export default function ChangePassword() { if (response.status === 401) { localStorage.removeItem("access_token"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login"); return; } @@ -296,8 +298,9 @@ export default function ChangePassword() { - - Note: Your new Transaction password must be 8–15 characters long and contain at least one number and one special character. + + Note : {""} + Your new Login password must be 8–15 characters long and contain at least one number and one special character. ); diff --git a/src/app/ForgetPassword/page.tsx b/src/app/ForgetPassword/page.tsx index 33e4188..21c0f99 100644 --- a/src/app/ForgetPassword/page.tsx +++ b/src/app/ForgetPassword/page.tsx @@ -26,7 +26,8 @@ export default function ForgetLoginPwd() { e.preventDefault(); localStorage.removeItem("access_token"); sessionStorage.removeItem("access_token") - localStorage.removeItem("remitter_name"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login") } diff --git a/src/app/SetPassword/page.tsx b/src/app/SetPassword/page.tsx index aced174..a60cba8 100644 --- a/src/app/SetPassword/page.tsx +++ b/src/app/SetPassword/page.tsx @@ -36,8 +36,8 @@ export default function SetLoginPwd() { async function handleLogout(e: React.FormEvent) { e.preventDefault(); localStorage.removeItem("access_token"); - sessionStorage.removeItem("access_token") - localStorage.removeItem("remitter_name"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login") } const regenerateCaptcha = () => { diff --git a/src/app/SetTxn/page.tsx b/src/app/SetTxn/page.tsx index be4ecd5..6d71c89 100644 --- a/src/app/SetTxn/page.tsx +++ b/src/app/SetTxn/page.tsx @@ -35,8 +35,8 @@ export default function SetTransactionPwd() { async function handleLogout(e: React.FormEvent) { e.preventDefault(); localStorage.removeItem("access_token"); - sessionStorage.removeItem("access_token") - localStorage.removeItem("remitter_name"); + localStorage.clear(); + sessionStorage.clear(); router.push("/login") } const regenerateCaptcha = () => { diff --git a/src/app/_components/statement_download/CsvGenerator.tsx b/src/app/_components/statement_download/CsvGenerator.tsx new file mode 100644 index 0000000..6ad5686 --- /dev/null +++ b/src/app/_components/statement_download/CsvGenerator.tsx @@ -0,0 +1,60 @@ +"use client"; + +interface CsvGeneratorProps { + accountNo: string; + balance: string; + txns: any[]; +} + +export const generateCSV = ( + accountNo: string, + balance: string, + txns: any[] +) => { + // CSV Header + let csv = `Bank Statement\n`; + csv += `Account No:,${accountNo}\n`; + csv += `Available Balance: ${balance}\n`; + csv += `Generated:,${new Date().toLocaleString()}\n\n`; + + // Column headers + csv += "Date,Name,Type,Amount\n"; + + // Rows + txns.forEach((txn) => { + csv += `${txn.date},${txn.name},${txn.type.toLowerCase()},${txn.amount}\n`; + }); + + // Trigger browser download + const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" }); + const url = URL.createObjectURL(blob); + + const link = document.createElement("a"); + link.setAttribute("href", url); + link.setAttribute("download", `statement_${accountNo}.csv`); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); +}; + +export default function CsvGenerator({ + accountNo, + balance, + txns, +}: CsvGeneratorProps) { + return ( + + ); +} diff --git a/src/app/_components/statement_download/PdfGenerator.tsx b/src/app/_components/statement_download/PdfGenerator.tsx new file mode 100644 index 0000000..9665858 --- /dev/null +++ b/src/app/_components/statement_download/PdfGenerator.tsx @@ -0,0 +1,95 @@ +"use client"; +import dayjs from "dayjs"; + +export const generatePDF = ( + accountNo: string, + balance: string, + txns: any[], +) => { + const html2pdf = require("html2pdf.js"); + + // Header with logo + bank name + generated date + const headerHTML = ` +
    +
    + Bank Logo +

    The Kangra Central Co Operative Bank

    +
    +
    + Report generated: ${dayjs().format("DD/MM/YYYY HH:mm")} +
    +
    +
    + `; + + // Table rows + const rows = txns.map( + (t: any) => ` + + ${t.name} + ${t.date} + + ${parseFloat(t.amount).toLocaleString("en-IN", { + minimumFractionDigits: 2, + })} ${t.type === "DR" ? "dr." : "cr."} + + + ` + ); + + const content = ` +
    + ${headerHTML} +

    Account Statement

    +

    Account No: ${accountNo}

    +

    Available Balance: ₹ ${parseFloat( + balance + ).toLocaleString("en-IN", { minimumFractionDigits: 2 })}

    + + + + + + + + + + + ${rows.join("")} + +
    NameDateAmount (₹)
    + +
    +
    + `; + + // PDF options + const opt = { + margin: [10, 10, 20, 10], // bottom margin for page count + filename: `AccountStatement_${accountNo}.pdf`, + image: { type: "jpeg", quality: 0.98 }, + html2canvas: { scale: 2 }, + jsPDF: { unit: "mm", format: "a4", orientation: "portrait" }, + pagebreak: { mode: ["avoid-all", "css", "legacy"] }, + }; + + html2pdf() + .set(opt) + .from(content) + .toPdf() + .get("pdf") + .then((pdf: any) => { + const totalPages = pdf.internal.getNumberOfPages(); + for (let i = 1; i <= totalPages; i++) { + pdf.setPage(i); + pdf.setFontSize(10); + pdf.text( + `Page ${i} of ${totalPages}`, + pdf.internal.pageSize.getWidth() - 40, + pdf.internal.pageSize.getHeight() - 10 + ); + } + }) + .save(); +}; diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index c1dce71..2ee2733 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -106,7 +106,8 @@ export default function Login() { autoClose: 5000, }); localStorage.removeItem("access_token"); - localStorage.removeItem("remitter_name"); + localStorage.clear(); + sessionStorage.clear(); return; } setIsLogging(true); @@ -114,6 +115,7 @@ export default function Login() { console.log(data); const token = data.token; localStorage.setItem("access_token", token); + localStorage.setItem("pswExpiryDate", data.loginPswExpiry); if (data.FirstTimeLogin === true) { router.push("/SetPassword") }