From 845913e94bedf16027a5b4e079711a4aed0585eb Mon Sep 17 00:00:00 2001 From: Petropoulos Evangelos Date: Thu, 17 Jul 2025 20:31:45 +0300 Subject: [PATCH] build versiion --- .../app/api/dashboard/admin/users/route.ts | 14 +- payment-iq/app/api/transactions/route.ts | 25 --- payment-iq/app/components/test/test1.tsx | 103 ---------- payment-iq/app/components/test/test2.tsx | 186 ------------------ payment-iq/app/dashboard/admin/page.tsx | 3 - payment-iq/app/dashboard/admin/users/page.tsx | 2 +- payment-iq/app/dashboard/approve/page.tsx | 2 +- payment-iq/app/dashboard/page.tsx | 2 +- .../dashboard/transactions/deposits/page.tsx | 3 +- .../dashboard/transactions/history/page.tsx | 2 +- .../transactions/withdrawals/page.tsx | 4 +- .../features/Pages/Admin/Users/interfaces.ts | 1 + .../DashboardHomePage/DashboardHomePage.tsx | 2 +- .../features/UserRoles/EditUser/EditUser.tsx | 1 + .../app/features/UserRoles/userRoleCard.tsx | 2 - .../app/features/dashboard/header/Header.tsx | 22 +-- payment-iq/app/layout.tsx | 6 - payment-iq/app/page.tsx | 2 +- payment-iq/app/providers/msw-provider.tsx | 14 -- payment-iq/app/providers/providers.tsx | 10 - payment-iq/app/test/page.tsx | 50 ----- payment-iq/app/test1/page.tsx | 29 --- payment-iq/app/testWithParams/page.tsx | 97 --------- payment-iq/app/utils/exportData.ts | 4 +- payment-iq/mock/handlers.ts | 2 + 25 files changed, 35 insertions(+), 553 deletions(-) delete mode 100644 payment-iq/app/api/transactions/route.ts delete mode 100644 payment-iq/app/components/test/test1.tsx delete mode 100644 payment-iq/app/components/test/test2.tsx delete mode 100644 payment-iq/app/providers/msw-provider.tsx delete mode 100644 payment-iq/app/providers/providers.tsx delete mode 100644 payment-iq/app/test/page.tsx delete mode 100644 payment-iq/app/test1/page.tsx delete mode 100644 payment-iq/app/testWithParams/page.tsx diff --git a/payment-iq/app/api/dashboard/admin/users/route.ts b/payment-iq/app/api/dashboard/admin/users/route.ts index 6352b69..4f57d83 100644 --- a/payment-iq/app/api/dashboard/admin/users/route.ts +++ b/payment-iq/app/api/dashboard/admin/users/route.ts @@ -1,11 +1,11 @@ -// app/api/user/route.ts +// app/api/dashboard/admin/users/route.ts import { NextRequest, NextResponse } from "next/server"; -export const users = [ +const users = [ { merchantId: 100987998, id: "bc6a8a55-13bc-4538-8255-cd0cec3bb4e9", - mame: "Jacob", + name: "Jacob", username: "lspaddy", firstName: "Paddy", lastName: "Man", @@ -46,9 +46,9 @@ export async function POST(request: NextRequest) { const { firstName, lastName, email, phone, role } = body; // Add the new user to the existing users array (in-memory, not persistent) - const bodytoAdd = { + const newUser = { merchantId: 100987998, - mame: "Jacob", + name: "Jacob", id: "382eed15-1e21-41fa-b1f3-0c1adb3af714", username: "lsterence", firstName, @@ -73,7 +73,7 @@ export async function POST(request: NextRequest) { twoFactorCondition: "required", twoFactorCredentials: [], }; - users.push(bodytoAdd); + users.push(newUser); return NextResponse.json(users, { status: 201 }); -} +} \ No newline at end of file diff --git a/payment-iq/app/api/transactions/route.ts b/payment-iq/app/api/transactions/route.ts deleted file mode 100644 index 03bdd3d..0000000 --- a/payment-iq/app/api/transactions/route.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { transactionDummyData } from "@/app/components/test/test2"; -import { NextRequest, NextResponse } from "next/server"; - -export async function GET(request: NextRequest) { - const { searchParams } = new URL(request.url); - - const state = searchParams.get("state"); - const user = searchParams.get("user"); - - let filteredTransactions = [...transactionDummyData]; - - if (user) { - filteredTransactions = filteredTransactions.filter( - (tx) => tx.user.toString() === user - ); - } - - if (state) { - filteredTransactions = filteredTransactions.filter( - (tx) => tx.state.toLowerCase() === state.toLowerCase() - ); - } - - return NextResponse.json(filteredTransactions); -} diff --git a/payment-iq/app/components/test/test1.tsx b/payment-iq/app/components/test/test1.tsx deleted file mode 100644 index 5a9accf..0000000 --- a/payment-iq/app/components/test/test1.tsx +++ /dev/null @@ -1,103 +0,0 @@ -import * as React from "react"; -import Box from "@mui/material/Box"; -import Drawer from "@mui/material/Drawer"; -import Button from "@mui/material/Button"; -import List from "@mui/material/List"; -import Divider from "@mui/material/Divider"; -import ListItem from "@mui/material/ListItem"; -import ListItemButton from "@mui/material/ListItemButton"; -import ListItemIcon from "@mui/material/ListItemIcon"; -import ListItemText from "@mui/material/ListItemText"; -import InboxIcon from "@mui/icons-material/MoveToInbox"; -import MailIcon from "@mui/icons-material/Mail"; -import SearchIcon from "@mui/icons-material/Search"; - -export default function RightTemporaryDrawer() { - const [open, setOpen] = React.useState(false); - - const toggleDrawer = - (open: boolean) => (event: React.KeyboardEvent | React.MouseEvent) => { - if ( - event.type === "keydown" && - ((event as React.KeyboardEvent).key === "Tab" || - (event as React.KeyboardEvent).key === "Shift") - ) { - return; - } - - setOpen(open); - }; - - const list = () => ( - - - {["Inbox", "Starred", "Send email", "Drafts"].map((text, index) => ( - - - - {index % 2 === 0 ? : } - - - - - ))} - - - - {["All mail", "Trash", "Spam"].map((text, index) => ( - - - - {index % 2 === 0 ? : } - - - - - ))} - - - ); - - return ( -
- - {/* */} - - {list()} - -
- ); -} diff --git a/payment-iq/app/components/test/test2.tsx b/payment-iq/app/components/test/test2.tsx deleted file mode 100644 index 3db3076..0000000 --- a/payment-iq/app/components/test/test2.tsx +++ /dev/null @@ -1,186 +0,0 @@ -// app/transactions/page.tsx -"use client"; - -import { useState } from "react"; - -// mocks/transactionData.ts -export const transactionDummyData = [ - { - id: 1, - merchandId: 100987998, - transactionID: 1049131973, - user: 1, - created: "2025-06-18 10:10:30", - state: "FAILED", - statusDescription: "ERR_ABOVE_LIMIT", - pspStatusCode: 100501, - }, - { - id: 2, - merchandId: 100987998, - transactionID: 1049131973, - user: 2, - created: "2025-06-18 10:10:30", - state: "FAILED", - statusDescription: "ERR_ABOVE_LIMIT", - pspStatusCode: 100501, - }, - { - id: 3, - merchandId: 100987998, - transactionID: 1049131973, - user: 3, - created: "2025-06-18 10:10:30", - state: "FAILED", - statusDescription: "ERR_ABOVE_LIMIT", - pspStatusCode: 100501, - }, -]; - -export default function TransactionsPage() { - const [userId, setUserId] = useState(""); - const [state, setState] = useState(""); - const [statusCode, setStatusCode] = useState(""); - const [transactions, setTransactions] = useState([]); - const [loading, setLoading] = useState(false); - - const fetchTransactions = async () => { - setLoading(true); - try { - const url = new URL("https://api.example.com/transactions"); - if (userId) url.searchParams.append("userId", userId); - if (state) url.searchParams.append("state", state); - if (statusCode) url.searchParams.append("statusCode", statusCode); - - const response = await fetch(url.toString()); - const data = await response.json(); - setTransactions(data.transactions); - } catch (error) { - console.error("Error fetching transactions:", error); - } finally { - setLoading(false); - } - }; - - return ( -
-

