Skip to content

Commit 5364a63

Browse files
authored
Merge pull request #31 from ft4bhi/main
build error is fixed
2 parents 93ba728 + b623cfe commit 5364a63

File tree

2 files changed

+113
-103
lines changed

2 files changed

+113
-103
lines changed

package-lock.json

Lines changed: 90 additions & 90 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app/expense/page.tsx

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,26 @@ import {
1313
import Link from "next/link";
1414

1515
export default function ExpenseDetailsPage() {
16-
const today = new Date().toISOString().split("T")[0];
17-
const [editId, setEditId] = useState<number | null>(null);
16+
// Force type to string
17+
const today: string = new Date().toISOString().split("T")[0]!;
1818

19+
const [editId, setEditId] = useState<number | null>(null);
1920
const [expenses, setExpenses] = useState<any[]>([]);
20-
const [formData, setFormData] = useState({
21+
const [selectedDate, setSelectedDate] = useState<string>(today);
22+
const [formData, setFormData] = useState<{
23+
title: string;
24+
amount: string;
25+
category: string;
26+
description: string;
27+
date: string;
28+
}>({
2129
title: "",
2230
amount: "",
2331
category: "",
2432
description: "",
25-
date: today, // always a string
33+
date: today,
2634
});
27-
const [selectedDate, setSelectedDate] = useState(today);
35+
2836
const [showForm, setShowForm] = useState(false);
2937

3038
useEffect(() => {
@@ -34,13 +42,14 @@ export default function ExpenseDetailsPage() {
3442
})();
3543
}, [showForm]);
3644

37-
const handleChange = (e: any) => {
45+
const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => {
3846
const { name, value } = e.target;
3947
setFormData((prev) => ({
4048
...prev,
41-
[name]: name === "date" ? value || today : value,
49+
[name]: name === "date" ? (value || today) : value,
4250
}));
4351
};
52+
4453
const handleEdit = (expense: any) => {
4554
setFormData({
4655
...expense,
@@ -56,12 +65,12 @@ export default function ExpenseDetailsPage() {
5665
setExpenses(await getAllExpenses());
5766
};
5867

59-
const handleSubmit = async (e: any) => {
68+
const handleSubmit = async (e: React.FormEvent) => {
6069
e.preventDefault();
6170
const data = {
6271
...formData,
6372
amount: parseFloat(formData.amount),
64-
date: formData.date || today, // <-- ensures date is always a string
73+
date: (formData.date || today) as string,
6574
};
6675
if (editId !== null) {
6776
await updateExpense(editId, data);
@@ -83,20 +92,21 @@ export default function ExpenseDetailsPage() {
8392
const totalAmount = filteredExpenses.reduce((sum, e) => sum + e.amount, 0);
8493

8594
return (
86-
<div className="min-h-screen bg-white p-4 ">
95+
<div className="min-h-screen bg-white p-4">
8796
<div className="flex justify-between items-center mb-4 text-center">
8897
<h1 className="text-2xl text-center font-bold text-black w-full">
8998
Expense Tracker
9099
</h1>
91100
</div>
101+
92102
{!showForm && (
93103
<>
94104
<DateSelector
95-
selectedDate={selectedDate ? selectedDate : today}
105+
selectedDate={selectedDate ?? today}
96106
onDateChange={setSelectedDate}
97107
/>
98108

99-
<div className="flex justify-between mt-4 text-black ">
109+
<div className="flex justify-between mt-4 text-black">
100110
<h2 className="text-lg font-semibold">Expenses</h2>
101111
<span className="font-semibold underline mb-1">
102112
Total: ₹{totalAmount}
@@ -129,7 +139,7 @@ export default function ExpenseDetailsPage() {
129139
onSubmit={handleSubmit}
130140
formData={{
131141
...formData,
132-
date: formData.date ?? today, // ensures date is always a string
142+
date: formData.date ?? today,
133143
}}
134144
/>
135145
)}

0 commit comments

Comments
 (0)