@@ -12,44 +12,22 @@ import { Separator } from "../ui/separator";
12
12
13
13
import { Plus , TrendingDown , TrendingUp } from "lucide-react" ;
14
14
15
- import { cn , formatValue } from "@/lib/utils" ;
16
-
17
15
import Link from "next/link" ;
18
16
19
17
import useModal from "@/hooks/use-modal-store" ;
20
18
21
- import { Entry , Expense } from "@prisma/client " ;
19
+ import HomeRegisterItems from "./home-register-items " ;
22
20
23
- import { useEffect , useState } from "react" ;
24
- import axios from "axios" ;
21
+ import { Entry , Expense } from "@prisma/client" ;
25
22
26
23
interface HomeRegisterCardProps {
27
24
type : "expenses" | "entries" ;
25
+ registers : Expense [ ] | Entry [ ] ;
28
26
}
29
27
30
- const HomeRegisterCard = ( { type } : HomeRegisterCardProps ) => {
31
- const [ registers , setRegisters ] = useState < Entry [ ] | Expense [ ] > ( [ ] ) ;
32
- const [ loading , setLoading ] = useState ( true ) ;
28
+ const HomeRegisterCard = ( { type, registers } : HomeRegisterCardProps ) => {
33
29
const { onOpen } = useModal ( ) ;
34
30
35
- useEffect ( ( ) => {
36
- getRegisters ( ) ;
37
- } , [ ] ) ;
38
-
39
- const getRegisters = async ( ) => {
40
- console . log ( `/api/${ type } ` ) ;
41
- try {
42
- setLoading ( true ) ;
43
- const registers = await axios ( `/api/${ type } ` ) ;
44
-
45
- setRegisters ( registers . data [ type ] as Entry [ ] | Expense [ ] ) ;
46
- } catch ( error ) {
47
- console . log ( error ) ;
48
- } finally {
49
- setLoading ( false ) ;
50
- }
51
- } ;
52
-
53
31
return (
54
32
< Card className = "rounded-2xl shadow-sm" >
55
33
< CardHeader className = "py-3" >
@@ -71,31 +49,7 @@ const HomeRegisterCard = ({ type }: HomeRegisterCardProps) => {
71
49
< Separator />
72
50
< CardContent className = "h-[270px] p-2 lg:h-[320px]" >
73
51
< ScrollArea className = "h-full" >
74
- { registers . length <= 0 && (
75
- < div className = "w-full h-[250px] lg:h-[290px] flex items-center justify-center text-center p-2" >
76
- < p className = "opacity-60 text-sm lg:text-lg" >
77
- You dont have any { type } records yet, create one now!
78
- </ p >
79
- </ div >
80
- ) }
81
- { registers . length > 0 &&
82
- registers . map ( ( register ) => (
83
- < button
84
- key = { register . id }
85
- className = "flex w-full justify-around p-4 border mb-2 rounded-xl"
86
- >
87
- < p > { register . name } </ p >
88
- < p > { } </ p >
89
- < p
90
- className = { cn (
91
- type === "entries" ? "text-green-500" : "text-red-400"
92
- ) }
93
- >
94
- { type === "entries" ? "+" : "-" }
95
- { formatValue ( register . amount ) }
96
- </ p >
97
- </ button >
98
- ) ) }
52
+ < HomeRegisterItems type = { type } registers = { registers } />
99
53
</ ScrollArea >
100
54
</ CardContent >
101
55
< Separator />
0 commit comments