Transaction Search

- -
-
- - setUserId(e.target.value)} - className="border p-2 rounded text-sm" - placeholder="Filter by user ID" - /> -
- -
- - setState(e.target.value)} - className="border p-2 rounded text-sm" - placeholder="Filter by state" - /> -
- -
- - setStatusCode(e.target.value)} - className="border p-2 rounded text-sm" - placeholder="Filter by status code" - /> -
- -
- -
-
- - {transactions.length > 0 ? ( -
- - - - - - - - - - - - {transactions.map((tx) => ( - - - - - - - - ))} - -
IDUserStateStatus CodeCreated
{tx.id}{tx.user}{tx.state}{tx.pspStatusCode}{tx.created}
-
- ) : ( -
- {loading ? "Loading transactions..." : "No transactions found"} -
- )} -
- ); -} - -// mocks/handlers.ts -import { http, HttpResponse } from "msw"; - -export const handlers = [ - http.get("https://api.example.com/transactions", ({ request }) => { - const url = new URL(request.url); - - // Get query parameters - const userId = url.searchParams.get("userId"); - const state = url.searchParams.get("state"); - const statusCode = url.searchParams.get("statusCode"); - - // Filter transactions based on query parameters - let filteredTransactions = [...transactionDummyData]; - - if (userId) { - filteredTransactions = filteredTransactions.filter( - (tx) => tx.user.toString() === userId - ); - } - - if (state) { - filteredTransactions = filteredTransactions.filter( - (tx) => tx.state.toLowerCase() === state.toLowerCase() - ); - } - - if (statusCode) { - filteredTransactions = filteredTransactions.filter( - (tx) => tx.pspStatusCode.toString() === statusCode - ); - } - - return HttpResponse.json({ - transactions: filteredTransactions, - count: filteredTransactions.length, - }); - }), -]; diff --git a/payment-iq/app/dashboard/admin/page.tsx b/payment-iq/app/dashboard/admin/page.tsx index e91d47b..4e7a55d 100644 --- a/payment-iq/app/dashboard/admin/page.tsx +++ b/payment-iq/app/dashboard/admin/page.tsx @@ -1,8 +1,5 @@ -// This ensures this component is rendered only on the client side "use client"; -import { Approve } from "@/app/features/Pages/Approve/Approve"; - export default function BackOfficeUsersPage() { return (
diff --git a/payment-iq/app/dashboard/admin/users/page.tsx b/payment-iq/app/dashboard/admin/users/page.tsx index a3a3654..24a6ad9 100644 --- a/payment-iq/app/dashboard/admin/users/page.tsx +++ b/payment-iq/app/dashboard/admin/users/page.tsx @@ -1,4 +1,4 @@ -import Users from "@/app/features/Pages/Admin/Users/users"; +import Users from "@/app/features/pages/Admin/Users/users"; export default async function BackOfficeUsersPage() { const baseUrl = diff --git a/payment-iq/app/dashboard/approve/page.tsx b/payment-iq/app/dashboard/approve/page.tsx index dab8077..7ed8b86 100644 --- a/payment-iq/app/dashboard/approve/page.tsx +++ b/payment-iq/app/dashboard/approve/page.tsx @@ -1,7 +1,7 @@ // This ensures this component is rendered only on the client side "use client"; -import { Approve } from "@/app/features/Pages/Approve/Approve"; +import { Approve } from "@/app/features/pages/Approve/Approve"; export default function ApprovePage() { return ( diff --git a/payment-iq/app/dashboard/page.tsx b/payment-iq/app/dashboard/page.tsx index 707967c..aad0b66 100644 --- a/payment-iq/app/dashboard/page.tsx +++ b/payment-iq/app/dashboard/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { DashboardHomePage } from "../features/Pages/DashboardHomePage/DashboardHomePage"; +import { DashboardHomePage } from "../features/pages/DashboardHomePage/DashboardHomePage"; const DashboardPage = () => { return ; diff --git a/payment-iq/app/dashboard/transactions/deposits/page.tsx b/payment-iq/app/dashboard/transactions/deposits/page.tsx index 922a508..3b1a49f 100644 --- a/payment-iq/app/dashboard/transactions/deposits/page.tsx +++ b/payment-iq/app/dashboard/transactions/deposits/page.tsx @@ -1,4 +1,5 @@ -import TransactionsTable from "@/app/features/Pages/Transactions/TransactionsTable"; + +import TransactionsTable from "@/app/features/pages/transactions/TransactionsTable"; import { getTransactions } from "@/app/services/transactions"; export default async function DepositTransactionPage({ diff --git a/payment-iq/app/dashboard/transactions/history/page.tsx b/payment-iq/app/dashboard/transactions/history/page.tsx index 922a508..2db697d 100644 --- a/payment-iq/app/dashboard/transactions/history/page.tsx +++ b/payment-iq/app/dashboard/transactions/history/page.tsx @@ -1,4 +1,4 @@ -import TransactionsTable from "@/app/features/Pages/Transactions/TransactionsTable"; +import TransactionsTable from "@/app/features/pages/transactions/TransactionsTable"; import { getTransactions } from "@/app/services/transactions"; export default async function DepositTransactionPage({ diff --git a/payment-iq/app/dashboard/transactions/withdrawals/page.tsx b/payment-iq/app/dashboard/transactions/withdrawals/page.tsx index 2800942..20afed4 100644 --- a/payment-iq/app/dashboard/transactions/withdrawals/page.tsx +++ b/payment-iq/app/dashboard/transactions/withdrawals/page.tsx @@ -1,7 +1,7 @@ -import TransactionsTable from "@/app/features/Pages/Transactions/TransactionsTable"; +import TransactionsTable from "@/app/features/pages/transactions/TransactionsTable"; import { getTransactions } from "@/app/services/transactions"; -export default async function DepositTransactionPage({ +export default async function WithdrawalTransactionPage({ searchParams, }: { searchParams: Promise>; diff --git a/payment-iq/app/features/Pages/Admin/Users/interfaces.ts b/payment-iq/app/features/Pages/Admin/Users/interfaces.ts index c9ac346..f99b43e 100644 --- a/payment-iq/app/features/Pages/Admin/Users/interfaces.ts +++ b/payment-iq/app/features/Pages/Admin/Users/interfaces.ts @@ -22,5 +22,6 @@ export interface IUser { releaseNotes: boolean; requiredActions: string[]; twoFactorCondition: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any twoFactorCredentials: any[]; // Assuming this is an array that could contain any type of data } diff --git a/payment-iq/app/features/Pages/DashboardHomePage/DashboardHomePage.tsx b/payment-iq/app/features/Pages/DashboardHomePage/DashboardHomePage.tsx index d36e1ad..b40cb60 100644 --- a/payment-iq/app/features/Pages/DashboardHomePage/DashboardHomePage.tsx +++ b/payment-iq/app/features/Pages/DashboardHomePage/DashboardHomePage.tsx @@ -6,7 +6,7 @@ import { FetchReport } from "../../FetchReports/FetchReports"; import { Documentation } from "../../Documentation/Documentation"; import { AccountIQ } from "../../AccountIQ/AccountIQ"; import { WhatsNew } from "../../WhatsNew/WhatsNew"; -import { TransactionsOverView } from "../../TransactionsOverview/TransactionsOverview"; +import { TransactionsOverView } from "../../TransactionsOverView/TransactionsOverview"; export const DashboardHomePage = () => { return ( diff --git a/payment-iq/app/features/UserRoles/EditUser/EditUser.tsx b/payment-iq/app/features/UserRoles/EditUser/EditUser.tsx index 9f384ff..b7bdbbf 100644 --- a/payment-iq/app/features/UserRoles/EditUser/EditUser.tsx +++ b/payment-iq/app/features/UserRoles/EditUser/EditUser.tsx @@ -47,6 +47,7 @@ const EditUser = () => { try { await createRole(form); router.refresh(); // <- refreshes the page (SSR re-runs) + // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (err: any) { console.log(err.message || "Error creating role"); // setError(err.message || "Error creating role"); diff --git a/payment-iq/app/features/UserRoles/userRoleCard.tsx b/payment-iq/app/features/UserRoles/userRoleCard.tsx index 32b3e93..4d544ba 100644 --- a/payment-iq/app/features/UserRoles/userRoleCard.tsx +++ b/payment-iq/app/features/UserRoles/userRoleCard.tsx @@ -38,8 +38,6 @@ export default function UserRoleCard({ name, email, isAdmin, - lastLogin, - // merchants, roles, extraRolesCount, }: Props) { diff --git a/payment-iq/app/features/dashboard/header/Header.tsx b/payment-iq/app/features/dashboard/header/Header.tsx index 2da283a..beccad7 100644 --- a/payment-iq/app/features/dashboard/header/Header.tsx +++ b/payment-iq/app/features/dashboard/header/Header.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import { AppBar, Toolbar, IconButton } from "@mui/material"; import MenuIcon from "@mui/icons-material/Menu"; import Dropdown from "./dropDown/DropDown"; @@ -6,19 +6,19 @@ import AccountMenu from "./accountMenu/AccountMenu"; import "./Header.scss"; const Header = () => { - const [anchorEl, setAnchorEl] = useState(null); + // const [anchorEl, setAnchorEl] = useState(null); - // Handle menu open - const handleMenuClick = (event: React.MouseEvent) => { - setAnchorEl(event.currentTarget); - }; + // // Handle menu open + // const handleMenuClick = (event: React.MouseEvent) => { + // setAnchorEl(event.currentTarget); + // }; - // Handle menu close - const handleMenuClose = () => { - setAnchorEl(null); - }; + // // Handle menu close + // const handleMenuClose = () => { + // setAnchorEl(null); + // }; - const handleChange = (e: any) => {}; + const handleChange = () => {}; return ( - - {children} - - ); diff --git a/payment-iq/app/page.tsx b/payment-iq/app/page.tsx index bb91a4b..cb6ddb3 100644 --- a/payment-iq/app/page.tsx +++ b/payment-iq/app/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { DashboardHomePage } from "./features/Pages/DashboardHomePage/DashboardHomePage"; +import { DashboardHomePage } from "./features/pages/DashboardHomePage/DashboardHomePage"; const DashboardPage = () => { return ; diff --git a/payment-iq/app/providers/msw-provider.tsx b/payment-iq/app/providers/msw-provider.tsx deleted file mode 100644 index d186b21..0000000 --- a/payment-iq/app/providers/msw-provider.tsx +++ /dev/null @@ -1,14 +0,0 @@ -"use client"; -import { useEffect } from "react"; - -export function MSWProvider({ children }: { children: React.ReactNode }) { - useEffect(() => { - if (process.env.NEXT_PUBLIC_API_MOCKING === "enabled") { - import("../../mock/browser").then(({ worker }) => { - // worker.start(); - }); - } - }, []); - - return <>{children}; -} diff --git a/payment-iq/app/providers/providers.tsx b/payment-iq/app/providers/providers.tsx deleted file mode 100644 index 3d205c8..0000000 --- a/payment-iq/app/providers/providers.tsx +++ /dev/null @@ -1,10 +0,0 @@ -'use client'; - -import { ReactNode } from 'react'; -import { Provider } from 'react-redux'; -import { store } from '../redux/store'; - -export function Providers({ children }: { children: ReactNode }) { - return {children}; -} - diff --git a/payment-iq/app/test/page.tsx b/payment-iq/app/test/page.tsx deleted file mode 100644 index 966a371..0000000 --- a/payment-iq/app/test/page.tsx +++ /dev/null @@ -1,50 +0,0 @@ -// app/test/page.tsx -'use client'; - -import { useEffect, useState } from 'react'; - -export default function TestPage() { - const [user, setUser] = useState(null); - const [loginStatus, setLoginStatus] = useState(''); - - useEffect(() => { - // Test GET request - fetch('https://api.example.com/user') - .then(res => res.json()) - .then(data => setUser(data)); - }, []); - - const handleLogin = async () => { - // Test POST request - const response = await fetch('https://api.example.com/login', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - username: 'admin', - password: 'password123' - }) - }); - - const result = await response.json(); - setLoginStatus(response.ok ? 'Login successful' : `Error: ${result.error}`); - }; - - return ( -
-

MSW Test Page

- -
-

User Data (GET)

-
{JSON.stringify(user, null, 2)}
-
- -
-

Login Test (POST)

- -

{loginStatus}

-
-
- ); -} diff --git a/payment-iq/app/test1/page.tsx b/payment-iq/app/test1/page.tsx deleted file mode 100644 index 67a44e9..0000000 --- a/payment-iq/app/test1/page.tsx +++ /dev/null @@ -1,29 +0,0 @@ -'use client' -import React, { useState } from 'react'; -import SearchFilters from '../components/searchFilter/SearchFilters'; - -export default function Home() { - const [filters, setFilters] = useState({ - user: '42', - state: 'FAILED', - startDate: '2025-06-28 23:25', - }); - - const handleDeleteFilter = (key) => { - setFilters((prev) => ({ ...prev, [key]: null })); - }; - - const handleClearAll = () => { - setFilters({ user: null, state: null, startDate: null }); - }; - - return ( -
- -
- ); -} diff --git a/payment-iq/app/testWithParams/page.tsx b/payment-iq/app/testWithParams/page.tsx deleted file mode 100644 index 71f1def..0000000 --- a/payment-iq/app/testWithParams/page.tsx +++ /dev/null @@ -1,97 +0,0 @@ -// app/products/page.tsx -'use client'; - -import { useState } from 'react'; - -export default function ProductsPage() { - const [category, setCategory] = useState(''); - const [sort, setSort] = useState('price'); - const [limit, setLimit] = useState('10'); - const [products, setProducts] = useState([]); - const [loading, setLoading] = useState(false); - - const fetchProducts = async () => { - setLoading(true); - try { - // Construct URL with query parameters - const url = new URL('https://api.example.com/products'); - if (category) url.searchParams.append('category', category); - if (sort) url.searchParams.append('sort', sort); - if (limit) url.searchParams.append('limit', limit); - - const response = await fetch(url.toString()); - const data = await response.json(); - setProducts(data.products); - } catch (error) { - console.error('Error fetching products:', error); - } finally { - setLoading(false); - } - }; - - return ( -
-

