Pushing to update server

This commit is contained in:
Mitchell Magro 2025-12-29 19:54:42 +01:00
parent 6d6bfd9089
commit ce4c977efc
7 changed files with 42 additions and 23 deletions

View File

@ -31,8 +31,6 @@ export default function MatcherPageClient({
}: MatcherPageClientProps) {
const router = useRouter();
const [matchType, setMatchType] = useState(initialMatchType);
const [sourceItems, setSourceItems] = useState(initialSourceItems);
const [targetItems, setTargetItems] = useState(initialTargetItems);
const currentConfig = MATCH_CONFIGS[matchType] || initialConfig;
@ -99,8 +97,8 @@ export default function MatcherPageClient({
</Alert>
<MatcherBoard
sourceItems={sourceItems}
targetItems={targetItems}
sourceItems={initialSourceItems}
targetItems={initialTargetItems}
config={currentConfig}
onMatch={handleMatch}
/>

View File

@ -9,7 +9,7 @@ import {
} from "@/app/dashboard/audits/auditConstants";
type AuditPageProps = {
searchParams?: Record<string, string | string[] | undefined>;
searchParams?: Promise<Record<string, string | string[] | undefined>>;
};
const toSingleValue = (value?: string | string[]): string | undefined => {
@ -24,11 +24,12 @@ const clampNumber = (value: number, min: number, max?: number) => {
return value;
};
export default async function AuditPage({ searchParams = {} }: AuditPageProps) {
const pageParam = toSingleValue(searchParams.page);
const limitParam = toSingleValue(searchParams.limit);
const sortParam = toSingleValue(searchParams.sort) || undefined;
const entityQuery = toSingleValue(searchParams.entity)?.trim() || "";
export default async function AuditPage({ searchParams }: AuditPageProps) {
const params = searchParams ? await searchParams : {};
const pageParam = toSingleValue(params?.page);
const limitParam = toSingleValue(params?.limit);
const sortParam = toSingleValue(params?.sort) || undefined;
const entityQuery = toSingleValue(params?.entity)?.trim() || "";
const page = clampNumber(parseInt(pageParam || "1", 10), 1);
const parsedLimit = parseInt(limitParam || String(DEFAULT_PAGE_SIZE), 10);

View File

@ -17,7 +17,7 @@ import { Range } from "react-date-range";
import { DateRangePicker } from "../DateRangePicker/DateRangePicker";
import { StatItem } from "./components/StatItem";
import { DEFAULT_DATE_RANGE } from "./constants";
import { IHealthData } from "@/app/services/health";
import { type IHealthData } from "@/app/services/types";
import { useDebouncedDateRange } from "@/app/hooks/useDebouncedDateRange";
import { dashboardService } from "@/app/services/dashboardService";
import { normalizeDateRangeForAPI } from "@/app/utils/formatDate";

View File

@ -336,11 +336,10 @@ export function ApproveTable<T extends { id: string | number }>({
<StatusChangeDialog
open={modalOpen}
transactionId={selected[0] as number}
newStatus={action}
reason={reason}
setReason={setReason}
handleClose={() => setModalOpen(false)}
handleSave={handleStatusSave}
onClose={() => setModalOpen(false)}
onStatusUpdated={handleStatusSave}
/>
<HistoryModal
open={historyModal}

View File

@ -1,14 +1,14 @@
"use client";
import { useEffect } from "react";
import { Range } from "react-date-range";
import { Box } from "@mui/material";
import { GeneralHealthCard } from "../../GeneralHealthCard/GeneralHealthCard";
import { TransactionsWaitingApproval } from "../../TransactionsWaitingApproval/TransactionsWaitingApproval";
import { TransactionsOverView } from "../../TransactionsOverView/TransactionsOverview";
import { Range } from "react-date-range";
import {
ITransactionsOverviewData,
IReviewTransactionsData,
} from "@/app/services/health";
type ITransactionsOverviewData,
type IReviewTransactionsData,
} from "@/app/services/types";
import { dashboardService } from "@/app/services/dashboardService";
interface IDashboardHomePageProps {

View File

@ -26,6 +26,7 @@ import {
type IReviewTransactionsData,
type IReviewTransaction,
} from "@/app/services/types";
import StatusChangeDialog from "../DataTable/StatusChangeDialog";
interface ITransactionsWaitingApprovalProps {
initialReviewTransactions?: IReviewTransactionsData | null;
@ -40,6 +41,10 @@ export const TransactionsWaitingApproval = ({
dashboardService.getCurrentDashboardData()?.reviewTransactions ||
null
);
const [statusDialogData, setStatusDialogData] = useState<{
rowId: number;
newStatus: string;
} | null>(null);
/**
* Subscribe to dashboard data changes
@ -67,7 +72,7 @@ export const TransactionsWaitingApproval = ({
: "";
return {
id: tx.id?.toString() || tx.external_id || "",
id: tx.id ?? tx.external_id ?? "",
user: tx.customer || "",
created: formattedDate,
type: tx.type || "",
@ -81,6 +86,10 @@ export const TransactionsWaitingApproval = ({
const transactions = reviewTransactions?.transactions || [];
const displayTransactions = transactions.map(formatTransaction);
const handleStatusChange = (rowId: number, newStatus: string) => {
setStatusDialogData({ rowId, newStatus });
};
return (
<Paper elevation={3} className="transactions-waiting-approval">
<Box sx={{ p: 3 }}>
@ -141,10 +150,16 @@ export const TransactionsWaitingApproval = ({
<TableCell>{tx.amount}</TableCell>
<TableCell>{tx.psp}</TableCell>
<TableCell>
<IconButton color="success">
<IconButton
color="success"
onClick={() => handleStatusChange(tx.id, "approved")}
>
<CheckCircleIcon />
</IconButton>
<IconButton color="error">
<IconButton
color="error"
onClick={() => handleStatusChange(tx.id, "declined")}
>
<CancelIcon />
</IconButton>
</TableCell>
@ -164,6 +179,12 @@ export const TransactionsWaitingApproval = ({
</TableContainer>
)}
</Box>
<StatusChangeDialog
open={Boolean(statusDialogData)}
transactionId={statusDialogData?.rowId ?? undefined}
newStatus={statusDialogData?.newStatus ?? ""}
onClose={() => setStatusDialogData(null)}
/>
</Paper>
);
};

View File

@ -73,7 +73,7 @@ export async function fetchDashboardDataService({
fetchConfig
),
fetch(
`${BE_BASE_URL}/api/v1/transactions?limit=1000${
`${BE_BASE_URL}/api/v1/transactions?limit=1000&page=1${
queryString ? `&${queryString}` : ""
}&Status==/review`,
fetchConfig