refactored types from HistoryChart.tsx

This commit is contained in:
2026-04-07 11:32:32 +05:30
parent 69c9fd6bef
commit 3704bd0c23
3 changed files with 57 additions and 33 deletions

View File

@@ -12,8 +12,8 @@ import {
import LatestItemsList, { LatestItem } from "./components/LatestItemsList";
import HistoryChart from "./components/HistoryChart";
import {
AggregatedDashboardData,
} from "./components/HistoryChart";
AggregatedDashboardData
} from "./types/historyChart";
import {
fetchLatestTransactions,
@@ -85,6 +85,13 @@ export default function Dashboard() {
}, []);
const currentData = aggregated[mode];
if (!currentData) {
return (
<Box sx={{ display: "flex", justifyContent: "center", alignItems: "center", height: "60vh" }}>
<CircularProgress />
</Box>
);
}
const currentLatest = latest[mode];
// -------- UI STATES --------

View File

@@ -1,35 +1,16 @@
import * as React from "react";
import { Box, Typography, ToggleButtonGroup, ToggleButton, Paper } from "@mui/material";
export interface ChartDataPoint {
id: string;
amount: number;
compareAmount?: number;
compareLabel?: string;
highlighted?: boolean;
}
export interface ChartSeries {
rolling: ChartDataPoint[];
calendar: ChartDataPoint[];
}
export interface ChartData {
daily: ChartDataPoint[];
weekly: ChartSeries;
monthly: ChartSeries;
}
export interface HistoryChartProps {
header: string;
summary?: string;
tabs: string[];
data: ChartData;
period: "rolling" | "calendar";
onPeriodChange: (mode: "rolling" | "calendar") => void;
comparison: boolean;
setComparison: (mode: boolean) => void;
}
import {
Box,
Typography,
ToggleButtonGroup,
ToggleButton,
Paper
} from "@mui/material";
import {
ChartDataPoint,
HistoryChartProps,
ChartData,
} from "../types/historyChart";
const formatDisplay = (
point: ChartDataPoint,

36
src/types/historyChart.ts Normal file
View File

@@ -0,0 +1,36 @@
export interface ChartDataPoint {
id: string;
amount: number;
compareAmount?: number;
compareLabel?: string;
highlighted?: boolean;
}
export interface ChartSeries {
rolling: ChartDataPoint[];
calendar: ChartDataPoint[];
}
export interface ChartData {
daily: ChartDataPoint[];
weekly: ChartSeries;
monthly: ChartSeries;
}
export interface AggregatedDashboardData {
chartData: ChartData;
totalAmount: number;
topPayees: Array<{ payeeName: string; amount: number }>;
}
export interface HistoryChartProps {
header: string;
summary?: string;
tabs: string[];
data: ChartData;
period: "rolling" | "calendar";
onPeriodChange: (mode: "rolling" | "calendar") => void;
comparison: boolean;
setComparison: (mode: boolean) => void;
}