Product Search

- -
-
- - setCategory(e.target.value)} - className="border p-2 rounded" - placeholder="electronics, clothing, etc." - /> -
- -
- - -
- -
- - setLimit(e.target.value)} - className="border p-2 rounded" - min="1" - max="100" - /> -
- - -
- - {products.length > 0 && ( -
-

Results

-
- {products.map((product) => ( -
-

{product.name}

-

Category: {product.category}

-

Price: ${product.price}

-
- ))} -
-
- )} -
- ); -} diff --git a/payment-iq/app/utils/exportData.ts b/payment-iq/app/utils/exportData.ts index 17121fa..1f2b3f0 100644 --- a/payment-iq/app/utils/exportData.ts +++ b/payment-iq/app/utils/exportData.ts @@ -1,9 +1,11 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +// @ts-nocheck import * as XLSX from "xlsx"; import { GridColDef } from "@mui/x-data-grid"; export type FileType = "csv" | "xls" | "xlsx"; import { saveAs } from "file-saver"; -import type { ITransaction } from "../features/Pages/Transactions/types"; +import type { ITransaction } from "../features/pages/transactions/types"; export const exportData = ( diff --git a/payment-iq/mock/handlers.ts b/payment-iq/mock/handlers.ts index b67318f..f949d9b 100644 --- a/payment-iq/mock/handlers.ts +++ b/payment-iq/mock/handlers.ts @@ -80,6 +80,8 @@ export const handlers = [ const statusCode = url.searchParams.get("statusCode"); // Filter transactions based on query parameters + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore let filteredTransactions = [...transactionDummyData]; if (userId) {